Oracle9i数据库专题培训 第三讲(数据库配置) 朱华廷(9i OCP) 2008-01
内 容 基础回顾 数据库配置 Q&A
Oracle基础培训 1 基础回顾
体系结构 Instance SGA SGA Database Database PMON PMON SMON SMON DBWR DBWR User process User process SGA SGA Shared Pool Shared Pool Database Buffer Cache Database Buffer Cache Redo Log Buffer Redo Log Buffer Library Cache Library Cache Server process Server process Data Dictionary Cache Data Dictionary Cache Java Pool Java Pool Large Pool Large Pool PGA PGA PMON PMON SMON SMON DBWR DBWR LGWR LGWR CKPT CKPT Others Others Data files Data files Control files Control files Redo Log files Redo Log files Parameter file Parameter file Archived Log files Archived Log files Password file Password file Database Database
Oracle Instance Oracle Instance包括SGA (System Global Area)和后台服务进程(Background Processes) 。 依存一个且只能一个已打开的数据库。 SGA在实例启动时分配,后台服务进程在实例启动时启动。 一个数据库可以多个实例使用,即OPS(9i前)或RAC(9i)体系结构 Instance SGA Database Buffer Cache Redo Log Buffer Library Cache Data Dictionary Cache Java Pool Large Pool PMON SMON DBWR LGWR CKPT Others
Oracle Database Oracle Database包括三种类型的文件:数据文件、控制文件和重做日志文件。参数文件、口令文件和备份日志文件作为数据库的附加文件,不是数据库的组成部分。 Password file Parameter Archived Log files Control files Data files Redo Log files Oracle Database
Oracle Connection&Session 用户通过连接和Oracle Server进行交互,这个连接称为Session Server process Connection established Session created User process Oracle server
物理结构和逻辑结构
逻辑结构 表空间TableSapce 段Segment 区Extent 块Block Tablespace Datafile Segment Blocks
物理结构和逻辑结构
数据库启动 启动过程 OPEN STARTUP All files opened as described by the control file for this instance MOUNT Control file opened for this instance NOMOUNT Instance started SHUTDOWN SHUTDOWN
数据库关闭 SHUTDOWN [Mode] Shutdown Mode ABORT IMMEDIATE TRANSACTIONAL NORMAL Allow new connections X Wait until current sessions end Wait until current transactions end Force a checkpoint and close files
数据库关闭 On the way up: No instance recovery Consistent database During SHUTDOWN NORMAL or TRANSACTIONAL IMMEDIATE On the way down: Database buffer cache written to the data files Uncommitted changes rolled back Resources released On the way up: No instance recovery Consistent database (clean database)
Inconsistent database 数据库关闭 During SHUTDOWN ABORT or Instance Failure STARTUP FORCE On the way down: Modified buffers are not written to the data files Uncommitted changes are not rolled back On the way up: Online redo log files used to reapply changes Undo segments used to roll back uncommitted changes Resources released Inconsistent database (dirty database)
Oracle基础培训 2 数据库配置
数据库配置 网络配置 初始参数 表空间和数据文件 用户和权限 归档模式的配置
网络配置 服务端和客户端网络配置 Client Server Listener tnsnames.ora sqlnet.ora listener.ora
网络配置 3 2 1 服务端网络配置Dedicated 监听器接受到客户端的连接请求 监听器启动一个新的服务进程 客户端和服务进程直接进行通信 Client Server 3 Dedicated Server Process 1 2 Listener
网络配置 服务端配置 1. LISTENER = 2. (ADDRESS_LIST = SID_LIST_name:使用该监听的数据库实例 1. LISTENER = 2. (ADDRESS_LIST = 3. (ADDRESS= (PROTOCOL= TCP)(Host= stc- sun02)(Port= 1521))) 4. SID_LIST_LISTENER = 5. (SID_LIST = 6. (SID_DESC = 7. (ORACLE_HOME= /home/oracle) (GLOBAL_DBNAME = ORCL.us.oracle.com) 9. (SID_NAME = ORCL)))
网络配置 服务端配置(Listener.ora) %Oracle_Home%\network\admin 手工配置或使用Net Configuration Assistant工具 LSNRCTL START STOP
网络配置 客户端配置 Client SqlNet.ora sqlnet.ora tnsnames.ora Host Naming Local Naming Directory naming Oracle Names External naming SqlNet.ora %Oracle_Home%\Network\Admin NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME) SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS) Client sqlnet.ora tnsnames.ora
网络配置 客户端配置(Local Naming) tnsnames.ora tnsping Sqlnet.ora中指定names.directory_path={TNSNAMES} SYDEV_SYDEV = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = SyDev)(PORT = 1521)) ) (CONNECT_DATA = (SID = SyDev) (SERVER = DEDICATED)
网络配置 常见问题的处理 ORA-12154: “TNS:could not resolve service name“ ORA-12198: “TNS:could not find path to destination” ORA-12203: “TNS:unable to connect to destination” ORA-12533: “TNS:illegal ADDRESS parameters” ORA-12541: “TNS:no listener” 客户端:检查TNS串配置是否正确 服务器:检查服务器的Listener是否启动 网络:使用tnsping 测试网络 在服务器本地测试,conn / as sysdba
初始参数 概念和内容 PFILE SPFILE 相当于一个软件系统的初始化文件或系统选项文件 数据库启动时,读取初始化参数,获取数据库的配置信息。 SGA的分配参数 数据库及例程的名称参数 联机日志的操作信息 控制文件的名称和位置信息 %ORACLE_HOME%\Database PFILE 文本文件 8i及以前 修改后必须重启实例才生效 SPFILE 二进制文件,位于服务器端,不能直接修改 9i 修改后直接生效
初始参数 初始参数修改 OEM Alter System Set命令,静态参数只能Scope=spfile,实例重启后生效 Alter System Set parameter_name = parameter_value [Comment = comment_value][SCOPE = Memory | Spfile | Both] [Sid= ‘’|*] 将Spfile导为Pfile,然后修改,将修改的Pfile再导为SPFile,这样修改的参数需重新启动例程才生效。 Create pfile From spfile Create spfile From pfile
初始参数 初始参数使用 查看 Startup pfile=’文件路径/文件名’ 默认的使用顺序:指定的参数文件-〉spfileSID.ora-〉 默认spfile.ora-〉pfileSID.ora-〉默认pfile.ora 查看 Show parameter para_name V$parameter OEM 参数文件
初始参数 25个重要的参数 SGA_MAX_SIZE SHARED_POOL_SIZE DB_CACHE_SIZE DB_KEEP_CACHE_SIZE DB_RECYCLE_CACHE_SIZE LARGE_POOL_SIZE LOG_BUFFER JAVA_POOL_SIZE PGA_AGGREGATE_TARGET WORKAREA_SIZE_POLICY
初始参数 续上 OPTIMIZER_MODE OPTIMIZER_INDEX_COST_ADJ CURSOR_SHARING DB_FILE_MULTIBLOCK_READ_COUNT DBWR_IO_SLAVES HASH_JOIN_ENALBED PARALLEL_AUTOMATIC_TUNNING FAST_START_MTTR_TARGET LOG_CHECKPOINT_INTERVAL DB_BLOCK_SIZE
初始参数 其他常用参数 DB_NAME INSTANCE_NAME SERVICE_NAME COMPATIBLE BACKGROUD_DUMP_DEST USER_DUMP_DEST CONTROL_FILES UNDO_MANAGEMENT UNDO_TABLESPACE UNDO_RETENTION SQL_TRACE TIMED_STATISTICS
初始参数
表空间和数据文件 表空间 数据文件 只能隶属于一个数据库 可以包含多个数据文件 可以包含多个段 只能隶属于一个表空间 可以包含多个逻辑单元,段可以跨数据文件存储,区不能跨数据文件存储 Database Tablespace Data files
表空间和数据文件 原则 操作 大小 最小磁盘I/O 负载平衡,避开热点 条带化存储 数据文件和日志文件分开存放 索引和表数据文件分开 大表使用单独的表空间 手工条带 大小 空间按需创建 建议<=10G
表空间和数据文件 回滚表空间(Undo Tablespace) 主要用于事务的回滚和读一致性 只能存储回滚数据,不能存储其他数据,存储空间循环使用。数据的滞留时间受参数UNDO_RETENTION控制,默认3H 可以包含多个回滚段,一个事务只能存于一个回滚段 9i后,自动管理。UNDO_MANAGEMENT=AUTO|MANUAL 可以包含多个回滚表空间,但只能有一个默认回滚表空间,通过参数UNDO_TABLESPACE控制 Alter System Set UNDO_TABLESPACE=
表空间和数据文件 回滚表空间的重建 CREATE UNDO TABLESPACE "UNDOTEMP" DATAFILE 'D:\ORACLE\ORADATA\MY9IDB\UNDOTEMP.ora' SIZE 200M ALTER SYSTEM SET UNDO_TABLESPACE='UNDOTEMP' SCOPE=BOTH ALTER TABLESPACE UNDOTBS1 OFFLINE DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS
表空间和数据文件 续上 CREATE UNDO TABLESPACE "UNDOTBS1" DATAFILE 'D:\ORACLE\ORADATA\MY9IDB\UNDOTBS1.ora' SIZE 200M ALTER SYSTEM SET UNDO_TABLESPACE='UNDOTBS1' SCOPE=BOTH ALTER TABLESPACE UNDOTEMP OFFLINE DROP TABLESPACE UNDOTEMP INCLUDING CONTENTS
表空间和数据文件 临时表空间(Temporary Tablespace) 用于存储临时数据,多用于排序操作。当排序内存中不能容纳排序数据时,将使用临时表空间辅助排序。 该表空间包含的数据文件称为临时数据文件,临时数据文件不能设置为只读,且不能修改文件名 临时段在实例第一次排序时创建,关闭时释放存储,但不回收已分配的空间。 强烈建议临时表空间的区管理使用本地管理 临时表空间不产生日志记录,恢复时,不恢复临时表空间的数据 8i,系统表空间作为默认临时表空间,较影响性能。9i,可以指定默认临时表空间,创建用户时,如果不指定临时表空间,将使用数据库的默认表空间。通过Database_properties查看。 ALTER DATABASE DEFAULT TEMPORARY TABLSPACE tablespace_name
表空间和数据文件 临时表空间的重建 CREATE TEMPORARY TABLESPACE "TEMP01" TEMPFILE 'D:\ORACLE\ORADATA\MY9IDB\TEMP01.ora' SIZE 5M reuse ALTER USER "ZHT" TEMPORARY TABLESPACE "TEMP01" DROP TABLESPACE “HSCMPTEMP" INCLUDING CONTENTS
表空间和数据文件 续上 CREATE TEMPORARY TABLESPACE “HSCMPTEMP" TEMPFILE 'D:\ORACLE\ORADATA\MY9IDB\HSCMPTEMP.ora' SIZE 5M REUSE ALTER USER "ZHT" TEMPORARY TABLESPACE " HSCMPTEMP " DROP TABLESPACE “TEMP01" INCLUDING CONTENTS
用户权限管理 用户 概要文件 权限 角色 Users A B C Roles HR_MGR HR_CLERK Privileges SELECT ON JOBS INSERT ON JOBS CREATE TABLE CREATE SESSION UPDATE ON JOBS
用户权限管理 用户 Account locking Default tablespace Temporary Authentication mechanism Security domain Role privileges Tablespace quotas Direct privileges Resource limits
用户权限管理 创建用户 CREATE USER user_name Item_clause Item_clause:== [IDENTIFY [ON password | EXTENALLY]] [DEFAULT TABLESPACE tablespce_name] [TEMPORARY TABLESPACE tablespce_name] [QUOTA n ON tablespace_name] [PASSWORD EXPIRE] [ACCOUNT {LOCK|UNLOCK}] [PROFILE {profile_name|default}]]
用户权限管理 修改用户 删除用户 查看 ALTER USER user_name ITEM_CLAUSE DROP USER user_name [CASCADE] CASCADE: 级联删除用户关联的方案数据对象 查看 DBA_USERS DBA_TS_QUOTAS
用户权限管理 常用角色 查看 CONNECT DBA EXP_FULL_DATABASE IMP_FULL_DATABASE 创建新角色 DBA_ROLES:数据库中存在的所有角色 DBA_ROL_PRIVS:赋予用户和角色的角色权限 DBA_SYS_PRIVS:赋给用户和角色的系统权限 DBA_TAB_PRIVS:赋给用户和角色的对象权限 ROLE_ROL_PRIVS:角色的角色权限 ROLE_SYS_PRIVS:角色的系统权限 ROLE_TAB_PRIVS:角色的对象权限 SESSION_ROLES:当前会话用户有效的角色
归档设置 基本概念 非归档模式:日志采用一种循环机制,没有历史日志,可以立即重用。只能依赖于全备份进行恢复。 缺点:数据库遭破坏后,仅能进行不完整恢复。 仅能进行逻辑备份和冷备份。 优点:资源占用少(磁盘和进程) 适用:数据不重要,允许数据发生丢失 归档模式:联机日志只有进行归档后才能重用,归档后的日志为历史日志。 优点:数据库遭破坏后,可以恢复到指定的时间点。 可进行在线备份(热备份)。 缺点:占用一定的资源。(磁盘和进程) 适用:不允许数据丢失,不允许Down机备份。
归档设置 LGWR 052 054 053 Redo history 051 052 Online redo log files
归档设置 1 2 4 5 3 非归档到归档操作步骤 SHUTDOWN NORMAL/IMMEDIATE/TRANSACTIONAL STARTUP MOUNT 4 ALTER DATABASE OPEN Initialization parameters Control file 5 3 Full database backup ALTER DATABASE ARCHIVELOG
归档设置 自动归档和手工归档 Automatic archiving: Manual archiving: ARC0 053 053 053 DBA
归档设置 自动归档 ALTER SYSTEM ARCHIVE LOG START|STOP 开关: LOG_ARCHIVE_START=True|False。 ALTER SYSTEM ARCHIVE LOG START|STOP 进程: LOG_ARCHIVE_MAX_PROCESSES 参数控制用于归档的最大进程数。最大为10 ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=n 路径: LOG_ARCHIVE_DEST_n:指定归档存放路径。本地路径使用LOCATION标示,远程使用SERVICE标示,远程只能指定一个,名称在tnsname.ora中定义,用于备用数据库,需要特别设置。如: log_archive_dest_1 = "LOCATION=/archive1 MANDATORY REOPEN=600" log_archive_dest_2 = "SERVICE=standby_db1 OPTIONAL“ LOG_ARCHIVE_FORMAT:文件名格式。 %S:日志序列号;%T:线程ID。 LOG_ARCHIVE_DEST_STATE_n:控制路径是否可用 ALTER SYSTEM SET log_archive_dest_state_3 = ENABLE|DEFER
归档设置 自动归档(续) 手工归档 ALTER SYSTEM ARCHIVE LOG CURRENT TO path1; 路径 LOG_ARCHIVE_MIN_SUCCEED_DEST:必须归档成功路径的数量下限。 手工归档 NEXT:最老需归档的日志文件 CURRENT:当前日志文件 ALL:所有已满需归档的日志文件 ALTER SYSTEM ARCHIVE LOG CURRENT TO path1;
归档设置 查看 SELECT NAME,LOG_MODE FROM V$DATABASE Sql>Archive Log List V$ARCHIVE_PROCESSES:归档进程 V$ARCHIVE_DEST:获取所有归档路径 V$LOG_HISTORY:归档历史信息
Q&A