二。什么是Oracle归档模式?
Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
数据库使用归档方式运行时才可以进行灾难性恢复。
1.归档日志模式和非归档日志模式的区别
非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.
用ARCHIVE LOG LIST 可以查看期模式状态时归档模式还是非归档模式
----非归档模式转归档模式
shutdown immediate; #关闭数据库
startup mount; #连接控制文件
alter database archivelog; #设置为归档模式
alter database open; #打开数据库
alter system set log_archive_dest_1="location=路径" scope=both;#设置本地归档日志的路径
alter system set log_archive_dest-1="server=路径" scope=both;#设置为远程归档日志的路径
archive log list;#使归档路径生效
如果归档日志空间满了,如何满足日常需要;
首先我们会考虑将部分归档日志移走或者删除,之后有可能会发现空间未释放。linux中当一个文件被进程使用或者占用的时候,移走或者删除文件,空间将不会释放,解决办法:关闭进程即可。
ps -fe|grep filename;
kill 最前面数字1 最前面数字2;
oracle归档日志的默认路径是$oracle_base/fast_recovery_area;默认大小为4g;
archive log list;#查看归档日志相关信息
方法1:增加归档空间
默认情况下,归档日志保存空间是在闪回区,
show parameter db_recovery;#查看闪回区空间大小和占用大小
alter system set db_recovery_file_dest_size=数值;#增大默认闪回区空间大小
方法2:修改归档日志路径为不受限制的路径
alter system set "location=路径";#必须确保路径存在
shutdown immediate;
alter database open;#重启数据库
archive log list;#检查归档日志路径是否设置成功
oracle控制文件
2.添加表空间
ALTER TABLESPACE "USERS" ADD DATAFILE '/u02/app/ora11g/users03.dbf' SIZE 8G;