Oracle-Oracle数据库物理存储结构管理

Oracle数据库物理存储结构管理

紧接着上一篇博客:Oracle-新建Oracle数据库并连接(图文,详细):https://blog.csdn.net/xu_benjamin/article/details/90209332
进行一些简单的Oracle数据库物理存储结构管理操作

说明:下面的操作由于一些原因,是在sql plus和SQL developer中混合完成的。(有一些是失败的,原因还不太清楚)
其中有 SQL> 表示在slqplus中进行的, 没有就表示在SQL developer中完成的。
经过这两个工具的使用比较过后,我建议使用SQL developer。,这个相比确实是比较好用的,有错误的话提示信息也清楚些,而且写语句是还可以智能提示,还可以想执行那一句就执行那一句(选中要执行的语句那一行,按Ctrl+Enter),我觉得这个功能是非常不错的,写过的语句就不用再写了,当然,还有其他很多功能,非常的不错!
下面的内容可以全部在SQL developer中完成的!(直接输入语句就行不用 SQL> )

  • (1)向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文件users02.dbf。
SQL> alter tablespace users add datafile 
'D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf' size 10m;
表空间已更改。
  • (2)向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文件temp02.dbf。
SQL> alter tablespace temp add tempfile 
'D:\Oracle\app\administrators\oradata\BOOKSALES\temp02.dbf' size 10m;

表空间已更改。
  • (3)向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文件user03.dbf,大小5MB,每次扩展1MB,最大容量为100MB。
alter tablespace users add datafile 
'D:\Oracle\app\administrators\oradata\BOOKSALES\user03.dbf' size 5m autoextend on next 1m maxsize 100m;

表空间已更改。
  • (4)取消BOOKSALES数据库数据文件user03.dbf的自动扩展。
alter database datafile 
'D:\Oracle\app\administrators\oradata\BOOKSALES\user03.dbf' autoextend off;

数据库已更改。	
  • (5)将BOOKSALES数据库数据文件users02.dbf更名为users002.dbf。
SQL> alter tablespace users offline;

表空间已更改。

SQL> host copy 
D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf;
已复制         1 个文件。

SQL> alter tablespace users rename datafile 
'D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf' to 'D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf';

表空间已更改。

SQL> alter tablespace users online;

表空间已更改。
  • (6)查询BOOKSALES数据库当前所有的数据文件的详细信息。
SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME
------------------------------------------------------------
FILE_NAME
--------------------------------------------------------------------------------
USERS
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\USERS01.DBF

UNDOTBS1
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\UNDOTBS01.DBF

SYSAUX
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\SYSAUX01.DBF


TABLESPACE_NAME
------------------------------------------------------------
FILE_NAME
--------------------------------------------------------------------------------
SYSTEM
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\SYSTEM01.DBF

USERS
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\USERS002.DBF

USERS
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\USER03.DBF


已选择6行。
  • (7)为BOOKSALES数据库添加一个多路复用的控制文件control03.ctl。
SQL> alter system set control_files= 'D:Oracle\app\Administrator\oradata\BOOKSALES\CON TROL01.CTL','D:Oracle\app\Administrator\oradata\BOOKSALES\control03.ctl'scope=spfile;

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host copy D:Oracle\app\Administrator\oradata\BOOKSALES\control01.ctl 
D:Oracle\app\Administrator\oradata\BOOKSALES\control03.ctl
已复制         1 个文件。

SQL> startup

说明:这里shutdown后,重新startup可能会出现问题。提示错误:“ORA-12514:TNS:监听程序当前无法识别描述符中请求的服务”。这使可以尝试重启在上一篇博客中连接数据库时的那三个服务试一下。如果不行的话,就尝试如下办法:
在***配置文件<ORACLE_HOME>\NETWORK\ADMIN\listener.ora的监听服务列表中添加特定服务注册信息。例如:添加一个服务名为BOOKSALES的注册信息:

SID_LIST_LISTENER = 
   (SID_LIST = 
       ...
     (SID_DESC = 
                (GLOBAL_DBNAME = BOOKSALES)
                (ORACLE_HOME = D:\Oracle\app\administrators\product\11.2.0\dbhome_1)
                (SID_NAME = ORCL)
      )
    )
  • (8)以二进制文件的形式备份BOOKSALES数据库的控制文件。
SQL> alter database backup controlfile to 'D:Oracle\app\Administrator\oradata\BOOKSALE S\backup\control.bkp';

数据库已更改。
  • (9)将BOOKSALES数据库的控制文件以文本方式备份到跟踪文件中,并查看备份的内容。
SQL> alter database backup controlfile to trace;

数据库已更改。
  • (10)删除BOOKSALES数据库的控制文件control03.ctl。

说明:可能会出现上面(7)中的问题,可按照上面的办法尝试解决或百度

SQL> alter system set control_files= ' D:\Oracle\app\administrators\oradata\BOOKSALES\CON TROL01.CTL',' D:\Oracle\app\administrators\oradata\BOOKSALES\control03.ctl'scope=spf
ile;

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del D:\Oracle\app\administrators\oradata\BOOKSALES\control03.ctl

SQL> startup
  • (11)查询BOOKSALES数据库当前所有控制文件信息。
select name from v$controlfile;

D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\CONTROL01.CTL
D:\ORACLE\APP\ADMINISTRATORS\FLASH_RECOVERY_AREA\BOOKSALES\CONTROL02.CTL
  • (12)向BOOKSALES数据库添加一个重做日志文件组(组号为4),包含一个成员文件undo04a.log,大小为4MB。
alter database add logfile group 4 
'D:\Oracle\app\administrators\oradata\BOOKSALES\undo04a.log' size 4m;

Database已变更。
  • (13)向BOOKSALES数据库的重做日志组4中添加一个成员文件,名称为undo04b.log。
alter database add logfile member 
'D:\Oracle\app\administrators\oradata\BOOKSALES\undo04b.log' to group 4;

Database已变更。
  • (14)将BOOKSALES数据库的重做日志文件组4中所有成员移植到一个新的目录下。
select * from v$log;

alter system switch logfile;
首先使用上述命令查看并将组4的状态改为inactive。
host move D:\Oracle\app\administrators\oradata\BOOKSALES\undo04a.log' D:\Oracle\undo\BOOKSALES\ undo04a.log host move D:\Oracle\app\administrators\oradata\BOOKSALES\undo04b.log D:\Oracle\undo\BOOKSALES\ undo04b.log alter database rename file 'D:\Oracle\app\administrators\oradata\BOOKSALES\undo04a.log','D:\Oracle\app\administrators\oradata\BOOKSALES\undo04b.log' to 'D:\Oracle\undo\BOOKSALES\undo04a.log','D:\Oracle\undo\BOOKSALES\undo04b.log';

Database已变更。
  • (15)查询BOOKSALES数据库中所有重做日志文件组的状态。
select group#,sequence#,members,archived,status from v$log;

结果如下图:

  • (16)查询BOOKSALES数据库中所有重做日志文件成员的状态。
select group#,status,member from v$logfile;

结果如下图:

  • (17)删除BOOKSALES数据库中重做日志组4中的成员文件undo04b.log。
alter database drop logfile member 'D:\ORACLE\UNDO\BOOKSALES\UNDO04B.LOG';

Database已变更。
  • (18)删除BOOKSALES数据库的重做日志组4。
SQL> alter database drop logfile group 4;

Database已变更。
  • (19)查看BOOKSALES数据库是否处于归档模式。
archive log list

数据库日志模式                                 归档日志模式
自动归档                                    已启用
归档目标                                    USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列                               8
下一个存档日志序列                               10
当前日志序列                                  10
  • (20)将BOOKSALES数据库设置为归档模式。
shutdown immediate

select name,value from v$parameter where name='db_recovery_file_dest';

startup mount

alter database archivelog;
  • (21)为BOOKSALES数据库设置3个归档目标,其中一个为强制归档目标。
alter system set log_archive_dest_1='location=D:\Oracle\app\administrators\oradata\BOOKSALES\archive';
alter system set log_archive_dest_2='location=D:\Oracle\app\administrators\oradata\archive';
alter system set log_archive_dest_3='location=D:\Oracle\app\administrators\oradata\booksales\archive mandatory';22)对BOOKSALES数据库进行5次日志切换,查看归档日志信息。
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
archive log list

数据库日志模式                                 归档日志模式
自动归档                                    已启用
归档目标                                    USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列                               13
下一个存档日志序列                               15
当前日志序列                                  15
全部评论

相关推荐

原来已经一年了,因为没有加任何实验室没有学长学姐带,再一次偶然的机会下刷到我们学校的牛肉哥,和他聊天之后发现他也没加实验室能进大厂,我就燃起了希望,去年大概&nbsp;4&nbsp;月份找好路线&nbsp;零基础&nbsp;开始学&nbsp;5&nbsp;月背八股和开始刷算法很难受&nbsp;7-8&nbsp;月焦虑躯体化害怕找不到实习&nbsp;9&nbsp;月找到一家像样的小厂去实习了&nbsp;4&nbsp;个月大三上期末考试结束之后&nbsp;1&nbsp;月份回来边实习边准备工作压力很大&nbsp;当时只有字节、百度、商汤的面试,字节三面挂了,百度&nbsp;oc,商汤&nbsp;二面挂(差评&nbsp;无效面试),之后来深圳百度实习之后还是觉得不甘心一直没把算法和八股扔下一直在准备,百度实习的时候&nbsp;mt&nbsp;交给我一个特别重要的工作数据库迁移(特别感谢&nbsp;mt&nbsp;,这个需求学到了很多东西处理了一堆线上问题),本来看着暑期他们面试都很困难,然后听说百度要涨实习薪资(然而&nbsp;5&nbsp;月并没有涨),就想着留在百度吧也懒得面试了,4&nbsp;月&nbsp;20&nbsp;多的时候字节&nbsp;hr&nbsp;打电话约面问我要不要尝试一下询问了&nbsp;1&nbsp;月份三面为啥会挂有没有学习&nbsp;ai&nbsp;知识(因为字节这边后端岗位偏&nbsp;ai),我来到百度之后全面拥抱&nbsp;AI&nbsp;也认识了我的好兄弟&nbsp;X&nbsp;哥,他在百度&nbsp;XX&nbsp;部门&nbsp;Agent&nbsp;实习,他属于是我&nbsp;Agent&nbsp;的启蒙老师,来百度之后一直在了解&nbsp;AI&nbsp;这一块,我就接受了字节的面试,一面的时候&nbsp;20&nbsp;分钟实习拷打然后突然说&nbsp;30&nbsp;分钟代码考核我心就凉了以为是&nbsp;kpi,算法题是手撕高并发安全下的令牌桶限流器,我写了整整&nbsp;80&nbsp;多行代码最后也写出来了,但是从来没看到过出这种题能&nbsp;oc&nbsp;的我也就不管了,后边面试也是很顺利但是流程有点长可能一直在横向吧总结结果是好的!!!感谢这一年努力的自己和遇到的各位互联网大佬分享的知识!!!ps&nbsp;图二纯感慨&nbsp;(觉得🍬请不要喷我)欢迎大家一起交流学习呀!!!!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务