本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
设你正在运行使用InnoDB表格的MySQL,糟糕的硬件设备,驱动程序错误,内核错误,不幸的电源故障或某些罕见的MySQL错误使你的InnoDB表空间被损坏了。在这种情况下,InnoDB的一般会出现这样的输出:InnoDB: Database page corruption on disk ora failedInnoDB: file read of page 7.InnoDB: You may have to recover from a backup.080703 23:46:16 InnoDB: Page dump in ascii and hex (16384bytes):... 这里省略很多二进制和十六进制编码...080703 23:46:16 InnoDB: Page checksum 587461377,prior-to-4.0.14-form checksum 772331632InnoDB: stored checksum 2287785129, prior-to-4.0.14-form storedchecksum 772331632InnoDB: Page lsn 24 1487506025, low 4 bytes of lsn at page end1487506025InnoDB: Page number (if stored to page already) 7,InnoDB: Database page corruption on disk or a failedmysqldump导出库时报错如下:"mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `; at row:6880"或是操作对应表时,也会报错。这时数据库会重启。当时想到的是在修复之前保证数据库正常,不是这么异常的无休止的重...
设你正在运行使用InnoDB表格的MySQL,糟糕的硬件设备,驱动程序错误,内核错误,不幸的电源故障或某些罕见的MySQL错误使你的InnoDB表空间被损坏了。在这种情况下,InnoDB的一般会出现这样的输出:InnoDB: Database page corruption on disk ora failedInnoDB: file read of page 7.InnoDB: You may have to recover from a backup.080703 23:46:16 InnoDB: Page dump in ascii and hex (16384bytes):... 这里省略很多二进制和十六进制编码...080703 23:46:16 InnoDB: Page checksum 587461377,prior-to-4.0.14-form checksum 772331632InnoDB: stored checksum 2287785129, prior-to-4.0.14-form storedchecksum 772331632InnoDB: Page lsn 24 1487506025, low 4 bytes of lsn at page end1487506025InnoDB: Page number (if stored to page already) 7,InnoDB: Database page corruption on disk or a failedmysqldump导出库时报错如下:"mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `; at row:6880"或是操作对应表时,也会报错。这时数据库会重启。当时想到的是在修复之前保证数据库正常,不是这么异常的无休止的重...
 
0

触发器相关概念及语法

发表者:admin分类:数据库2017-12-05 14:09:51 阅读[3168]
触发器相关概念及语法触发器概述什么是触发器  触发器是一种特殊的存储过程,和存储过程和存储函数一样是一个pl/sql程序块,触发器是不能接受参数,不能显示调用,只是随着事件触发隐式运行的存储过程程序块。触发器的应用场景复杂的安全性检查数据确认实现审计功能完成数据的备份和同步触发器概念和第一个触发器概念  数据库触发器是一个与表相关联的,存储的PL/SQL程序,每当一个特定的数据库操作语句(insert ,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义得语句序列。第一个触发器-- 第一个触发器:每当成功插入新员工后,自动打印“成功插入新员工” -- 触发器单词:trigger create trigger saynewem -- 创建触发器名称 after insert -- 在插入操作以后 on emp -- 针对emp的表 declare -- 操作体 begin dbms_output.put_line('成功插入新员工'); -- 触发器操作的内容 end; 触发器的应用场景复杂的安全性的场景(涉及到权限的问题);数据的确认(涉及数据是否合理问题);数据的审计(涉及到数据的增、删、改的操作记录);数据的备份和同步(备份和同步重要);触发器的语法create[or replace] trigger 触发器名 {before|after} {dele...
经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据。系统环境:操作系统:CentOS 6.5 X64  (虚拟机);WEB服务:PHP+Mysql+apache;网站:为方便,直接在本地用蝉知系统搭建一个DEMO站点;操作步骤:1.开启binlog功能及基本操作;2.往站点添加数据;3.刷新binlog日志;4.删除数据;5.binlog日志内容解析;6.恢复指定数据;1.开启binlog功能及基本操作要使用Mysql的binlog日志功能,首先要在Mysql的配置文件中开启该功能,操作很简单。找到Mysql的配置文件,在文件中添加一行”log_bin = mysql-bin”即可。其实在我安装的各种Mysql环境中,该功能通常都是默认开启的。开启binlog功能后,在mysql的数据库目录下就会有诸如mysql-bin.000001、mysql-bin.000002等文件,这就是mysql的二进制日志文件。每当mysql启动或手动刷新日志后都会新建一个二进制日志文件。首先我们mysql命令行中,用”show master logs”命令查看已有的binlog文件。2.往站点添加数据在网站后台文章模块里,我添加了几条测试数据。3.刷新b...
oracle中ora-0100 maximum opencursors exceeded差错打开游标过大的解决使用oraclesqlhandler程序操作数据库时,提示ora-0100 maximum opencursors exceeded,断开对应的操作窗口会话,然后再重新执行命令或sql语句,程序正常了。java造访oracle数据库,,在for循环代码中,如果漠视关闭createstatment或preparedstatement建立的连接,将出现:ORA-0100  maximum opencursors exceeded  。   oracle中每次应用用createstatment或preparedstatement语句,都将打开一个游标,所以单纯增加oracle中打开游标数目不是解决问题的办法。问题解决:1:首先定位是那些语句打开的游标过大。履行以下语句:select * from v$open_cursor   where user_name = 'tech'2:从上面的查找结果的sql_text字段中,找到sql语句,再去java代码中定位履行这些语句的代码,添加PreparedStatement或Statement类的close法子
 
0

ORACLE 中dbms_stats的使用

发表者:admin分类:数据库2017-11-10 16:58:41 阅读[3449]
ORACLE 中dbms_stats的使用dbms_stats能良好地估计统计数据(尤其是针对较大的分区表),并能获得更好的统计结果,最终制定出速度更快的SQL执行计划。exec dbms_stats.gather_schema_stats(ownname          => 'SCOTT',options          => 'GATHER AUTO',estimate_percent => dbms_stats.auto_sample_size,method_opt       => 'for all columns size repeat',degree           => 15)       为了充分认识dbms_stats的好处,需要仔细体会每一条主要的预编译指令(directive)。下面让我们研究每一条指令,并体会如何用它为基于代价的SQL优化器收集最高质量的统计数据。options参数使用4个预设的方法之一,这个选项能控制Oracle统计的刷新方式:gather——重新分析整个架构(Schema)。 gather empty——只分析目前还没有统计的表。 gather stale——只重新...
利用MySQL读写分离,提升应用数据吞吐性能 背景一般情况下,对数据库的读和写都在同一个数据库服务器中操作时,业务系统性能会降低。为了提升业务系统性能,优化用户体验,可以通过读写分离来减轻主数据库的负载。本篇文章分别从应用层和系统层来介绍读写分离的实现方法。应用层实现方法:应用层中直接使用代码实现,在进入Service之前,使用AOP来做出判断,是使用写库还是读库,判断依据可以根据方法名判断,比如说以query、find、get等开头的就走读库,其他的走写库。优点:1、多数据源切换方便,由程序自动完成。2、不需要引入中间件。3、理论上支持任何数据库。缺点:1、由程序员完成,运维参与不到。2、不能做到动态增加数据源。系统层实现方法:方式一:使用DRDS实现https://help.aliyun.com/document_detail/29681.html方式二:使用中间件MySQL-proxy实现本教程使用MySQL-proxy实现读写分离。MySQL-proxy介绍:MySQL Proxy是一个处于Client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。MySQL-proxy原理:MySQL Proxy是一个中间层代理,简...
代码编写规则 一、PLSQL 块的语法规则:     1、语句可以跨跃几行。     2、词汇单元可以包括:分隔符、标识符、文字、和注释内容。     3、分隔符:      +-*/=<>||....     4、标识符:      最多30个字符,不能有保留字除非用双引号引起。      字母开头,不与列同名。     5、文字串:如 V_ENAME:='FANCY';要用单引号括起来。        数值型可以用简单记数和科学记数法。     6、注释内容:        单行时用   --            多行用   /*   */        与C很相似 建议 定义变量:v_变量名 定义常量:c_常量名 定义游标:_cursor 定义异常:e_ 定义pl/sql表类型:_table_type 定义pl/sql表变量:_table 定义pl/sql记录类型:_record_type 定义pl/sql记录...
定义:CREATE [OR REPLACE] FUNCTION <过程名>[(参数列表)] RETURN 数据类型 IS         [局部变量声明]         BEGIN            可执行语句          EXCEPTION            异常处理语句          END [<过程名>];变量的类型:in 为默认类型,表示输入; out 表示只输出;in out 表示即输入又输出;使用:   示例1:创建函数:create or replace function f_1(n number) return number is    r emp%rowtype;BEGIN     dbms_output.put_line('姓名 薪水');     select * into r from emp where empno=n;     dbms_output.put_line(r.ename||' '||r.sal);    --输出结果,需要 set serverout on 才能显示.    ...
oracle 使用pl/sql通过雇员所在部门号查出对应部门名称。参考示例语句如下:declarev_no emp.deptno%TYPE;v_dname dept.dname%TYPE;begin  begin  select e.deptno into v_no from emp e where lower(e.ename)=lower('&dna');  end;select d.dname into v_dname from dept d where d.deptno=v_no;dbms_output.put_line('雇员姓名是:'||lower('&dna')||'的部门名是:'||v_dname);end;/
    总共51页,当前第15页 | 页数:
  1. 5
  2. 6
  3. 7
  4. 8
  5. 9
  6. 10
  7. 11
  8. 12
  9. 13
  10. 14
  11. 15
  12. 16
  13. 17
  14. 18
  15. 19
  16. 20
  17. 21
  18. 22
  19. 23
  20. 24
  21. 25