Linux硬盘规划
首先分析一下linux的硬盘规划
可见分配的/export
目录才是挂载的硬盘,数据文件等等应该放在这个位置
root
登录创建文件夹,分配给用户,用groups
命令查看当前用户所属组
修改archive路径
sysdba
登录,查看闪回路径
1 | SQL> show parameter db_recovery |
可见闪回路径的目录和大小限制
修改闪回路径
1 | SQL> alter system set log_archive_dest_1='location=/export/DataBase/archives'; |
注意该目录需要有oracle用户权限
完了之后重启数据库,查看是否修改成功
1 | SQL> archive log list; |
切换日志试一下看有没有新的归档日志文件产生
1 | SQL> alter system switch logfile; |
跑到那个目录下面看一下,有新的归档日志文件了
归档日志路径设置规则
1 | select v."NAME",v."VALUE",v."DESCRIPTION" from v$parameter v |
看一下,可以看到有很多和归档相关的目录,大致分为三类
log_archive_dest
指定归档文件存放路径log_archive_dest_n
oracle最多支持归档文件放在10个地方,n从1到10db_recovery_file_dest
指定闪回恢复区路径
总体而言,log_archive_dest_n
的优先级最高,如果设置了他,db_recovery_file_dest
设置了也不起作用,log_archive_dest
不能设置,如果设置了db_recovery_file_dest
,就不能设置log_archive_dest
,如果设置了log_archive_dest
另外亮着都不能设置。。。表示很无语
如果设置了DB_RECOVERY_FILE_DEST,就不能设置LOG_ARCHIVE_DEST,默认的归档日志存放于DB_RECOVERY_FILE_DEST指定的闪回恢复区中。可以设置LOG_ARCHIVE_DEST_n,如果这样,那么归档日志不再存放于DB_RECOVERY_FILE_DEST中,而是存放于LOG_ARCHIVE_DEST_n设置的目录中。如果想要归档日志继续存放在DB_RECOVERY_FILE_DEST中,可以通过如下命令:
1
alter system set log_archive_dest_1=’location=USE_DB_RECOVERY_FILE_DEST’;
如果设置了LOG_ARCHIVE_DEST,就不能设置LOG_ARCHIVE_DEST_n和DB_RECOVERY_FILE_DEST。如果设置了LOG_ARCHIVE_DEST_n,就不能设置LOG_ARCHIVE_DEST。也就是说,LOG_ARCHIVE_DEST参数和DB_RECOVERY_FILE_DEST、LOG_ARCHIVE_DEST_n都不共存。而DB_RECOVERY_FILE_DEST和LOG_ARCHIVE_DEST_n可以共存。
LOG_ARCHIVE_DEST只能与LOG_ARCHIVE_DUPLEX_DEST共存。这样可以设置两个归档路径。LOG_ARCHIVE_DEST设置一个主归档路径,LOG_ARCHIVE_DUPLEX_DEST设置一个从归档路径。所有归档路径必须是本地的。
如果LOG_ARCHIVE_DEST_n设置的路径不正确,那么Oracle会在设置的上一级目录归档。比如设置LOG_ARCHIVE_DEST_1=’location=C:\archive1’,而OS中并没有archive1这个目录,那么Oracle会在C盘归档。
移动数据库文件
关库
1 | SQL> shutdown immediate; |
移动(复制)数据库文件到目标路径
1 | [oracle@SDJN-VM-LINUX-85 ~]$ cp /opt/oracle/oradata/BIZDB/users01.dbf /export/DataBase/data/users01.dbf |
重新挂载,修改
1 | [oracle@SDJN-VM-LINUX-85 ~]$ sqlplus / as sysdba |
打开数据库
1 | SQL> alter database open; |
查看一下
1 | SQL> select name from v$datafile; |
真是个伤筋动骨的操作啊