### Oracle DBA 应该定期做什么笔记 #### 1. 数据库系统标识符(SID)的理解及作用 每个 Oracle 数据库都有一个唯一的系统标识符(System Identifier,简称 SID)。这个标识符是数据库的一个核心属性,用于唯一标识一个特定的 Oracle 数据库实例。典型的安装过程中,数据库使用的 SID 通常是 `ORCL`。例如,在安装过程中,可能会创建一个名为 `ORCL` 的数据库实例。 SID 不仅用于标识数据库实例,还被用于各种管理和维护任务中。例如,在启动或关闭数据库时,需要指定相应的 SID。此外,在配置网络服务时,也需要使用正确的 SID 以确保客户端能够正确地连接到数据库。 #### 2. 启动与关闭数据库的命令详解 ##### 关闭数据库 - **正常关闭**: 使用 `shutdown` 命令,例如 `svrmgrl> connect internal/oracle> shutdown`。这将执行一系列标准步骤来确保数据的一致性。 - **立即关闭**: 使用 `shutdown immediate` 命令,例如 `svrmgrl> shutdown immediate`。这种方式比正常关闭更快,但在所有未提交的事务都已回滚后才会关闭数据库。 - **强行关闭**: 使用 `shutdown abort` 命令,例如 `svrmgrl> shutdown abort`。这是一种非常直接的关闭方式,可能会影响到数据的一致性,因此仅在紧急情况下使用。重新启动时,数据库管理系统会自动执行恢复过程,以确保数据的一致性。 ##### 启动数据库 - **正常启动**: 使用 `startup` 命令,例如 `svrmgrl> startup`。这是最常用的启动方式,会执行一系列标准步骤来打开数据库。 - **安装启动**: 使用 `startup mount` 命令,例如 `svrmgrl> startup mount`。这种方式不会打开数据库,主要用于改变数据库的归档模式或执行恢复操作。 - **重建启动**: 使用 `startup nomount` 命令,例如 `svrmgrl> startup nomount`。这种方式主要用于重建控制文件或数据库。 - **受限启动**: 使用 `startup restrict` 命令,例如 `svrmgrl> startup restrict`。这种方式会限制数据库的访问权限,只有特定的用户才能访问数据库。 - **强制启动**: 使用 `startup force` 命令,例如 `svrmgrl> startup force`。当无法通过常规方式关闭数据库时,可以使用此命令强制关闭并重新启动数据库。 #### 3. 缺省用户和密码 - **安装完成后的初始口令**: - `internal/oracle` - `sys/change_on_install` - `system/manager` - `scott/tiger` - `sysman/oem_temp` - **ORACLE9IAS WEB CACHE 的初始默认用户和密码**: - `administrator/administrator` 这些缺省用户和密码对于新安装的数据库来说非常重要,因为它们提供了基本的管理访问权限。DBA 应该在安装完成后立即更改这些密码,以提高系统的安全性。 #### 4. 让自定义回滚段生效 为了使自定义的回滚段在启动时生效,可以在初始化参数文件 (`initorcl.ora`) 中加入以下语句: ``` rollback_segments=(rb0,rb1,...) ``` 这里的 `rb0`, `rb1` 等为自定义的回滚段名称。通过这种方式配置,可以确保在数据库启动时,这些回滚段会被激活并可供使用。 #### 5. 查看和修改数据库的字符集 ##### 数据库服务器字符集 要修改数据库服务器的字符集,可以通过更新 `props$` 表中的记录来实现。例如,可以将字符集设置为 `ZHS16CGB231280`: ```sql UPDATE props$ SET value$='ZHS16CGB231280' WHERE name='NLS_CHARACTERSET'; ``` 对于 Oracle 8i 及更高版本,还可以通过 `ALTER DATABASE` 命令来修改字符集,但需要注意的是,只能从子集到超集进行修改,并且不建议直接修改 `props$` 表,以免引发错误。 ##### 查看数据库字符集 要查看当前数据库的字符集设置,可以执行以下 SQL 查询: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS; SELECT * FROM V$NLS_PARAMETERS; ``` 这些查询将返回有关数据库字符集的信息。 ##### 客户端字符集环境 客户端字符集环境可以通过以下 SQL 查询获取: ```sql SELECT * FROM NLS_INSTANCE_PARAMETERS; ``` 这个查询的结果来源于 `v$parameter` 视图,表示客户端的字符集设置,可能来源于参数文件、环境变量或注册表。 ##### 会话字符集环境 会话字符集环境可以通过以下 SQL 查询获取: ```sql SELECT * FROM NLS_SESSION_PARAMETERS; ``` 这个查询的结果来源于 `v$nls_parameters` 视图,表示当前会话的字符集设置,可能来源于会话环境变量或通过 `ALTER SESSION` 命令设置。 为了确保客户端和服务器之间的兼容性,客户端和服务器的字符集应保持一致。如果客户端字符集与服务器字符集不匹配,可能会导致非 ASCII 字符显示为乱码。为了防止这种情况发生,需要确保客户端和服务器的字符集设置相匹配。 #### 总结 作为 Oracle DBA,定期记录这些重要的知识点是非常必要的。这些知识点涵盖了数据库的基本管理操作,包括启动和关闭数据库、了解和使用缺省用户和密码、设置回滚段以及管理数据库的字符集等。掌握这些基础知识可以帮助 DBA 更好地管理和维护 Oracle 数据库系统。
- 粉丝: 27
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助