修改、删除数据库
修改、删除数据库
学习了创建数据库之后,当然要再继续学习一下如何修改和删除数据库拉。
一、ALTER DATABASE命令
1、切换归档类型(ARCHIVELOG/NOARCHIVELOG)
使用归档模式可以执行数据库的:联机备份、大部分数据库文件和表空间的联机恢复以及数据库基于时间点的恢复。
切换归档类型必须要先把数据库设置为mount状态:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG/NOARCHIVELOG;
ALTER DATABASE OPEN;
关于ARCHIVE的参数主要有这些:
SQL> show parameter log_archive
NAME TYPE VALUE DESC
------------------------------------ ----------- ------------ --------------------------
log_archive_dest string 归档日志的目标目录(10个)
log_archive_dest_1 string 归档日志的目标目录(10个)
log_archive_dest_state_1 string enable 归档日志的目标的状态
log_archive_dest_state_2 string enable 归档日志的目标的状态
log_archive_duplex_dest string 归档日志的目标第二个目录
log_archive_format string ARC%S.%T 归档日志文件名格式
log_archive_max_processes integer 2 系统可以启动ARCHIVE进程的最大数量
log_archive_min_succeed_dest integer 1 复制成功的日志文件目标目录最小数
log_archive_start boolean FALSE 用于启动数据库ARCHIVE进程
log_archive_trace integer 0 设定归档日志的trace级别
------------------------------------ ----------- ------------ --------------------------
log_archive_dest string 归档日志的目标目录(10个)
log_archive_dest_1 string 归档日志的目标目录(10个)
log_archive_dest_state_1 string enable 归档日志的目标的状态
log_archive_dest_state_2 string enable 归档日志的目标的状态
log_archive_duplex_dest string 归档日志的目标第二个目录
log_archive_format string ARC%S.%T 归档日志文件名格式
log_archive_max_processes integer 2 系统可以启动ARCHIVE进程的最大数量
log_archive_min_succeed_dest integer 1 复制成功的日志文件目标目录最小数
log_archive_start boolean FALSE 用于启动数据库ARCHIVE进程
log_archive_trace integer 0 设定归档日志的trace级别
可使用ALTER SYSTEM SET ... 来修改参数
2、改变数据库状态
SQL> startup nomount;
ORACLE instance started.
ORACLE instance started.
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
3、维护日志文件
* 添加日志组
ALTER DATABASE ADD LOGFILE GROUP 5
('D:\ORACLE\ORADATA\KAKA\REDO01.LOG',
'D:\ORACLE\ORADATA\KAKA\REDO02.LOG',
'D:\ORACLE\ORADATA\KAKA\REDO03.LOG') SIZE 100M;
* 添加日志组成员
ALTER DATABASE ADD LOGFILE MEMBER
'D:\ORACLE\ORADATA\KAKA\REDO01.LOG' TO GROUP 5;
* 删除日志组
ALTER DATABASE DROP LOGFILE GROUP 1;
* 删除日志组成员
ALTER DATABASE DROP LOGFILE
MEMBER 'D:\ORACLE\ORADATA\KAKA\REDO01.LOG' ;
注:不能删除最后一个成员,最后一个需要删除整个组来操作
4、维护数据文件
SQL> select file_id,tablespace_name,bytes from dba_data_files;
FILE_ID TABLESPACE_NAME BYTES
------- ------------------------------ ----------
4 USERS
3 SYSAUX 1073741824
2 UNDOTBS1 11644436480
1 SYSTEM 1073741824
5 MISORA_TBS 104857600
6 MISBI_TBS 10737418240
------- ------------------------------ ----------
4 USERS
3 SYSAUX 1073741824
2 UNDOTBS1 11644436480
1 SYSTEM 1073741824
5 MISORA_TBS 104857600
6 MISBI_TBS 10737418240
SQL> ALTER DATABASE DATAFILE 5 RESIZE 100M;
5、控制备份文件
* 创建备份控制文件
ALTER DATABASE BACKUP CONTROLFILE TO 'D:\Oracle\oradata\kaka\ctl_mydb.ctl';
* 创建备份跟踪文件
ALTER DATABASE BACKUP CONTROLFILE TO TRACE; --不能指定地址
注:控制文件最好通过RMAN备份
6、管理默认数据库设置(10g)
ALTER DATABASE SET DEFUALT TABLESPACE users; --创建默认表空间
ALTER DATABASE ENABLE/DISABLE BLOCK CHANGE TRACKING; --块交换跟踪
ALTER DATABASE SET DEFUALT BIGFILE TABLESPACE; --修改表空间数据保存类型
ALTER DATABASE FLASHBACK ON; --闪回
其他操作....
二、删除数据库
关于删除数据库实例的问题,最好的办法就是使用DCBA,没有什么选项,直接选删除就可以了。
但是有的时候不能使用图形界面,要删除数据库大致要做到这些步骤:
删除单个数据库:
1、备份当前数据库
2、关闭数据库实例
3、手动删除各类数据库相关文件(数据文件、控制文件、日志文件等)
4、删除当前实例下的所有文件夹(udump、bdump等)
5、删除密码文件pwdfile
6、重新设定oracle_sid
7、在注册表中删除该实例的服务项
删除整个oracle软件:
1、关闭数据库
2、停止所有数据库相关的服务
3、使用Universal Installer写在软件
4、删除oracle目录下所有文件
5、删除C:\Program Files\Oracle所有文件
6、删除注册表中所有与oracle相关的项
7、删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下所有相关服务项
8、删除环境变量