Linux日常小技巧Oracle数据库备份
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];
整理不易,欢迎大家点赞收藏,转发,关注我每天分享一点运维小知识。