数据库备份

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

SQL> shutdown immediate

SQL> startup mount


查看归档模式

SQL> archive log list


设置为归档模式

SQL> alter database archivelog;

SQL> alter database open;


查看归档进程

[oracle@sq ~]$ ps -ef |grep arc


查看归档路径

SQL> show parameter DB_RECOVERY_FILE_DEST


SQL> alter system switch logfile;

(切换日志时会产生归档文件,进入归档路径下查看)


--------------------------------------------

更改归档日志目录

SQL> alter system set log_archive_dest_1='location=/home/oracle/archivelog01' scope=both;


SQL> alter system set log_archive_dest_2='location=/home/oracle/archivelog02' scope=both;


系统cpu ,i/o 资源充足情况下,增加归档进程提高性能.

查看参数 (一共有10个进程,看情况自行增加)

SQL> show parameter archive


--------------------------------------------

归档路径中 日志格式为dbf,改变格式

SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;


%s: 日志序列号:


                %S: 日志序列号(带有前导)


                %t: 重做线程编号.


                %T: 重做线程编号(带有前导)


                %a: 活动ID号


                %d: 数据库ID号


                %r RESETLOGS的ID值.



SQL> startup force

(查看归档路径变为arc后缀)


==============================================

完全数据库脱机冷备份


拷贝出控制文件,数据文件,日志文件

[oracle@sq ~]$ mkdir db_bak



SQL> select 'cp '||member||' /home/oracle/db_bak' from v$logfile t

  2  union all

  3  select 'cp '||file_name||' /home/oracle/db_bak' from dba_data_files

  4  union all

  5  select 'cp '||name||' /home/oracle/db_bak' from v$controlfile;

(生成拷贝命令,把生成的命令都执行一边)


==================================================

部分数据库联机备份

备份表空间

(查看表空间)

SQL> select TABLESPACE_NAME from dba_tablespaces;


1.SQL>  alter tablespace users begin backup;


[oracle@sq ~]$ cp /u01/app/oracle/oradata/orcl/users01.dbf /home/oracle/db_bak1

2.备份完毕后结束

SQL> alter tablespace users end backup;


3.

[oracle@sq orcl]$ rm -rf users01.dbf 


4.SQL> startup force;

ORA-01110: data file 4: '/u01/app/oracle/oradata/orcl/users01.dbf'


5.把备份的文件拷贝回来

[oracle@sq db_bak1]$ cp users01.dbf /u01/app/oracle/oradata/orcl/users01.dbf


6.离线文件

SQL> alter database datafile 4 offline;


7.恢复文件

SQL> recover datafile 4;

SQL> alter database datafile 4 online;


8.SQL> alter database open;


查看状态

SQL> select FILE_NAME,FILE_ID,STATUS from dba_data_files


查看备份

SQL> select * from v$backup;

=====================================================

全库联机备份


1.整库声明备份

SQL> alter database begin backup;

SQL> select * from v$backup;

结果所有文件 都是备份状态


2.把数据文件拷贝出来

[oracle@sq ~]$ mkdir db_bak2

[oracle@sq orcl]$ cp *.dbf /home/oracle/db_bak2/


3.控制文件也可能损害,如何把控制文件也备份出来呢

SQL> oradebug setmypid;

SQL> alter database backup controlfile to trace;


SQL> oradebug tracefile_name;

/u01/app/oracle/admin/orcl/udump/orcl_ora_11743.trc


里面有创建控制文件命令

CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 '/oracle/app/oradata/TEST/redo01.log'  SIZE 50M,

  GROUP 2 '/oracle/app/oradata/TEST/redo02.log'  SIZE 50M,

  GROUP 3 '/oracle/app/oradata/TEST/redo03.log'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

  '/oracle/app/oradata/TEST/system01.dbf',

  '/oracle/app/oradata/TEST/undotbs01.dbf',

  '/oracle/app/oradata/TEST/sysaux01.dbf',

  '/oracle/app/oradata/TEST/users01.dbf'

CHARACTER SET AL32UTF8

;



(reuse是建表空间时重新使用已存在的文件,如未指定reuse,那么如果要建的文件已存在,则会报错。


noresetlogs 恢复的时候,把原来redo里的信息不更新,即新的数据库的SCN号和原来的SCN号是连续的,这个一般用于完全恢复

resetlogs就是会把redo里原来的信息会重置,相当于一个新的数据库的建立)


4.删除

[oracle@sq orcl]$ rm -rf 控制文件


5.SQL> startup force;

ORA-00205: error in identifying control file, check alert log for more info


6.执行上面的创建控制文件命令

7.

SQL> alter database open;(报错)


8.SQL> recover database;

SQL> alter database open;(成功)

========================================

==========================================

备份日志文件的高可靠(日志镜像)

SQL> show parameter archive(查看备份日志通道)


[oracle@sq ~]$ mkdir archivelog1

[oracle@sq ~]$ mkdir archivelog2


SQL> alter system set log_archive_dest_1='location=/home/oracle/archivelog1';


SQL> alter system set log_archive_dest_2='location=/home/oracle/archivelog2';



SQL> show parameter archive

SQL> alter system switch logfile;(切换日志)


进入 archivelog1 archivelog2目录会看到 2个一样的文件


[oracle@sq archivelog1]$ ps -ef |grep ora_(两个归档进程)

oracle   19962     1  0 06:28 ?        00:00:00 ora_arc0_orcl

oracle   19964     1  0 06:28 ?        00:00:00 ora_arc1_orcl



SQL> show parameter archive (两个进程)

log_archive_max_processes            integer     2



SQL> alter system set log_archive_max_processes=3;(改变进程数)



[oracle@sq archivelog1]$ ps -ef |grep ora_(结果3个)



SQL> alter system set log_archive_dest_2='';(清除通道)

===========================



     本文转自陈继松 51CTO博客,原文链接:http://blog.51cto.com/chenjisong/1737390,如需转载请自行联系原作者

相关文章
|
11月前
|
关系型数据库 MySQL 数据库
数据库备份练习
3.备份数据库school到/backup目录
50 1
|
11月前
|
存储 Windows
数据备份(手动备份与自动备份)
数据备份(手动备份与自动备份)
268 1
|
数据可视化 关系型数据库 MySQL
数据库备份
数据库备份
|
SQL 关系型数据库 MySQL
MySQL数据库(23):数据库备份与还原
MySQL数据库(23):数据库备份与还原
120 0
|
Oracle 关系型数据库 数据库
|
数据库
数据库备份 DBS管理备份计划操作步骤
数据库备份DBS提供全量备份、增量备份和数据恢复能力。在购买并配置备份计划后,用户还可以随时对备份计划进行管理。
1098 0
|
存储 数据库 数据中心
数据库备份 DBS快速入门
数据库备份DBS可以实现实时的数据备份,在线数据发生变化时,数据库备份会获得变更的数据,并将数据实时写入云存储,帮助用户实现秒级RPO的数据备份。
809 0
|
关系型数据库 MySQL 数据库
mysql主从数据库备份
mysql主从数据库备份 主库         1.配置文件 /etc/mysql/mysql.cnf 加  [mysqld] log-bin=my...
1428 0
|
存储 安全 关系型数据库
阿里云发布数据库备份DBS,5分钟完成数据库上云备份
数据库备份DBS作为一款阿里云产品,专注于阿里云体系数据库的一站式保护,用于上云备份、跨云灾备、云归档、云中备份、异地灾备等场景。
3936 0
|
存储 关系型数据库 数据库
阿里云宣布数据库备份DBS正式商用,5分钟完成数据库上云备份
7月11日,阿里云宣布数据库备份DBS正式商用,作为数据库上云备份通道,与对象存储OSS构建无门槛的云数据库备份解决方案,仅需5分钟即可实现秒级RPO(Recovery Point Objective恢复点目标,通俗理解是当数据库故障时,允许丢失多长时间数据,RPO越小越好)的实时备份。
3124 0

热门文章

最新文章