1、36.1.1 创建控制文件4创建控制文件需要使用CREATE CONTROLFILE语句,其语法如下:CREATE CONTROLFILEREUSE DATABASE database_name RESETLOGS|NORESETLOGS ARCHIVELOG|NOARCHIVELOG MAXLOGFILES numberMAXLOGMEMBERS numberMAXDATAFILES numberMAXINSTANCES numberMAXLOGHISTORY numberLOGFILEGROUP group_number logfile_name SIZE number K|M ,.DAT
2、AFILEdatafile_name ,.;46.1.1 创建控制文件4【例【例6.1】为当前数据库orcl创建新的控制文件my_controlfile,步骤如下。(1)查询数据字典v$logfile,了解当前数据库orcl中的日志文件信息,如下:|参见教材参见教材P126(2)使用管理员身份执行SHUTDOWN IMMEDIATE命令关闭数据库,如下:|参见教材参见教材P127(3)为了确保数据库数据的安全,应该在操作系统中对数据库的日志文件与数据文件进行备份。(4)使用STARTUP NOMOUNT命令启动数据库,此时仅仅只是启动数据库,而不会加载数据库文件,也不会打开数据库。如下:|参见
3、教材参见教材P12756.1.1 创建控制文件(5)使用CREATE CONTROLFILE语句创建新的控制文件,在创建时需要使用LOGFILE子句指定与数据库orcl相关的日志文件,使用DATAFILE子句指定与数据库orcl相关的数据文件,如下:|参见教材参见教材P127(6)新的控制文件创建好后,还需要设置服务器参数文件SPFILE中的control_files参数的值为新建的控制文件,让新的控制文件生效。(7)打开数据库,如下:|SQL ALTER DATABASE OPEN;|数据库已更改。数据库已更改。如果在创建控制文件时使用了RESETLOGS选项,则在打开数据库时也必须使用RE
4、SETLOGS选项,语句如下:|ALTER DATABASE OPEN RESETLOGS;66.1.2 备份控制文件41备份为二进制文件备份为二进制文件,实际上就是复制控制文件。【例例6.2】将orcl数据库的控制文件备份为二进制文件,如下:|SQL ALTER DATABASE BACKUP CONTROLFILE|2 TO F:oraclefileorcl_control_090925.bkp;76.1.2 备份控制文件42备份为脚本文件备份为脚本文件,实际上也就是生成创建控制文件的SQL脚本。【例例6.3】将orcl数据库的控制文件备份为脚本文件,如下:|SQL ALTER DATAB
5、ASE BACKUP CONTROLFILE TO TRACE;86.1.3 恢复控制文件4如果控制文件受损,就可以使用控制文件的备份文件对其进行恢复。4【例【例6.4】恢复数据库控制文件。步骤如下。(1)使用SHUTDOWN IMMEDIATE命令关闭数据库。(2)在操作系统中使用完好的控制文件副本覆盖损坏的控制文件。(3)使用STARTUP命令启动并打开数据库。执行STARTUP命令时,数据库以正常方式启动数据库实例,加载数据库文件,并且打开数据库。96.1.4 移动与删除控制文件4特殊情况下,需要移动控制文件,例如保存控制文件的磁盘等介质受到损坏。4【例【例6.5】移动数据库控制文件。(
6、1)在新的磁盘路径下存放控制文件。(2)使用ALTER SYSTEM语句,修改服务器参数文件SPFILE中的control_files参数的值为新路径下的控制文件。(3)使用SHUTDOWN IMMEDIATE命令关闭数据库。(4)使用STARTUP命令启动并打开数据库。106.2 管理日志文件4日志文件主要记录了数据库中的修改信息,它对数据库的恢复至关重要。一般情况下,Oracle数据库实例创建完后就会自动创建3组日志文件,数据库管理员可以根据需要向数据库中添加更多的日志文件组。4本节将介绍如何管理数据库中的日志文件。116.2.1 创建日志文件组及其成员1创建日志文件组|创建日志文件组的语
7、法如下:创建日志文件组的语法如下:vALTER DATABASE ADD LOGFILE GROUP group_number v(file_name ,.)SIZE number K|M REUSE ;|语法说明如下。语法说明如下。vGROUP group_number:为日志文件组指定组编号。:vfile_name:为该组创建日志文件成员。vSIZE number:指定日志文件成员的大小。vREUSE:如果创建的日志文件成员已存在,可以使:如果创建的日志文件成员已存在,可以使用用REUSE关键字覆盖已存在的文件。但是该文件不关键字覆盖已存在的文件。但是该文件不能已经属于其他日志文件组,否则
8、无法替换。能已经属于其他日志文件组,否则无法替换。126.2.1 创建日志文件组及其成员42向日志文件组添加日志文件成员向日志文件组添加新的日志文件成员,同样需要使用ALTER DATABASE语句,其语法如下:|ALTER DATABASE ADD LOGFILE MEMBER|file_name TO GROUP group_number|,.;136.2.2 修改日志文件4需要的时候可以修改日志文件的名称(包含路径),这需要使用ALTER DATABASE RENAME FILE语句,其语法形式如下:ALTER DATABASE RENAME FILE file_name TO new_
9、file_name;4【例【例6.8】修改E:APPADMINISTRATORORADATAORCL路径下的redo07.log文件的名称与路径,步骤如下。(1)使用SHUTDOWN命令关闭数据库。使用此命令关闭数据库时,数据库需要等待所有客户端从Oracle中正常退出,然后才可以关闭。(2)使用STARTUP MOUNT命令启动数据库。使用该命令时,将启动数据库实例,而且加载数据库文件,但是不打开数据库。(3)在操作系统中修改redo07.log文件的路径或名称。可以直接修改文件的名称,也可以复制该文件,为该文件设置新的存储目录和名称。本示例中复制redo07.log文件到同一目录,并修改新
10、文件的名称为redo07_new.log。(4)使用ALTER DATABASE RENAME FILE语句修改日志文件,如下:|参见教材参见教材P132(5)使用ALTER DATABASE OPEN命令打开数据库。146.2.3 切换日志文件组4日志文件组是循环使用的,当一组日志文件被写满时,Oracle系统自动切换到下一组日志文件。4在需要的时候,数据库管理员也可以手动切换日志文件组。切换日志文件组需要使用如下语句:ALTER SYSTEM SWITCH LOGFILE;156.2.3 切换日志文件组4【例【例6.9】手动切换当前数据库的日志文件组。在切换之前,先通过数据字典v$log查
11、询当前数据库正在使用哪个日志文件组,如下:SQL SELECT group#,status FROM v$log;GROUP#STATUS-1 CURRENT 2 INACTIVE 3 INACTIVE 4 UNUSED4其中,status表示日志文件组的当前使用状态,其值可为ACTIVE(活动状态,归档未完成)、CURRENT(正在使用)、INACTIVE(非活动状态)和UNUSED(从未使用)。166.2.4 清空日志文件组4清空日志文件组需要使用ALTER DATABASE语句,其语法如下:ALTER DATABASE CLEAR LOGFILE GROUP group_number;4
12、另外,清空日志文件组需要注意如下两点:被清空的日志文件组不能处于CURRENT状态,也就是说不能清空数据库当前正在使用的日志文件组。当数据库中只有两个日志文件组时,不能清空日志文件组。176.2.5 删除日志文件组及其成员41删除日志文件删除日志文件的语法如下:|ALTER DATABASE DROP LOGFILE MEMBER logfile_name;删除日志文件需要注意如下几点:|该日志文件所在的日志文件组不能处于该日志文件所在的日志文件组不能处于CURRENT状态。状态。|该日志文件所在的日志文件组中必须还包含有其他该日志文件所在的日志文件组中必须还包含有其他日志成员。日志成员。|如
13、果数据库运行在归档模式下,则应该在删除日志如果数据库运行在归档模式下,则应该在删除日志文件之前,确定它所在的日志文件组已经被归档,否文件之前,确定它所在的日志文件组已经被归档,否则会导致数据丢失。则会导致数据丢失。186.2.5 删除日志文件组及其成员42删除日志文件组删除日志文件组的语法如下:|ALTER DATABASE DROP LOGFILE GROUP group_number;删除日志文件组需要注意如下几点:|一个数据库至少需要两个日志文件组。一个数据库至少需要两个日志文件组。|日志文件组不能处于日志文件组不能处于CURRENT状态。|如果数据库运行在归档模式下,应该确定该如果数据
14、库运行在归档模式下,应该确定该日志文件组已经被归档。日志文件组已经被归档。196.3 管理归档日志4Oracle数据库有两种日志模式:非归档日志模式(NOARCHIVELOG)和归档日志模式(ARCHIVELOG)。4在非归档日志模式下,如果发生日志切换,则日志文件中原有内容将被新的内容覆盖;4在归档日志模式下,如果发生日志切换,则Oracle系统会将日志文件通过复制保存到指定的地方,这个过程叫“归档”,复制保存下来的日志文件叫“归档日志”,然后才允许向文件中写入新的日志内容。206.3.1 设置数据库模式4在数据库成功运行后,数据库管理员可以根据需要修改数据库的运行模式。4如果要修改数据库的
15、运行模式,可以使用如下语句:ALTER DATABASE ARCHIVELOG|NOARCHIVELOG;4其中,ARCHIVELOG表示归档模式;NOARCHIVELOG表示非归档模式。216.3.1 设置数据库模式4【例【例6.13】用管理员身份修改当前数据库的运行模式。修改前也通过ARCHIVE LOG LIST命令查看当前数据库的运行模式,如下:SQL CONNECT sys/admin AS SYSDBA已连接。SQL ARCHIVE LOG LIST;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 7当前日志序列 10226.3.2 设置归档目标4归档目标就是指存放归档日志文件的目录。一个数据库可以有多个归档目标。4设置归档目标的语法形式如下:ALTER SYSTEM SET log_archive_dest_N=LOCATION|SERVER =director
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1