通过impdp做数据库迁移遇到的问题总结
初始的时候通过两个库之间直接转储数据,命令如下:在要导入的库的OS下执行:[oracle@qqdb auto_dmp]$ impdp tests/tests tables=ABC directory=dump_dir logfile=logfile.log network_link=crm_test table_exists_action=APPEND [@more@]Import: Release 10.2.0.1.0 - 64bit Production on Saturday, 30 October, 2010 2:28:40Copyright (c) 2003, 2005, Oracle. All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining optionsS
OCFS2的问题汇总(二)
移植OCFS数据文件到OCFS252、我能以OCFS2的形式mount OCFS卷吗?不能,OCFS和OCFS2在磁盘上是不兼容的,因为我们需要在今后的版本中增加新的特性。[@more@]53、OCFS2和OCFS能同时挂载到同一台机器上吗?不能,OCFS只能工作在内核是2.4(Red Hat's AS2.1/EL3 and SuSE's SLES8).OCFS2工作的内核版本为2.6(RHEL4, SLES9 and SLES10). 54、我可以在内核版本为2.6的机器上访问OCFS卷吗?可以的,你可以通过FSCat 、fsls 或者fscp工具来访问OCFS卷,这些工具可以,以上工具可以在设备级浏览、复制文件到其他的文件系统,FSCat工具可以在oss.orac
记mysql定时任务
今天使用到了mysql的定时任务功能,做下记录,感觉mysql要比oracle实现起来灵活。mysql 5.1:Create event crm_trunc_eventOn scheduleEvery 24 hourStarts now()DoBeginCall crm_statistic();End//[@more@]
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,
今天创建MYSQL的存储过程的时候遇到了:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) [@more@]查找相关资料:应该是我们开启了bin-log, 我们就必须指定我们的函数是否是 1 DETERMINISTIC 不确定的 2 NO SQL 没有SQl语句,当然也不会修改数据 3 READS SQL DATA 只是读取数据,当然也不会修改数据 4 MODIFIES SQL DATA 要修改数据 5 CONTAINS SQL 包含了
mysql生成随机数
DROP FUNCTION IF EXISTS rand_string; delimiter // CREATE FUNCTION rand_string(l_num tinyint UNSIGNED,l_type tinyint UNSIGNED) RETURNS varchar(127) BEGIN -- Function : rand_string -- Author : dbachina#dbachina.com -- Date : 2010/5/30 -- l_num : The length of random string -- l_type: The string type -- 1.0-9 -- 2.a-z -- 3.A-Z -- 4.a-zA-Z -- 5.0-9a-zA-Z -- <for example> : -- mysql> select rand_string(12,5) random_st
找出Mysql查询速度慢的SQL语句
启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql:[@more@]启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql: /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock --log-slow-queries=/var/log/mysql/slow.logexplain来了解SQL执行的状态。 explain select * from wp_postsG; 使用show status like "Handler_read%"; 来了解索引的效果
OCFS2的问题汇总
通用的1、如何使用OCFS2a)下载安装OCFS2模块和rpm包b)创建cluster.conf并复制到其他节点c)配置并启动o2cb服务d)format卷e)mount卷[@more@]2、如何知道当前运行的OCFS2的版本# cat /proc/fs/ocfs2/versionOCFS2 1.2.8 Tue Feb 12 20:22:48 EST 2008 (build 9c7ae8bb50ef6d8791df2912775adcc5)3、如何配置我的系统在遇到kernel-panic的时候自动重启配置系统遇到kernel panic后60秒重启# echo 60 > /proc/sys/kernel/panic保证以上的配置在系统启动后能继续应用,在/etc/sysctl.conf文件内加入:kernel.panic = 60下载和安装部分4、从哪里
linux环境确定OCFS2文件系统的BLOCK和cluster size
应用环境:Linux OS - Version: 1.2 to 1.6Linux x86Linux x86-64[@more@]解决方案:许多已经存在的工具可以完成需要的工作:debugfs.ocfs2 ocfs2console fsck.ocfs2以下示例都是在Enterprise Linux 5 system1、debugfs.ocfs2debugfs.ocfs2(8) command ,这个工具是在ocfs2-tool包内提供的基于EL4/EL5,可以用此工具来确定OCFS2的文件系统# uname -aLinux piston 2.6.18-194.3.1.0.1.el5 #1 SMP Thu May 6 19:58:50 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux# cat /etc/[e,r]*-releaseEnterprise Linux Enterprise Linux Server release 5
向集群环境中增加一个OCFS2节点
可以应用的环境:Linux OS - Version: 1.2.5-1 to 1.2.9-1Linux x86Linux x86-64Linux Kernel - Version: 1.2.5-1 to 1.2.9-1 [@more@]目的:本文的目的是讲述一个向一个现有的cluster环境中增加一个ocfs节点并且不用停止现有的环境。解决方案:o2cb_ctl工具是用来在线增加ocfs2节点的工具,以下的步骤列出了如何增加的操作:* 192.168.100.1 is an existing ocfs2 node which is already in the online ocfs2 cluster and its hostname is rac1 * 192.168.100.2 is an existing ocfs2 node which is already in the online ocfs2 cluster
装10gRAC遇到的libpthread.so.0: cannot open shared object file问题
环境:ORACLE 10G 10.2.0.1 64BITREDHAT 5.4 64BITOS:HP 580RAM:16GSTRO:DELL MD3000 1TKERNEL:2.6.18.164 EL15昨天安装生产环境的10gRAC数据库,在最后配置VIP的时候居然报一下错误:./vipcalibpthread.so.0: cannot open shared object file检查发现这个库文件分明在/usr/lib下面已经存在的,再去看环境变量也是包含这个目录的,很是诡异,一度怀疑是BUG导致的,因为是VIP后面也可以继续配置,所以继续下面的工作,继续降数据库升级到10.2.0.4重新配置VIP成功!最后测试一切正常使用![@more@]
记录:导出文件为十六进制
dd if=/u01/oradata/qqdb/users01.dbf bs=8192 skip=63 count=3|od -xv > 4_64.out[@more@]
修改linux主机名的步骤
1、#hostname oratest 2、/etc/sysconfig/network3、/etc/hosts[@more@]
dbms_datapump的一点研究(一)
命令行下传输两个数据库的数据:impdp dump_user/dump_user directory=dump_dir logfile=log.log schemas=tests network_link=dump_link sqlfile=dump_dir:expfull.sql table_exists_action=REPLACE[@more@]loc directory 目录loc logfile 本地生成的日志schemas 要转入的用户,必须和network_link内的用户名一致network_link 将要转入的远端数据库的db linksqlfile 若是没有该文件则生成,若有则使用table_exists_action 如果要导入的对象已经存在的替换PL/SQL API调用:简单的:declarehand number; vmessage varchar2(2000); begin han
节后第一天居然遇到BUG-ORA-07445
OS:RH5.0-64bitORACLE:10.2.1问题再现的操作步骤:[@more@]1、将某一列设置为unused的:alter table scott.aaa set unused column a;2、将隐藏的列删除:alter table scott.aaa drop SYS_C00001_10093022:03:33$;3、新增刚刚隐藏并且删除的列:alter table scott.aaa add a number;4、访问表(此时表里必须有数据)SELECT * from scott.aaa;此时这个会话将会hang住,CPU爆满!等待N久后自动报出异常:ERROR at line 1:ORA-03113: end-of-file on communication channel会话自动退出!查看wait event为idle的,设置10046事件后:select * f
块chain后的研究
大家都知道当一条记录在一个块中不能放下的时候,此时记录就会发生chain,记录就会分成至少2部分分别存在不同的块内,在发生chain的时候block overhead的状态为会做相应的变化:[@more@]如果没有发生block chain时,状态为:Block header dump: 0x0100004cObject id on Block? Yseg/obj: 0xc8ca csc: 0x00.ca325 itc: 2 flg: E typ: 1 - DATAbrn: 0 bdba: 0x1000049 ver: 0x01 opc: 0inc: 0 exflg: 0Itl Xid Uba Flag Lck Scn/Fsc0x01 0x0004.02b.0000016c 0x00800040.00cc.03 C--- 0 scn 0x0000.000ca3030x02 0x0004.001.0000016d 0x0080
记一次ora-04091错误
今天项目组报一个触发器ora-04091错误:before insert or delete or update on aaafor each rowdeclaremaxsss number;begin pro_test(:new.a);end; create or replace procedure pro_test(a number) ismm number;begin dbms_output.put_line(a); select count(*) into mm from aaa;end;update aaa set aaa.a=1;ERROR at line 1:ORA-04091: table SCOTT.AAA is mutating, trigger/function may not see itORA-06512: at "SCOTT.PRO_TEST", line 5ORA-06512: at "SCOTT.TRI_AAA", line 4ORA-04088: error
oracle查看回滚的事务
通过查询:x$ktuxe 【[K]ernel layer [t]ransaction layer [u]ndo transaction [e]ntry】select distinct ktuxesiz from x$ktuxe where KTUXESTA='ACTIVE'; 查看恢复进度:select * from x$ktuxe where ktuxecfl = 'DEAD' and ktuxesta = 'ACTIVE';恢复进度declare l_start number; l_end number; begin select ktuxesiz into l_start from x$ktuxe where KTUXEUSN=12 and KTUXESLT=40; dbms_lock.sleep(60); select ktuxesiz into l_end from x$ktuxe where KTUXEUSN=12 and KTUXESLT=40; dbms_output.put_line('time est
oracle events
----------------block------------------------Event 10231:skip corrupted block during a full table scanEvent 10233:skip corrupted data or index blocks on index range scansEvent 10232:dump corrupted blocks in a trace fileEvent 10210:force logical block checking whenever a table data block is modified ,an integrity check id done;bad blocks are maked as soft corruptEvent 10211:as event 10210 for index blocksEvent 10212:as event 10210 for cluster blocksdb_block_checking set to true ,can replace 10210
转 Linux 備份策略
備份是個很重要的工作,很多人總是在系統損毀的時候才在哀嚎說:『我的資料啊!天那...!』此時才會發現備份資料的可愛! 但是備份其實也非常可怕!因為你的重要資料都在備份檔裡面,如果這個備份被竊取或遺失,其實對你的系統資安影響也非常大! 同時,備份使用的媒體選擇也非常多樣,但是各種儲存媒體各有其功能與優劣,所以當然得要選擇囉!閒話少說,來談談備份吧![@more@]備份資料的考量老實說,備份是系統損毀時等待救援的救星!因為你需要重新安裝系統時, 備份的好壞會影響到你系統復原的進度!不過,我們想先知道的是,系統為什
转 SQL查询连续号码段的巧妙解法
在ITPUB上有一则非常巧妙的SQL技巧,学习一下,记录在这里。[@more@]最初的问题是这样的:我有一个表结构,fphm,kshm2014,000000012014,000000022014,000000032014,000000042014,000000052014,000000072014,000000082014,000000092013,000001202013,000001212013,000001222013,000001242013,00000125 (第二个字段内可能是连续的数据,可能存在断点。)怎样能查询出来这样的结果,查询出连续的记录来。就像下面的这样?2014,00000001,000000052014,00000009,000000072013,00000120,000001222013,00000124,00000125ITPUB上的朋友给出了一个非常