Linux日常小技巧Oracle数据库备份

Linux日常小技巧Oracle数据库备份

技术教程gslnedu2025-01-05 15:33:1010A+A-

Oracle数据库的备份与恢复是数据库管理中至关重要的操作,可以用来保证数据的安全性和完整性。在Oracle中,备份分为逻辑备份和物理备份,其中物理备份又分为热备份和冷备份。在我的工作中经常需要进行数据备份,我们的项目生产环境的备份有异地灾备,本地定时备份,本地实时备份。

Oracle数据库备份分为逻辑备份和物理备份,根据数据库的工作模式分为非归档模式和归档模式,一般我们把非归档模式称为冷备份,而相应的把归档模式称为热备份。下面以逻辑备份和物理备份为例,今天给大家分享一下,基本的逻辑备份。

逻辑备份

逻辑备份是对数据库中的逻辑结构,例如表、视图、存储过程等进行备份。逻辑备份的优点是备份速度快,缺点是恢复时间长。常用的逻辑备份方式有数据泵(Data Pump)和EXP/IMP。

1.使用数据泵进行备份和恢复:

  • 数据库导出:
expdp system/password directory=data_pump_dir 
dumpfile=my_backup.dmp logfile=my_backup.log schemas=scott
  • 数据库导入:
impdp system/password directory=data_pump_dir dumpfile=my_backup.dmp 
logfile=my_backup.log schemas=scott

2.使用 EXP/IMP 进行备份和恢复:

  • 数据库导出:
exp system/password file=my_backup.dmp owner=scott
  • 数据库导入:
imp system/password file=my_backup.dmp fromuser=scott touser=scott

索引

由于我们的表是分区表,我们数据备份删除后,表中所有索引失效,需要我们进行索引的重建,

查询表中索引:

SELECT * FROM USER_INDEXES WHERE TABLE_NAME = 'person';

查询索引表空间:

SELECT i.index_name, t.table_name, t.tablespace_name, sum(i.bytes) / 1024 / 1024 as size_mb
FROM user_indexes i
JOIN user_tables t ON i.table_name = t.table_name
GROUP BY i.index_name, t.table_name, t.tablespace_name;

创建索引:

创建一个名为 "index_name" 的简单索引,以 person 表中的 name 列作为索引列:

CREATE INDEX index_name ON person (name);

在创建索引时指定使用的表空间的示例:

CREATE INDEX index_name ON table_name(column_name) TABLESPACE tablespace_name;

创建新的表空间:

CREATE TABLESPACE tablespace_name
DATAFILE 'file_location/file_1.dbf'
SIZE [size]
AUTOEXTEND ON NEXT [next_size]
MAXSIZE [max_size];

表空间添加其他数据文件

ALTER TABLESPACE tablespace_name ADD 
DATAFILE 'file_location/file_2.dbf' SIZE [size] 
AUTOEXTEND ON NEXT [next_size] MAXSIZE [max_size];

整理不易,欢迎大家点赞收藏,转发,关注我每天分享一点运维小知识。

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8