仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 548|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL教程之oracle数据库体系告急妨碍处置办法

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:44:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
DBaaS会导致单一客户利润率的下降,因为云服务一般是依靠MySQL学习教程数来抵消较低的利润率。oracle|数据|数据库Oracle物理布局妨碍是指组成数据库的各个物理文件破坏而招致的各类数据库妨碍。这些妨碍多是因为硬件妨碍酿成的,也多是工资误操纵而引发。以是我们起首要判别成绩的原因,假如是硬件妨碍则起首要办理硬件成绩。在无硬件成绩的条件下我们才干依照上面的处置方发来进一步处置。
把持文件破坏:
把持文件纪录了关于oracle的主要设置信息,如数据库名、字符集名字、各个数据文件、日记文件的地位等等信息。把持文件的破坏,会招致数据库非常封闭。一旦短少把持文件,数据库也没法启动,这是一种对照严峻的毛病。
能够经由过程查菘獾娜罩疚募炊ㄎ凰鸹盗说目刂莆募H罩疚募挥?ORACLE_BASE/admin/bdump/alert_ORCL.ora.
破坏单个把持文件:
1.确保数据库已封闭,假如没有效上面的命令来封闭数据库:
svrmgrl>shutdownimmediate;
2.检察初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,断定一切把持文件的路径。
3.用操纵体系命令将别的准确的把持文件掩盖毛病的把持文件。
4.用上面的命令从头启动数据库
svrmgrl>startup;
5.用得当的办法举行数据库全备份。
破坏一切的把持文件:
1.确保数据库已封闭,假如没有效上面的命令来封闭数据库:
svrmgrl>shutdownimmediate;
2.从响应的备份了局会合恢复比来的把持文件。关于没有接纳带库备份的点能够间接从磁带大将比来的把持文件备份恢复到响应目次;关于接纳带库备份的点用响应的rman剧本来恢复比来的把持文件。
3.用上面的命令来创立发生数据库把持文件的剧本:
svrmgrl>startupmount;
svrmgrl>alterdatabasebackupcontrolfiletotracenoresetlogs;
4.修正第三步发生的trace文件,将个中关于创立把持文件的一部分语句拷贝出来并做些修正,使得它可以表现最新的数据库布局。假定发生的sql文件名字为createcontrol.sql.
注重:
Trace文件的详细路径能够在实行完第3)步操纵后检察$ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来断定。
5.用上面命令从头创立把持文件:
svrmgrl>shutdownabort;
svrmgrl>startupnomount;
svrmgrl>@createcontrol.sql;
6.用得当的办法举行数据库全备份。
重做日记文件破坏:
数据库的一切增、删、改城市纪录进重做日记。假如以后激活的重做日记文件破坏,会招致数据库非常封闭。非激活的重做日记终极也会由于日记切换变成激活的重做日记,以是破坏的非激活的重做日记终极也会招致数据库的非常停止。在ipas/mSwitch中每组重做日记只要一个成员,以是鄙人面的剖析中只思索重做日记组破坏的情形,而不思索单个重做日记成员破坏的情形。
断定破坏的重做日记的地位及其形态:
1.假如数据库处于可用形态:
select*fromv$logfile;
svrmgrl>select*fromv$log;
2.假如数据库处于已非常停止:
svrmlgr>startupmount;
svrmgrl>select*fromv$logfile;
svrmgrl>select*fromv$log;
个中,logfile的形态为INVALID暗示这组日记文件呈现已破坏;log形态为Inactive:暗示重做日记文件处于非激活形态;Active:暗示重做日记文件处于激活形态;Current:暗示是重做日记为以后正在利用的日记文件。
破坏的日记文件处于非激活形态:
1.删除响应的日记组:
svrmgrl>alterdatabasedroplogfilegroupgroup_number;
2.从头创立响应的日记组:
svrmgrl>alterdatabaseaddlogfilegroupgroup_number(’log_file_descritpion’,…)sizelog_file_size;
破坏的日记文件处于激活形态且为非以后日记:
1.扫除响应的日记组:
svrmgrl>alterdatabaseclearunarchivedlogfilegroupgroup_number;
破坏的日记文件为以后举动日记文件:
用命令扫除响应的日记组:
svrmgrl>alterdatabaseclearunarchivedlogfilegroupgroup_number;
假如扫除失利,则只能做基于工夫点的不完整恢复。
翻开数据库而且用得当的办法举行数据库全备份:
svrmgrl>alterdatabaseopen;
部分数据文件破坏:
若破坏的数据文件属于非system表空间,则数据库仍旧能够处于翻开形态能够举行操纵,只是破坏的数据文件不克不及会见。这时候在数据库翻开形态下能够独自对破坏的数据文件举行恢复。如果system表空间的数据文件破坏则数据库体系会非常停止。这时候数据库只能以Mount体例翻开,然后再对数据文件举行恢复。能够经由过程检察数据库日记文件来判别以后破坏的数据文件究竟是否属于system表空间。
非system表空间的数据文件破坏
1.断定破坏的文件名字:
svrmgrl>selectnamefromv$datafilewherestatus=’INVALID’;
2.将破坏的数据文件处于offline形态:
svrmgrl>alterdatabasedatafile‘datafile_name’offline;
3.从响应的备份了局会合恢复关于这个数据文件的比来的备份。关于没有接纳带库备份的点能够间接从磁带上恢复;关于用带库备份的点用响应的rman剧本来恢复。
4.恢单数据文件:
svrmgrl>alterdatabaserecoverdatafile‘file_name’;
5.使数据库文件online:
svrmgrl>alterdatabasedatafile‘datafile_name’online;
6.用得当的办法举行数据库全备份。
system表空间的数据文件破坏:
1.以mount体例启动数据库
svrmgrl>startupmount;
2.从响应的备份了局会合恢复关于这个数据文件的比来的备份。关于没有接纳带库备份的点能够间接从磁带上恢复;关于用带库备份的点用响应的rman剧本来恢复。
3.恢复system表空间:
svrmgrl>alterdatabaserecoverdatafile‘datafile_name’;
4.翻开数据库:
svrmgrl>alterdatabaseopen;
5.用得当的办法举行数据库全备份。
表空间破坏:
若非system表空间已破坏,则数据库仍旧能够处于翻开形态能够举行操纵,只是破坏的表空间不克不及会见。如许在数据库翻开形态下能够独自对破坏的表空间举行恢复。如果system表空间破坏则数据库体系会非常停止。这时候数据库只能以Mount体例翻开,然后再对表空间举行恢复。能够经由过程检察数据库日记文件来判别以后破坏的表空间是不是是system表空间.
非system表空间破坏:
1.将破坏的表空间处于offline形态:
svrmgrl>altertablespace‘tablespace_name’offline;
2.从响应的备份了局会合恢复关于这个表空间比来的备份。关于没有接纳带库备份的点能够间接从磁带上恢复;关于用带库备份的点用响应的rman剧本来恢复。
3.恢复表空间:
svrmgrl>alterdatabaserecovertablespace‘tablespace_name’;
4.使表空间online:
svrmgrl>altertablespace‘tablespace_name’online;
5.用得当的办法举行数据库全备份.
system表空间破坏:
1.以mount体例启动数据库
svrmgrl>startupmount;
2.从响应的备份了局会合恢复system表空间比来的备份。关于没有接纳带库备份的点能够间接从磁带上恢复;关于用带库备份的点用响应的rman剧本来恢复。
3.恢复system表空间:
svrmgrl>alterdatabaserecovertablespacesystem;
4.翻开数据库:
svrmgrl>alterdatabaseopen;
5.用得当的办法举行数据库全备份。
全部数据库的一切文件破坏:
全部数据库一切文件的破坏通常为在共享磁盘阵列产生没法恢复的劫难时才产生,这类情形下只能对数据库举行恢复。若数据库的回档目次也已丧失,则数据库不成能做完整恢复,会有效户数据的丧失。
没接纳带库备份的现场:
1.将比来的备份从磁带上把各个文件解包到响应的目次下。
2.以mount体例翻开数据库:
svrmgrl>startupmount;
3.恢单数据库:
svrmgrl>recoverdatabaseuntilcancel;
4.翻开数据库:
svrmgrl>alterdatabaseopenresetlogs;
5.用得当的办法举行数据库全备份。
接纳带库备份的现场:
1.以nomount体例翻开数据库:
svrmgrl>startupnomount;
2.经由过程响应的rman剧本举行数据库软恢复。
$rmancmdfile=hot_database_restore.rcv
3.翻开数据库:
svrmgrl>alterdatabaseopenresetlogs;
4.用得当的办法举行数据库全备份。
存在比来的数据库完全冷备份条件下的一些典范告急情形的处置:
数据文件,回档重作日记和把持文件同时丧失或破坏:
无新增archives时的情况:
前提和假定:自前次镜像备份以来还没有天生新的archivelog(s);ArchivelogMode;有同步的datafile(s)和controlfile(s)的镜像(冷)拷贝
恢复步骤:
1.将镜像拷贝的datafile(s)和controlfile(s)抄送回原始地址:
$cp/backup/good_one.dbf/orig_loc/bad_one.dbf
$cp/backup/control1.ctl/disk1/control1.ctl
2.以mount选项启动数据库:
$svrmgrl
svrmgrl>connectinternal
svrmgrl>startupmount
3.以旧的controlfile来恢单数据库:
svrmgrl>recoverdatabaseusingbackupcontrolfileuntilcancel;
***介质恢复完成
(必需即刻cancel)
4.Resetthelogfiles(对启动而言不成省略):
svrmgrl>alterdatabaseopenresetlogs;
5.封闭数据库并做一次全库冷备份。


[1][2]下一页

与其他数据库相比,MySQL易学易用。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-19 21:57:17 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-25 22:19:43 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
飘灵儿 该用户已被删除
地板
发表于 2015-2-4 08:14:05 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
因胸联盟 该用户已被删除
5#
发表于 2015-2-9 19:58:31 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
兰色精灵 该用户已被删除
6#
发表于 2015-3-9 12:26:43 | 只看该作者
其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。
小妖女 该用户已被删除
7#
发表于 2015-3-16 22:14:21 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
活着的死人 该用户已被删除
8#
发表于 2015-3-23 04:25:50 | 只看该作者
也可谈一下你是怎么优化存储过程的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 03:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表