常见数据库有哪些问题,数据库系统中故障可以分为哪几类
来源:整理 编辑:黑码技术 2024-05-28 06:25:17
1,数据库系统中故障可以分为哪几类
事务故障 系统故障 介质故障一、事务故障 什么是事务故障 某个事务在运行过程中由于种种原因未运行至正常终止点 事务故障的常见原因 输入数据有误 运算溢出 违反了某些完整性限制 某些应用程序出错 并行事务发生死锁事务故障(续) 事务故障的恢复 事务故障的恢复:事务撤消(UND) 恢复程序要在不影响其它事务运行的情况下,强行回滚(RBACK)该事务,即清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样 二、系统故障 什么是系统故障 由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。 发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部存储设备上的数据未受影响 系统故障(续) 系统故障的常见原因 操作系统或DBMS 代码错误 操作员操作失误 特定类型的硬件错误(如CPU 故障) 突然停电 系统故障(续) 系统故障的恢复 1. 清除尚未完成的事务对数据库的所有修改 如果DBMS 无法确定哪些事务已更新过数据库,则系统重新启动后,恢复程序要强行撤消(UND ) 所有未完成事务,使这些事务象没有运行过一样。 2. 将已完成事务提交的结果写入数据库 如果DBMS 无法确定哪些事务的提交结果尚未写入物理数据库,则系统重新启动后,恢复程序需要重做(RED ) 所有已提交的事务。 三、介质故障 什么是介质故障 硬件故障使存储在外存中的数据部分丢失或全部丢失 介质故障比前两类故障的可能性小得多,但破坏性最大。 介质故障(续) 介质故障的常见原因 硬件故障 磁盘损坏 磁头碰撞 操作系统的某种潜在错误 瞬时强磁场干扰 介质故障(续) 介质故障的恢复 装入 数据库发生介质故障前某个时刻的数据副本 重做自此时始的所有成功事务 ,将这些事务已提交的结果重新记入数据库 故障的种类小结 数据库系统中各类故障对数据库的影响 数据库本身被破坏 (介质故障) 数据库处于不一致状态 数据库中包含了未完成事务对数据库的修改(事务故障、系统故障) 数据库中丢失了已提交事务对数据库的修改(系统故障) 不同类型的故障应采用不同的恢复操作 故障的种类小结(续) 恢复操作的基本原理:简单 原理:利用 存储在系统其它地方的冗余数据 来重建 数据库中已经被破坏或已经不正确的那部分数据 恢复的实现技术:复杂 一般一个大型数据库产品,恢复子系统的代码要占全部代码的10% 以上数据库系统中故障可以分为:事务故障、系统故障、介质故障。一、事务故障某个事务在运行过程中由于种种原因未运行至正常终止点,事务故障的常见原因,输入数据有误运算溢出,违反了某些完整性限制发生锁死。二、系统故障由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部存储设备上的数据未受影响 。三、介质故障硬件故障使存储在外存中的数据部分丢失或全部丢失 ,介质故障比前两类故障的可能性小得多,但破坏性最大。数据库系统中故障可以分为:事务故障、系统故障、介质故障。一、事务故障某个事务在运行过程中由于种种原因未运行至正常终止点,事务故障的常见原因,输入数据有误运算溢出,违反了某些完整性限制发生锁死。二、系统故障由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部存储设备上的数据未受影响 。三、介质故障硬件故障使存储在外存中的数据部分丢失或全部丢失 ,介质故障比前两类故障的可能性小得多,但破坏性最大。
2,Mysql常见的几个错误问题及解决方法
一、Cant connect to MySQL server on localhost (10061)翻译:不能连接到 localhost 上的mysql分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误。解决:既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的my.ini配置的有问题。重新配置其即可。如果觉得mysql负载异常,可以到mysql/bin 的目录下执行mysqladmin -uroot -p123 processlist来查看mysql当前的进程。二、Unknown MySQL Server Host localhosadst (11001)翻译:未知的MySQL服务器 localhosadst分析:服务器 localhosasdst 不存在。或者根本无法连接解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbhost重新设置为正确的mysql 服务器地址。三、Access denied for user: roota@localhost (Using password: YES)翻译:用户 roota 访问 localhost 被拒绝(没有允许通过)分析:造成这个错误一般数据库用户名和密码相对mysql服务器不正确解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbuser、$dbpw核实后重新设置保存即可。四、Access denied for user: red@localhost to database newbbs翻译:用户 red 在localhost 服务器上没有权限操作数据库newbbs分析:这个提示和问题三是不同的。那个是在连接数据库的时候就被阻止了,而这个错误是在对数据库进行操作时引起的。比如在select update等等。这个是因为该用户没有操作数据库相应的权力。比如select 这个操作在mysql.user.Select_priv里记录 Y 可以操作N 不可以操作。解决:如果是自己的独立主机那么更新mysql.user 的相应用户记录,比如这里要更新的用户为red 。或者直接修改 ./config.inc.php 为其配置一个具有对数据库操作权限的用户或者通过如下的命令来更新授权grant all privileges on dbname.* to user@localhost identified by password提示:更新了mysql库中的记录一定要重启mysql服务器才能使更新生效FLUSH PRIVILEGES;五、No Database Selected翻译:没有数据库被选择上分析:产生的原因有两种config.inc.php 里面$dbname设置的不对。致使数据库根本不存在,所以在 $db->select_db($dbname); 时返回了false和上面问题四是一样的,数据库用户没有select权限,同样会导致这样的错误。当你发现config.inc.php的设置没有任何问题,但还是提示这个错误,那一定就是这种情况了。解决:对症下药打开config.inc.php 找到$dbname核实重新配置并保存同问题四的解决方法六、Cant open file: xxx_forums.MYI. (errno: 145)翻译:不能打开xxx_forums.MYI问题分析:这种情况是不能打开 cdb_forums.MYI 造成的,引起这种情况可能的原因有:1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。解决方法:1、修复数据表可以使用下面的两种方式修复数据表:(第一种方法仅适合独立主机用户)1)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:myisamchk -r 数据文件目录/数据表名.MYI;2)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。注意:以上两种修复方式在执行前一定要备份数据库。
3,SQL Server中常见的问题与解决方法
关于事务日志 在使用sql server时,经常会出现系统提示事务日志 已满的错误信息(错误1105),以使的应用系统的数据库 无法打开,影响到系统的正常运行。通常有三种方法可以 解决这一问题: ●扩展数据库空间 可以通过扩展数据库大小来增大事务日志的空间。先 利用alter database增大数据库空间,再通过sp—logdev ice系统存储过程把事务日志转移到事务日志数据库设备 上去,具体语法如下: 语法: ·alter database database—name on database—d evice增大数据库空间 ·sp—logdevice dbname,database_device转移 事务日志 例:alterdatabasemydbonmydb—log—dev=8 sp—logdevicemydbmydb—log—dev 如果数据库对数据库设备变得过大(通常在决定数据 库大小时,先指定一个保守的值,如果以后需要增大空间 ,用alter database增加其大小),需先扩展数据库设备 ,再增大事务日志的空间,具体语法如下: 语法: ·disk resize name=logical—device_name,size= final—size扩展数据库设备 ·alter database database—name on database—d evice增大数据库空间 ·sp_logdevicedbname,database_device转移事 务日志 例:disk resize name=mydb on mydb—log—dev=8 alter database mydb on mydb—log—dev=8 sp—logdevice mydb mydb—log—dev (以上工作也可以通过对microsoft sql enterprise manger提供的gui界面直接操作来完成。) ●定期执行dump database语句来完成截短 事务日志。其语法为: 语法: ·dump database dbname to dump_device 例:dump databas emydb to mydump—dev(通过将 数据库mydb备份到备份设备mydump—dev上完成截短事务日 志。) ●trunc.logonchkpt.选项来完成截短事 务日志 缺省时,在新建的数据库上,trunc.logonchkpt. 选项设置成off(缺省值),事务日志永远不作备份,事务 日志不停地增长,可能会耗尽数据库的存储空间,将trun c.logonchkpt.选项设置成on,每次checkpoint进程发 生时(通常每分钟一次)都截短事务日志(删除已提交的 事务),使得事务日志不会不停地增长以耗尽数据库的存 储空间。 配置选项和值 在使用sql server时,同样会经常出现系统提示user connections(用户连接)已达到配置数,系统无法正常 运行的问题。sql server用户连接最大值是32767,而缺 省时的一般配置数为15个。如果使用中的用户连接已达到 配置数,而又来了一个用户连接请求,sqlserver将回送一 个错误消息。这时可以通过修改sql server的配置选项中 的user connections项的最大值来解决这一问题。配置选 项的显示和管理可通过sp—configure系统过程来完成, 但不能使用sp—configure来设定一个比当前配置选项最大 值还大的配置选项。 语法:sp—configure〔config—name〔,confi g—value〕〕 其中config—name为配置选项的项名,config—valu e为设置值。 例:sp—configureuser_connections,30 同时用户可以使用sp—configure来显示配置选项, 通过重新设置一些配置选项,调节性能和优化存储分配。 (注:修改sql server的配置选项,必须以系统管理员身 份登录。)?关于事务日志nbsp;nbsp;nbsp;在使用sqlnbsp;server时,经常会出现系统提示事务日志nbsp;已满的错误信息(错误1105),以使的应用系统的数据库nbsp;无法打开,影响到系统的正常运行。通常有三种方法可以nbsp;解决这一问题:nbsp;nbsp;nbsp;●扩展数据库空间nbsp;nbsp;nbsp;可以通过扩展数据库大小来增大事务日志的空间。先nbsp;利用alternbsp;database增大数据库空间,再通过sp—logdevnbsp;ice系统存储过程把事务日志转移到事务日志数据库设备nbsp;上去,具体语法如下:nbsp;nbsp;nbsp;语法:nbsp;nbsp;nbsp;·alternbsp;databasenbsp;database—namenbsp;onnbsp;database—dnbsp;evice增大数据库空间nbsp;nbsp;nbsp;·sp—logdevicenbsp;dbname,database_device转移nbsp;事务日志nbsp;nbsp;nbsp;例:alterdatabasemydbonmydb—log—dev=8nbsp;nbsp;nbsp;sp—logdevicemydbmydb—log—devnbsp;nbsp;nbsp;如果数据库对数据库设备变得过大(通常在决定数据nbsp;库大小时,先指定一个保守的值,如果以后需要增大空间nbsp;,用alternbsp;database增加其大小),需先扩展数据库设备nbsp;,再增大事务日志的空间,具体语法如下:nbsp;nbsp;nbsp;语法:nbsp;nbsp;nbsp;·disknbsp;resizenbsp;name=logical—device_name,size=nbsp;final—size扩展数据库设备nbsp;nbsp;nbsp;·alternbsp;databasenbsp;database—namenbsp;onnbsp;database—dnbsp;evice增大数据库空间nbsp;nbsp;nbsp;·sp_logdevicedbname,database_device转移事nbsp;务日志nbsp;nbsp;nbsp;例:disknbsp;resizenbsp;name=mydbnbsp;onnbsp;mydb—log—dev=8nbsp;nbsp;nbsp;alternbsp;databasenbsp;mydbnbsp;onnbsp;mydb—log—dev=8nbsp;nbsp;nbsp;sp—logdevicenbsp;mydbnbsp;mydb—log—devnbsp;nbsp;nbsp;(以上工作也可以通过对microsoftnbsp;sqlnbsp;enterprisenbsp;manger提供的gui界面直接操作来完成。)nbsp;nbsp;nbsp;●定期执行dumpnbsp;database语句来完成截短nbsp;事务日志。其语法为:nbsp;nbsp;nbsp;语法:nbsp;nbsp;nbsp;·dumpnbsp;databasenbsp;dbnamenbsp;tonbsp;dump_devicenbsp;nbsp;nbsp;例:dumpnbsp;databasnbsp;emydbnbsp;tonbsp;mydump—dev(通过将nbsp;数据库mydb备份到备份设备mydump—dev上完成截短事务日nbsp;志。)nbsp;nbsp;nbsp;●trunc.logonchkpt.选项来完成截短事nbsp;务日志nbsp;nbsp;nbsp;缺省时,在新建的数据库上,trunc.logonchkpt.nbsp;选项设置成off(缺省值),事务日志永远不作备份,事务nbsp;日志不停地增长,可能会耗尽数据库的存储空间,将trunnbsp;c.logonchkpt.选项设置成on,每次checkpoint进程发nbsp;生时(通常每分钟一次)都截短事务日志(删除已提交的nbsp;事务),使得事务日志不会不停地增长以耗尽数据库的存nbsp;储空间。nbsp;nbsp;nbsp;配置选项和值nbsp;nbsp;nbsp;在使用sqlnbsp;server时,同样会经常出现系统提示usernbsp;connections(用户连接)已达到配置数,系统无法正常nbsp;运行的问题。sqlnbsp;server用户连接最大值是32767,而缺nbsp;省时的一般配置数为15个。如果使用中的用户连接已达到nbsp;配置数,而又来了一个用户连接请求,sqlserver将回送一nbsp;个错误消息。这时可以通过修改sqlnbsp;server的配置选项中nbsp;的usernbsp;connections项的最大值来解决这一问题。配置选nbsp;项的显示和管理可通过sp—configure系统过程来完成,nbsp;但不能使用sp—configure来设定一个比当前配置选项最大nbsp;值还大的配置选项。nbsp;nbsp;nbsp;语法:sp—configure〔config—name〔,confinbsp;g—value〕〕nbsp;nbsp;nbsp;其中config—name为配置选项的项名,config—valunbsp;e为设置值。nbsp;nbsp;nbsp;例:sp—configureuser_connections,30nbsp;nbsp;nbsp;同时用户可以使用sp—configure来显示配置选项,nbsp;通过重新设置一些配
文章TAG:
常见 数据 数据库 哪些 常见数据库有哪些问题