ITPub博客

首页 > 数据库 > Oracle > oracle启动和关闭,物理备份

oracle启动和关闭,物理备份

原创 Oracle 作者:yucw 时间:2007-11-02 20:59:10 0 删除 编辑

数据库开启和关闭
1.语法
startup [nomount|mount|open]
alter database [mount|open]
shutdown [normal|transactional|immediate|abort]

2.物理结构
初始化参数文件:pfile|spfile
控制文件:CONTROLFILE
在线重做日志文件 | 归档日志文件
数据文件:DBA_DATA_FILES
其它文件:tnsname.ora listner.ora,密码文件

查询数据文件 SELECT * FROM DBA_DATA_FILES;
查询日志文件 SELECT * FROM V$LOGFILE;
查询控制文件 SELECT * FROM V$CONTROLFILE;

3.各个启动过程使用到的文件
nomount:初始化参数文件,密码文件
mount:控制文件
open:数据文件,在线重做日志文件,(open后定期使用控制文件)

nomount启动方法
1. startup nomount;
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes

2. alter database mount;
SQL> alter database mount;
数据库已更改。

3. alter database open;
SQL> alter database open;
数据库已更改。

mount 启动方法
1.startup mount;
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。

2.alter database open;
SQL> alter database open;
数据库已更改。
SQL>

数据库启动主要分3个过程
1.启动参数
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes

2.打开装载数据库
Database altered.
3.打开数据库
Database altered.
数据库无法启动实例
问题一:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-01113: 文件 11 需要介质恢复
ORA-01110: 数据文件 11: 'D:ORACLEORADATAORCLHP_TEST_0627.ORA'

问题产生原因:
表空间HP_TEST_0627.ROA是备份状态,做了备份标志,在没有取消备份标志的时候服务器断电或异常关闭实例。
解决办法:
SQL> alter tablespace hp_test_0627 end backup;
SQL> alter tablespace hP_test_0627 end backup;
Tablespace altered.
相关查询:
SQL> select * from v$backup; 查询是否做了备份标志
SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 NOT ACTIVE 0
7 NOT ACTIVE 0
8 NOT ACTIVE 0
9 NOT ACTIVE 0
10 NOT ACTIVE 0
11 ACTIVE 6042093 02-NOV-07

11 rows selected.
SQL> select * from v$datafile; 查询数据文件
SQL> select file# , creation_change# , name from v$datafile;

FILE# CREATION_CHANGE# NAME
---------- ---------------- ---------------------------------------
1 11 D:ORACLEORADATAORCLSYSTEM01.DBF
2 187697 D:ORACLEORADATAORCLUNDOTBS01.DBF
3 6283 D:ORACLEORADATAORCLCWMLITE01.DBF
4 6302 D:ORACLEORADATAORCLDRSYS01.DBF
5 6324 D:ORACLEORADATAORCLEXAMPLE01.DBF
6 6343 D:ORACLEORADATAORCLINDX01.DBF
7 6363 D:ORACLEORADATAORCLODM01.DBF
8 6382 D:ORACLEORADATAORCLTOOLS01.DBF
9 6401 D:ORACLEORADATAORCLUSERS01.DBF
10 6420 D:ORACLEORADATAORCLXDB01.DBF
11 195337 D:ORACLEORADATAORCLHP_TEST_0627.ORA

11 rows selected.
数据库归档方式:
问题一:如何设置日志归档模式和非归档模式
前提是在 startup mount 模式下
Alter database noarchivelog; 改变为非归档模式
SQL> alter database noarchivelog;
数据库已更改。
Alter database archivelog; 改变为归档模式
SQL> alter database archivelog;
数据库已更改。
相关信息
SQL> archive log list 查询日志是否为归档模式
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 d:oracleoradataarchive_log2
最早的概要日志序列 57
下一个存档日志序列 60
当前日志序列 60
问题二:如何设置存档启动非启动模式
Alter system log_archive_start = true scope = spfile; 存档启动模式
SQL> alter system set log_archive_start = false scope = spfile;
系统已更改。
Alter system log_archive_start = false scope = spfile; 存档非启动模式
SQL> alter system set log_archive_start = true scope = spfile;
系统已更改。
相关信息:
SQL> show parameter log_archive_start 查询存档启动还是非启动模式
SQL> show parameter log_archive_start
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean TRUE

SQL> archive log list 查询存档启动还是非启动模式
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 d:oracleoradataarchive_log2
最早的概要日志序列 57
下一个存档日志序列 60
当前日志序列 60

问题三:日志强制切换方式
1.如果数据库归档方式配置完成后,可以用 ALTER SYSTEM SWITCH LOGFILE 命令强制日志切换
SQL> alter system switch logfile;
系统已更改。
2.查询检测到新的归档日志,查询V$ARCHIVED_LOG

问题四:数据库归档日志配置参数:
1.LOG_ARCHIVE_START
启动归档进程 arch 的参数,该参数默认时,被设置为FALSE,如果要启动arch进程,必须将此参数设置为TRUE
注释 : ARCH 是oracle的后台进程,是oracle实例的一部分
2.LOG_ARCHIVE_MAX_PROCESSES
数据库启动时,启动的归档进程arch的数量,一个实例最多可以启动10个arch进程。
例如:LOG_ARCHIVE_MAX_PROESSES = 3
3.LOG_ARCHIVE_DEST
用于设置归档日志文件的存储目录
例如:log_archive_duples_dest = 'd:XXXXXX'
4.LOG_ARCHIVE_DUPLEX_DEST
用于设置归档日志文件的镜像目录,于参数log_archive_dest指定的存储目录中的信息完全相同,但是存储目录不能一样!
例如:log_archive_duplex_dest='d:SSSSS'
5.LOG_ARCHIVE_DEST_n (N<=10)
用于设置多个归档日志存储目录。其中n小于等于10,所以可以将日志存储在10个不同的目录。
该参数设置格式如下:LOG_ARCHIVE_DEST_1 = 'D:XXX1'
LOG_ARCHIVE_DEST_2 = 'D:XXX2'
………
6.MANDATORY (参数 LOG_ARCHIVE_DEST_n 选项)
LOG_ARCHIVE_DEST_n的相关参数,此选项标识必须归档完成后,菜可以进行日志切换,如果由于戒指损坏不能进行日志切换时 ,数据库出于等待状态。
例如:LOG_ARCHIVE_DEST_1='D:SKSKSarchive1 MANDATORY '
7.REOPEN (参数 LOG_ARCHIVE_DEST_n 选项)
LOG_ARCHIVE_DEST_n 的相关参数,该参数标识归档日志目录设置错误,磁盘戒指损坏后等待多长时间重新写日志,默认为300秒,这种状态发生在存储日志的介质存储已满时,等待一段时间,介质更换完成后,继续写日志。
例如:LOG_ARCHIVE_DEST_1 = 'D:SKSKarchive1 REOPEN = 500'
8.OPTIONAL (参数 LOG_ARCHIVE_DEST_n 选项)
LOG_ARCHIVE_DEST_n 的相关参数,该选项标识不管日志归档时候完成就切换,这是默认方式,这样可以使数据库在归档出现故障时正常运行。
例如:LOG_ARCHIVE_DEST_2 = 'D:SKSKSarchive1 OPEIONAL'
9.LOG_ARCHIVE_DEST_STATE_n (n<=10)
用于这事参数LOG_ARCHIVE_DEST_n制定的归档日志存储目录失效。
例如:LOG_ARCHIVE_DEST_STATE_1 = DEFER
LOG_ARCHIVE_DEST_STATE_2 = DEFER
……..
Alter system set log_archive_dest_start_1 = defer;
Alter system set log_archive_dest_start_1 = enable;
设置失效是 "DEFER" 生效 "ENABLE"

问题五:如何查看归档日志
SQL> select * from V$archived_log;
物理备份数据库
问题一:完全数据库脱机备份
第一步:
查询数据字典DBA_DATA_FILES确认数据文件
查询数据字典V$LOGFILE 确认日志文件
查询数据字典V$CONTROLFILE 确认控制文件
1.SQL> Select * from dba_data_files;
SQL> Select * from dba_data_files;
FILE_NAME
----------------------------------------------------------
D:ORACLEORADATAORCLSYSTEM01.DBF
D:ORACLEORADATAORCLUNDOTBS01.DBF
D:ORACLEORADATAORCLCWMLITE01.DBF
D:ORACLEORADATAORCLDRSYS01.DBF
D:ORACLEORADATAORCLEXAMPLE01.DBF
D:ORACLEORADATAORCLINDX01.DBF
D:ORACLEORADATAORCLODM01.DBF
D:ORACLEORADATAORCLTOOLS01.DBF
D:ORACLEORADATAORCLUSERS01.DBF
D:ORACLEORADATAORCLXDB01.DBF
D:ORACLEORADATAORCLHP_TEST_0627.ORA
2.SQL> Select * from v$logfile;
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- -----------------------------------------------
3 ONLINE D:ORACLEORADATAORCLREDO03.LOG
2 ONLINE D:ORACLEORADATAORCLREDO02.LOG
1 STALE ONLINE D:ORACLEORADATAORCLREDO01.LOG
4 STALE ONLINE D:ORACLEORADATAORCLLOG4.ORA
3.SQL> select * from v$controlfile;
SQL> select * from v$controlfile;
STATUS NAME
------- --------------------------------------------------
D:ORACLEORADATAORCLCONTROL01.CTL
D:ORACLEORADATAORCLCONTROL02.CTL
D:ORACLEORADATAORCLCONTROL03.CTL
第二步:
Shutdown数据库
第三步:
备份数据文件,日志文件,控制文件,以及参数文件。
第四步:
重启oracle数据库

问题二:部分数据库联机备份步骤:
第一步:
1.设置表控件为备份状态
SQL>Alter tablesapce表空间名称 begin backup;
SQL> alter tablespace hp_test_0627 begin backup;
表空间已更改。
2.对数据文件做热备份标记。查询数据字典V$BACKUP
SQL>Select * from v$backup;
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ----------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 NOT ACTIVE 0
7 NOT ACTIVE 0
8 NOT ACTIVE 0
9 NOT ACTIVE 0
10 NOT ACTIVE 0
11 ACTIVE 6047033 02-11月-07
已选择11行。
3.数据文件头作FUZZY标记,查询数据字典V$DATABASE_HEADER;
SQL>select * from v$database_header;

Fuzzy 是一种标识,标识该数据文件正处于热备份期间。此外,这种备份方法只可以使用用于按归档方式运行的数据库,否则不能用这种方法备份。
第二步:
备份表控件的数据文件
第三步:
恢复表空间正常标识
SQL> alter tablespace 表空间名称 end backup;

问题三:部分数据库脱机备份步骤:
1.将表空间设置为脱机
SQL> alter tablespace 表空间名称 offline;
2.备份表空间的数据文件
3.将表空间设置为联机
SQL>alter tablespace 表空间名称 online;
注释:
1.系统表空间不能设置OFFLINE,所以这种备份无法用于系统表空间。
2.如果在回退段表空间RBS中已经创建了回退段,而且该回退段的状态已经设置为ONLINE,则回退段表空间RBS不能被设置OFFLINE状态。
如果要设置表空间RBS为OFFLINE,可以先吧回退段设置为OFFLINE,在设置表空间为OFFLIE。

问题四:控制文件在线备份
SQL>alter databae backup controlfile to'd:xjxjxj';
注释:
1.上述命令运行后,就会在指定的目录中生成一个控制文件。
2.由于是数据库运行时备份控制文件,所以数据库文件之间必然存在不同步,所备份的控制文件是不能直接使用的,必须经过实施数据库恢复之后,数据库才可以成长使用

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11911229/viewspace-980612/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    1
  • 访问量
    805