??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成亚洲精品,亚洲精品网站在线观看你懂的,亚洲第一成年男人的天堂http://m.tkk7.com/toby/category/38408.htmlzh-cnThu, 28 Feb 2013 15:43:28 GMTThu, 28 Feb 2013 15:43:28 GMT60解锁oracle锁住?/title><link>http://m.tkk7.com/toby/archive/2013/02/28/395872.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Thu, 28 Feb 2013 10:37:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2013/02/28/395872.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/395872.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2013/02/28/395872.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/395872.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/395872.html</trackback:ping><description><![CDATA[<div>一、select a.owner,<br />       a.object_name,<br />       a.subobject_name,<br />       a.object_type,<br />       l.session_id,<br />       l.oracle_username,<br />       l.os_user_name,<br />       se.SID,<br />       se.SERIAL#<br />  from  all_objects a, v$locked_object l,V$session se<br />where a.object_id = l.object_id<br />       and se.OSUSER = l.os_user_name<br />       and l.oracle_username = 'RD_USERPROFILE';</div><br /><br /><div>二、alter system kill session 'sid,serial#';--sid?qing)serial#为第一步查出来的数据?/div><img src ="http://m.tkk7.com/toby/aggbug/395872.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2013-02-28 18:37 <a href="http://m.tkk7.com/toby/archive/2013/02/28/395872.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取oracle锁信息的工具http://m.tkk7.com/toby/archive/2012/08/28/386410.htmltobyxiongtobyxiongTue, 28 Aug 2012 02:34:00 GMThttp://m.tkk7.com/toby/archive/2012/08/28/386410.htmlhttp://m.tkk7.com/toby/comments/386410.htmlhttp://m.tkk7.com/toby/archive/2012/08/28/386410.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/386410.htmlhttp://m.tkk7.com/toby/services/trackbacks/386410.html使用Ҏ(gu)Q?/span>
1. 在数据库服务器上使用sys帐户登陆Q?nbsp; sqlplus / as sysdba
2. 按以下顺序操作:(x)
SQL> @get_lock.plb
SQL> set serveroutput on
SQL> set linesize 132
SQL> exec get_locks;    

以下代g存為一個plb文gQ如get_lock.plb 
create or replace procedure get_locks wrapped 
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
b38 37c
kuShPpEAa9bu4Ofv/cJP6O42BWgwg9dcTCDrfI5Dvp0GIlnA1QE8g/AHDcUJJTBsVvDWkHwI
jr3D8CeUWl/GczDiJNN2t9DLUKJ33/AQwBC7rf60vo/9b5ysr3P5gDLkMzru89Ot+91y6I7x
mVqISk0XpvoJYT5wJ7tjkWaZv3RINpqvB4L6GlkwOb8giDmJoXT25z4ZFy9jz8fZog5qtAyu
NeMkO+57e0JXdtC4P7I2QUFxqSiJrUAtPl3lHD6oxKFdIV8LN0Ja7AqqgnEo7odXlqoxQWFD
UCs1e1nVIOEHgM4aFnrP7Vslk+s+X+nRC9iUYK7tFJOq+lxMGLbUvOIY1nxNtem2wc3I/IMI
c0KkekfgdBu0+PH64RndAtrzJRRBHj2lua5WitvgPUj8vEG5ZFM41QTVmsGzsYRDK16R53x6
OqRDbde7ZXLmeiMHoeoi/1/lYB6rliKLzVIT1qu/XBiMS2VkhaMW6ujJzQ9cMOTaUvOEGKSz
ZqJ+E5Fg8PRFpuqD+hic6Ydvjp1c7JF+8jydD5Wc7S20+dpFOx1LGwNcD2c34Fn0VfRapk6x
+4MCR1B/MA/RnIN6yCcEwGTKH5AvtqEg++ejdDfnoRqHZfphzqmolluzPDM5ktC2irDobR6c
NF8neBFZ+6HoSm6JTnH+CZ2JrDywl8perPzvycjFAsy5/evC7ZXQ+pNJhdTTeqidTZBPi21r
xo6u1cZZc59mcrcPky5ckrAigjt4D3qdAqTUgUqxAX9J8gMo8DGvMW/zIynmmPcnhgk1ZPj3
b8CBnf3Y6wGwWFn+VchKEHMeYWStRUD1olnHdfAwrwCaQPV+yJLb/SXMaR2+/MecI7RlFDlz
Vuq36iT7NZFfNQ==

/


tobyxiong 2012-08-28 10:34 发表评论
]]>
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in ...http://m.tkk7.com/toby/archive/2012/02/21/370386.htmltobyxiongtobyxiongTue, 21 Feb 2012 02:07:00 GMThttp://m.tkk7.com/toby/archive/2012/02/21/370386.htmlhttp://m.tkk7.com/toby/comments/370386.htmlhttp://m.tkk7.com/toby/archive/2012/02/21/370386.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/370386.htmlhttp://m.tkk7.com/toby/services/trackbacks/370386.html创徏function?/p>

出错信息Q?/p>

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)

 

原因Q?/p>

q是我们开启了bin-log, 我们必L定我们的函数是否?br /> 1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句Q当然也不会(x)修改数据
3 READS SQL DATA 只是d数据Q当然也不会(x)修改数据
4 MODIFIES SQL DATA 要修Ҏ(gu)?br /> 5 CONTAINS SQL 包含了SQL语句

其中在function里面Q只?DETERMINISTIC, NO SQL ?READS SQL DATA 被支持。如果我们开启了 bin-log, 我们必Mؓ(f)我们的function指定一个参数?br />


在MySQL中创建函数时出现q种错误的解x法:(x)
set global log_bin_trust_function_creators=TRUE;

@import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

tobyxiong 2012-02-21 10:07 发表评论
]]>
Mysql重装start servicep|的解?/title><link>http://m.tkk7.com/toby/archive/2012/02/21/370385.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Tue, 21 Feb 2012 01:51:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2012/02/21/370385.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/370385.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2012/02/21/370385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/370385.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/370385.html</trackback:ping><description><![CDATA[<p>安装mysql.5.1版运行安装包,执行到最后一部时 start sevice,出现了程序无法响应。这主要是因Zơ安装的文g没有卸蝲q净Q有些残留文件还得手工清除?/p> <p>1、进入添加删除程序,扑ֈMySQL选择卸蝲Q选择remove?br /> 2、搜索c盘的mysql目录再删掉?<strong>q一步一定要?/strong>)<br /> 3、进入MySql安装目录,删除目录?br /> 4、进入注册表Qregedit。用F3循环搜烦mysqlq删除之</p> @import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://m.tkk7.com/toby/aggbug/370385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2012-02-21 09:51 <a href="http://m.tkk7.com/toby/archive/2012/02/21/370385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>centos5.5安装oracle10ghttp://m.tkk7.com/toby/archive/2011/08/19/356884.htmltobyxiongtobyxiongFri, 19 Aug 2011 09:24:00 GMThttp://m.tkk7.com/toby/archive/2011/08/19/356884.htmlhttp://m.tkk7.com/toby/comments/356884.htmlhttp://m.tkk7.com/toby/archive/2011/08/19/356884.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/356884.htmlhttp://m.tkk7.com/toby/services/trackbacks/356884.html安装完成后无法启动问?/div> 1.没有etc/oratab文g
解决办法Q? [oracle@xiongwei2 db_1]$ pwd /home/oracle/product/10.2.0/db_1
                [oracle@xiongwei2 db_1]$ sh root.sh

2.错误QORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
解决办法Qvi dbstart #ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle export ORACLE_HOME_LISTNER=$ORACLE_HOME

3.启动dbstart没有反应 解决办法Qvi etc/oratab GZBOSS:/home/oracle/product/10.2.0/db_1:Y NҎ(gu)Y

4.启动dbstart没有权限 Q将db_1目录Ҏ(gu) chmod -R 777 *

5.?var/tmp目录?/strong>.oracle权限Ҏ(gu)777

6.oracle自启动脚本。在etc/init.d目录下创建oracle文g
 1 #!/bin/sh
 2 
 3 #chkconfig: 2345 99 01
 4 
 5 #description: ORACLE 10g Server
 6 ORACLE_HOME=/home/oracle/product/10.2.0/db_1
 7 
 8 if [ ! -f $ORACLE_HOME/bin/dbstart ]
 9 
10 then
11 
12   echo "ORACLE cannot start"
13 
14   exit
15 
16 fi
17 
18 case "$1" in
19 
20 'start')
21 
22      echo "Starting Oracle Database"
23 
24      su - oracle -"$ORACLE_HOME/bin/dbstart"
25 
26      su - oracle -"$ORACLE_HOME/bin/emctl start dbconsole"
27 
28      ;;
29 
30 'stop')
31 
32      echo "Stoping Oracle Database"
33 
34      su - oracle -"$ORACLE_HOME/bin/emctl stop dbconsole"
35 
36      su - oracle -"$ORACLE_HOME/bin/dbshut"
37 
38      ;;
39 'reload'|'restart')
40      $0 stop
41      $0 start
42      ;;
43 
44 *)
45      echo "Usage: {start|stop|reload|restart}"
46      exit 1
47 esac
48 exit 0
8、查看字W集

select userenv('language') from dual

9.启动相关文g
su - oracle -c lsnrctl start

su - oracle -c sqlplus /nolog
connect / as sysdba
system
startup
/etc/init.d/oracle start

export DISPLAY=:0.0 
xhost +

10.环境变量讄  oracle用户ȝ录下?bash_profile文g
PATH=$PATH:$HOME/bin

export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=GZBOSS
export ORACLE_TERM=xterm
export TMP=/tmp
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export PATH

11.~辑文g/etc/sysctl.conf  配置相关内核参数
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144

12.ƺ骗oracle对系l的?  /etc/redhat-release
redhat-4

#CentOS release 5.5 (Final)


13.[oracle@localhost database]$ ./runInstaller 
You do not have sufficient permissions to access the inventory '/oracle/oraInventory'. Installation cannot continue. Make sure that you have read/write permissions to
the inventory directory and restart the installer.: No such file or directory

错误说没有权限。实际是之前安装未卸载干净
解决办法Qfind / -name "oraInst.loc"   。将相关文g删掉

14.[oracle@localhost database]$ ./runInstaller 
Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
                                      Passed


All installer requirements met.

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-09-19_02-21-32PM. Please wait ...[oracle@localhost database]$ Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
解决办法Q[root@localhost database]# who
root     pts/8        2011-09-19 11:57 (192.168.0.32)
root     pts/3        2011-09-19 14:11 (:2.0)
root     pts/4        2011-09-19 14:14 (:2.0)
[root@localhost database]# export DISPLAY=192.168.0.32
[root@localhost database]# xhost +
xhost:  unable to open display "192.168.0.32"
[root@localhost database]# who
root     pts/8        2011-09-19 11:57 (192.168.0.32)
root     pts/3        2011-09-19 14:11 (:2.0)
root     pts/4        2011-09-19 14:14 (:2.0)
[root@localhost database]# export DISPLAY=:2.0        
[root@localhost database]# xhost +
access control disabled, clients can connect from any host

15.查看server端字W集Qselect userenv('language') from dual;
16.dbca时报ora-12546;TNS:permission denied
解决办法。第一ơ徏库时的文件全部删除,q将oracle目录权限Ҏ(gu)777.重徏的数据库文g不能和第一ơ文件相?/span>


tobyxiong 2011-08-19 17:24 发表评论
]]>
mysql使用记录http://m.tkk7.com/toby/archive/2010/11/11/337782.htmltobyxiongtobyxiongThu, 11 Nov 2010 02:49:00 GMThttp://m.tkk7.com/toby/archive/2010/11/11/337782.htmlhttp://m.tkk7.com/toby/comments/337782.htmlhttp://m.tkk7.com/toby/archive/2010/11/11/337782.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/337782.htmlhttp://m.tkk7.com/toby/services/trackbacks/337782.html 一、日期处理函?br />DATE_FORMAT(date,format)  
Ҏ(gu)format字符串格式化date倹{下列修饰符可以被用在format字符串中Q?%M 月名?January……December)  
%W 星期名字(Sunday……Saturday)  
%D 有英语前~的月份的日期(1st, 2nd, 3rd, {等。)  
%Y q? 数字, 4 位 ?br />%y q? 数字, 2 位 ?br />%a ~写的星期名?Sun……Sat)  
%d 月䆾中的天数, 数字(00…?1)  
%e 月䆾中的天数, 数字(0…?1)  
%m ? 数字(01…?2)  
%c ? 数字(1…?2)  
%b ~写的月份名?Jan……Dec)  
%j 一q中的天?001…?66)  
%H 时(00…?3)  
%k 时(0…?3)  
%h 时(01…?2)  
%I 时(01…?2)  
%l 时(1…?2)  
%i 分钟, 数字(00…?9)  
%r 旉,12 时(hh:mm:ss [AP]M)  
%T 旉,24 时(hh:mm:ss)  
%S U?00…?9)  
%s U?00…?9)  
%p AM或PM  
%w 一个星期中的天?0=Sunday …?=Saturday Q ?br />%U 星期(0…?2), q里星期天是星期的第一天 ?br />%u 星期(0…?2), q里星期一是星期的W一天 ?br />%% 一个文字?”。 ?br />所有的其他字符不做解释被复制到l果中。 ?br />mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');  
-> 'Saturday October 1997'  
mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');  
-> '22:23:00'  
mysql> select DATE_FORMAT('1997-10-04 22:23:00',  
'%D %y %a %d %m %b %j');  
-> '4th 97 Sat 04 10 Oct 277'  
mysql> select DATE_FORMAT('1997-10-04 22:23:00',  
'%H %k %I %r %T %S %w');  
-> '22 22 10 10:23:00 PM 22:23:00 00 6'  
MySQL3.23中,在格式修饰符字符前需?。在MySQL更早的版本中Q?是可选的。 ?br />TIME_FORMAT(time,format)  
q象上面的DATE_FORMAT()函数一样用,但是format字符串只能包含处理小时、分钟和U的那些格式修饰W?
其他修饰W生一个NULL值或0。 ?br />CURDATE()  
   
CURRENT_DATE  
?YYYY-MM-DD'或YYYYMMDD格式q回今天日期|取决于函数是在一个字W串q是数字上下文被使用。 ?br />mysql> select CURDATE();  
-> '1997-12-15'  

二、时间比?br />sendtime > '2010-11-01 00:00:00'  and  sendtime < '2010-11-05 00:00:00'

三、字W截?br />select *  from sendrecord where substring(mobile,1,3) = '158'

四?strong>正则表达式匹配字串查?br />
select count(*) from sendrecord t1 where (SELECT mobile REGEXP '^1((3[4-9])|(5[012789])|(8[78]))([0-9]{8})$') = 1
正则表达式正ؓ(f)1.匚wp|?

五?strong>mysql中的也有case when语法
select a.carrier,count(a.carrier) from (
select mobile,case
when (SELECT mobile REGEXP '^1((3[4-9])|(5[012789])|(8[78]))([0-9]{8})$') = 1 then 'Mobile'
when (SELECT mobile REGEXP '^1((3[0-2])|(5[56])|(8[56]))([0-9]{8})$') = 1 then 'Unicom'
when (SELECT mobile REGEXP '^(1((3[3])|(5[3])|(8[09]))([0-9]{8}))|(0[0-9]{9,11})$') = 1 then 'Telecom'
else 'oher' end as carrier
from sendrecord201009 ) as a group by a.carrier

六?strong>linix下安装mysql文g下蝲地址
http://dev.mysql.com/downloads/mirror.php?id=397238

七?strong>linix下启动mysql出现ended。说明启动未能成功,解决办法如下
vi /etc/my.conf
看看[mysqld]下有没有
port  = 3306
d上就可以?br />touch /tmp/mysql.sock
killall -9 mysqld
/usr/local/mysql/bin/mysqld_safe -user=mysql &
成功启动

八?strong>查找mysql目录所?br />whereis mysql

?ji)?strong>在linix下运行不了mysql是因为环境变量未讄造成的,解决办法如下Q?br />?etc/profile中添加:(x)
export PATH=$PATH:/usr/local/MySQL/binO(jin)K
其他的变量都cM?关键是明白各个配|文件在pȝ中的原理
讄完成后,别忘了source一下。环境变量生效

最后设|变量到用户下面?bash_profile来作修改Q修改完后source下环境变量生效

十?strong>用shell脚本执行q接mysql?br />mysql -u root -p yyy  q样写的话,?x)老是叫你输入密码?br />其实在运行此命o(h)时可以这样写
mysql -uroot -pyyy q样机器也是可以识别?br />
十一.以下提供一Dshell脚本q接mysql
#!/bin/bash
beginTime="`date -d \"-1 month\" \"+%Y-%m\"`"'-01 00:00:00'
echo 'beginTime:     '$beginTime

endTime=`date '+%Y-%m'`'-01 00:00:00'
echo 'endTime:  '$endTime

sufTable="`date -d \"-1 month\" \"+%Y%m\"`"
echo 'sufTable:   '$sufTable

mysql -uxuanwu -p123456 <<EOF  
use xuanwu;

create table sendrecord$sufTable as select * from sendrecord where sendtime > "\"$beginTime\"" and sendtime < "\"$endTime\"";
#echo "create table sendrecord$sufTable as select * from sendrecord where sendtime > \"$beginTime\" and sendtime < \"$endTime\"";

#echo 'delete from sendrecord where sendtime > $beginTime and sendtime < $endTime;'

commit;

十二?strong>shell脚本调用mysql脚本
#!/bin/bash
mysql -uxuanwu -p123456 <<EOF
use xuanwu;
source ./create.sql

十三?strong>mysql脚本执行多个sql语句
#转移数据
SET @TableName=CONCAT('sendrecord',DATE_FORMAT(DATE_SUB(CURDATE() ,INTERVAL 1 month),'%Y%m'));
SET @BeginTime=DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE())-1 day),INTERVAL 1 month);
SET @EndTime=DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE())-1 day);
SET @CreateSqlStr=CONCAT("CREATE TABLE `",@TableName,"` AS SELECT * FROM sendrecord WHERE sendtime > '",cast(@BeginTime as char)," 00:00:00' and sendtime < '",cast(@EndTime as char)," 00:00:00'");
SELECT @CreateSqlStr;
PREPARE CR FROM @CreateSqlStr;
EXECUTE CR;

#删除数据
SET @DeleteSqlStr=CONCAT("DELETE FROM sendrecord WHERE sendtime > '",cast(@BeginTime as char)," 00:00:00' and sendtime < '",cast(@EndTime as char)," 00:00:00'");
SELECT @DeleteSqlStr;
PREPARE DE FROM @DeleteSqlStr;
EXECUTE DE;

#提交数据
SET @CommitSqlStr=CONCAT("COMMIT");
SELECT @CommitSqlStr;
PREPARE CO FROM @CommitSqlStr;
EXECUTE CO;

十四?strong>mysql安装步骤记录

# tar -zvxf mysql-max-5.1.30-linux-i686-glibc23.tar.gz
# mv -r mysql-max-5.1.30-linux-i686-glibc23 /usr/local/mysql
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

dmysql用户?qing)用L(fng)
# groupadd mysql
# useradd -g mysql mysql
修改mysql目录权限
# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data

以下如果mysql不在本机可以不操作?br />生成mysqlpȝ数据?br /># ./scripts/mysql_install_db --user=mysql&
启动mysql服务
# /usr/local/mysql/bin/mysqld_safe --user=mysql&
如出?Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常启动mysql服务? 按Ctrl + C 跛_
修改 mysql ?root 密码
# /usr/local/mysql/bin/mysqladmin -u root password 123456


十五?strong>ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
解决Ҏ(gu)Q?
1?改表法。可能是你的帐号不允总q程登陆Q只能在localhost。这个时候只要在localhost的那台电(sh)脑,dmysql后,更改 "mysql" 数据库里?"user" 表里?"host" ,?localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;

2. 授权法。例如,你想myuser使用mypassword从Q何主接到mysql服务器的话?

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip?92.168.1.3的主接到mysql服务器,q用mypassword作ؓ(f)密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

本h觉得授权法比较好?

十六?strong>ERROR 1045 (28000): Access denied for user (using password: YES)
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysqld restart
# mysql -uroot -p
Enter password:

mysql>

十七?strong>mysql从本机登?不用用户名密码可以直接登?如何止?

解决办法Q我刚才查看了一下配|文Ӟ发现/etc/my.cnf里面的配|?br /># The following options will be passed to all MySQL clients
[client]
#password        = your_password
port            = 3306
socket          = /tmp/mysql.sock

我把password前面的那个注释去掉,重启QOKQ成功。。。?br />
十八.yum 安装 mysql

1、[root@sample ~]# yum -y install mysql-server  ?安装MySQL
.....?br /> Installed: mysql-server.i386 0:4.1.20-1.RHEL4.1
Dependency Installed: mysql.i386 0:4.1.20-1.RHEL4.1 perl-DBD-MySQL.i386 0:2.9004-3.1 perl-DBI.i386 0:1.40-8
Complete!

2、配|?br /> [root@sample ~]# vi /etc/my.cnf  ?~辑MySQL的配|文?/p>

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1  ?扑ֈq一行,在这一行的下面d新的规则Q让MySQL的默认编码ؓ(f)UTF-8
default-character-set = gbk  ?dq一?br /> 然后在配|文件的文尾填加如下语句Q?/p>

[mysql]
default-character-set = gbk

3、启动MySQL服务

[root@sample ~]# chkconfig mysqld on  ?讄MySQL服务随系l启动自启动

[root@sample ~]# chkconfig --list mysqld  ?认MySQL自启?br /> mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ?如果2--5为on的状态就O(jin)K

[root@sample ~]# /etc/rc.d/init.d/mysqld start  ?启动MySQL服务

启动mysql                                              [定]

备注Q如果这一部执行失败有可能?var/lib/mysql 没有数据库文Ӟ?x)报?Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist】,q是需要执行mysql_install_db命o(h)O(jin)K了?/p>

4、MySQL的root用户讄密码
MySQL在刚刚被安装的时候,它的root用户是没有被讄密码的。首先来讄MySQL的root密码?/p>

[root@sample ~]# mysql -u root  ?用root用户dMySQL服务?br /> mysql> select user,host,password from mysql.user;  ?查看用户信息
mysql>set password for root@localhost=password('在这里填入root密码');  ? 讄root密码
mysql>set password for root@域名=password('在这里填入root密码');
mysql> delete from mysql.user where user='';  ?删除匿名用户
mysql> exit  ?退出MySQL服务器【测试设|的密码是否正确?/p>



tobyxiong 2010-11-11 10:49 发表评论
]]>
oracle启动步聚记录与问题解?/title><link>http://m.tkk7.com/toby/archive/2010/10/15/335245.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Fri, 15 Oct 2010 08:39:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2010/10/15/335245.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/335245.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2010/10/15/335245.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/335245.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/335245.html</trackback:ping><description><![CDATA[ <p>oracle数据库是重量U的Q其理非常复杂Q将其在linuxq_上的启动和关闭步骤整理一下?<br /><br />安装完毕oracle以后Q需要创建oraclepȝ用户Qƈ?home/oracle下面?bash_profiled几个环境变量QORACLE_SID,ORACLE_BASE,ORACLE_HOME。比如:(x) <br /><br />export ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx <br /><br />启动步骤Q注?代表shell命o(h)提示W,q里的oracle?.0以上版本?<br /><br />注意Q如果su到oracle用户后,无法执行q些命o(h)Q可以切换到root用户。在命o(h)前加上su - oracle -c。另外如果运行lsnrctl start报出 <br />The listener supports no services<br />The command completed successfully<br />q个情况是正常的Q开始以为是错误的,弄了好久旉?br />监听分动态监听和静态监听两U。动态监听的话listener文g和ora文g是不需要有?br /><br />$ su - oracle <br />$ sqlplus /nolog <br />sql> conn / as sysdba <br />sql> startup (一般不需要加参数Q只要设|好环境变量Q?<br />sql> quit (退出sql模式) <br />$ lsnrctl start (启动监听器)关闭oracle <br />$ lsnrctl stop(关闭监听器,在这之前Q应该先关闭应用E序Q?<br />$ sqlplus /nolog <br />sql>shutdown 其参?Qshutdown有四个参敎ͼ四个参数的含义如下:(x) <br />Normal 需要等待所有的用户断开q接 <br />Immediate {待用户完成当前的语?<br />Transactional {待用户完成当前的事?<br />Abort 不做M{待Q直接关闭数据库 <br />normal需要在所有连接用h开后才执行关闭数据库Q务,所以有的时候看h好象命o(h)没有q行一P在执行这个命令后不允许新的连?<br />immediate在用h行完正在执行的语句后断开用户q接Qƈ不允许新用户q接?<br />transactional 在拥护执行完当前事物后断开q接Qƈ不允许新的用戯接数据库?<br />abort 执行断开q接q直接关闭数据库?<br />前三U方式不回丢qh据。第四种在不的已的情况下Q不采用Q?<br />l常遇到的问题:(x) <br /><br />1Q权限问题,解决Ҏ(gu)Q切换到oracle用户Q?<br /><br />2Q没有关闭监听器 Q解x法:(x)关闭监听?<br /><br />3Q有oracle实例没有关闭Q解军_法:(x)关闭oracle实例 <br /><br />4Q环境变量设|不全,解决办法Q修改环境变?<br /><br /><br />Oracle数据库的启动和关闭方式小l?<br /><br />Oracle数据库的启动和关闭方?<br /><br />一、几U启动方式:(x) <br /><br />1、startup nomount <br />非安装启动,q种方式启动下可执行Q重建控制文件、重建数据库 <br />启动instanceQ即启动SGA和后台进E,q种启动只需要init.ora文g?<br />2、startup mount dbname <br />安装启动Q这U方式启动下可执行:(x)数据库日志归档、数据库恢复、重新命名一些数据库文g <br />如:(x)pȝ表空间或日志文g?<br />执行“nomount”,然后打开控制文g <br />3、startup open dbname <br />先执行“nomount”,然后执行“mount”,再打开包括Redo log文g在内的所有数据库文gQ?<br />q种方式下可讉K数据库中的数据?<br />4、startupQ等于以下三个命?<br />startup nomount <br />alter database mount <br />alter database open <br />5、startup restrict <br />U束方式启动 <br />q种方式能够启动数据库,但只允许h一定特权的用户讉K <br />非特权用戯问时Q会(x)出现以下提示Q?<br />ERRORQ?<br />ORA-01035: ORACLE 只允许具?RESTRICTED SESSION 权限的用户?<br />6、startup force <br />强制启动方式 <br />当不能关闭数据库Ӟ可以用startup force来完成数据库的关?<br />先关闭数据库Q再执行正常启动数据库命?<br />7、startup pfile=参数文g?<br />带初始化参数文g的启动方?<br />先读取参数文Ӟ再按参数文g中的讄启动数据?<br />例:(x)startup pfile=E:\Oracle\admin\oradb\pfile\init.ora <br />8、startup EXCLUSIVE <br /><br />二、几U关闭方式:(x) <br /><br />1、shutdown normal <br />正常方式关闭数据库?<br />2、shutdown immediate <br />立即方式关闭数据库?<br />在SVRMGRL中执行shutdown immediateQ数据库q不立即关闭Q?<br />而是在Oracle执行某些清除工作后才关闭Q终止会(x)话、释放会(x)话资源)Q?<br />当用shutdown不能关闭数据库时Qshutdown immediate可以完成数据库关闭的操作?<br />3、shutdown abort <br />直接关闭数据库,正在讉K数据库的?x)话会(x)被H然l止Q?<br />如果数据库中有大量操作正在执行,q时执行shutdown abort后,重新启动数据库需要很长时?<br /><br /></p> <img src ="http://m.tkk7.com/toby/aggbug/335245.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2010-10-15 16:39 <a href="http://m.tkk7.com/toby/archive/2010/10/15/335245.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库的acidҎ(gu)?/title><link>http://m.tkk7.com/toby/archive/2010/08/20/329441.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Fri, 20 Aug 2010 03:22:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2010/08/20/329441.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/329441.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2010/08/20/329441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/329441.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/329441.html</trackback:ping><description><![CDATA[对Y件开发h员来_(d)数据库也有这么贵重。如果用数据库的话Q需要确保它安全存储数据q允许?zhn)来索数据。?zhn)q希望数据库允许多个E序使用数据库而不?x)相互干扰。ؓ(f)了演C,假设(zhn)拥有一个银行。银行的数据库必d备下列功能:(x) <br /><br />  ?安全存储合适的数据 <br />  ●快速检索合适的数据 <br />  ●支持多个ƈ行的用户?x)?<br /><br />  q些d可以合称?ACID 试QACID ?AtomicityQ原子性)、ConsistencyQ一致性)、IsolationQ隔L)?DurabilityQ持久性)的羃略词?<br /><br />  <strong>原子?/strong> 指数据库操作可以l合CP当作单个单元处理?<br /><br />  <strong>一致?/strong> 保证此单个单元(或事务)中的所有操作要么都成功执行Q要么都不执行。换句话_(d)数据库不能处于未完成状态。要了解q些特征Z如此重要Q可考虑q样一个银行事务:(x)即钱从储蓄帐戯{到支帐戗如果在钱从储蓄帐户减M后、加到支帐户之前,转帐处理p|Q那么?zhn)׃?x)变穷Q而银行将?x)有一个愤怒的Q前Q客P原子性得这两个操作 —?从储蓄帐户减钱和向支帐户加?—?被当作单个事务进行处理。一致性保证事务中的这两个操作同时成功或同时失败。这P(zhn)的钱就不会(x)丢失了?<br /><br />  <strong>隔离?/strong> 指独立的数据库事务集合以不相互冲H的方式执行。仍使用q个银行cLQ考虑两个客户同时在帐户之间{U资金。数据库必须分别跟踪两个转帐Q否则,资金可能q入错误的帐P而银行可能得多两个愤怒的Q前Q客戗?<br /><br />  <strong>持久?/strong> 保证数据库是安全的,不会(x)异常l止。当甉|断电(sh)Ӟ如果?sh)视或计机不工作,q可能是麻烦,但同L(fng)事情对于数据库来说就不一样了。如果银行计机在{U资金时掉电(sh)Q导致交易丢失,(zhn)就不会(x)是个快乐的客户了。持久性保证如果数据库在资金{UL间异常终止,则当数据库重新启动时Q它?yu)能够恢复交易ƈl箋正常的操作? <script type="text/javascript"><!-- google_ad_client = "pub-1076724771190722"; /* JE个h博客468x60 */ google_ad_slot = "5506163105"; google_ad_width = 468; google_ad_height = 60; //--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script><script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"></script><script><![CDATA[oogle_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);]]></script><img src ="http://m.tkk7.com/toby/aggbug/329441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2010-08-20 11:22 <a href="http://m.tkk7.com/toby/archive/2010/08/20/329441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cmd屏幕改变Ҏ(gu)和解决mysql忘记用户名密码步聚备?/title><link>http://m.tkk7.com/toby/archive/2010/08/05/328060.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Thu, 05 Aug 2010 09:29:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2010/08/05/328060.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/328060.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2010/08/05/328060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/328060.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/328060.html</trackback:ping><description><![CDATA[ <p>一.改变dosH口大小<br />H口状态栏查看默认大小后,再将属性中的大改成和默认大小一样就行了<br /><br />?mysql忘记密码处理Ҏ(gu)<br />         MySQL(root用户)密码忘记重置<br /><br />1、首先停止正在运行的MySQLq程<br /><br />Linux?q行 killall -TERM mysqld<br />Windows下,如果写成服务?可以q行Qnet stop mysql,如未加蝲为服务,可直接在q程理器中q行关闭?br /><br />2、以安全模式启动MySQL<br /><br />Linux下,q行 /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &<br />Windows下,在命令行下运?X:/MySQL/bin/mysqld-nt.exe --skip-grant-tables<br /><br />3、完成以后就可以不用密码q入MySQL?br /><br />Linux下,q行 /usr/local/mysql/bin/mysql -u root -p q入<br />Windows下,q行 X:/MySQL/bin/mysql -u root -p q入<br /><br />4、更改密?br /><br />>use mysql<br />>update user set password=password("新密?) where user="root";<br />>flush privileges;<br /><br />注:(x)如是4.1以上版本则用old_password()函数q行密码更改?<br /><br />?如果密码q是不能重置Q就重新下蝲mysql再安装。下面是提供命o(h)<br />$ftp ftp.cn.freebsd.org<br />$cd pub/FreeBSD/distfiles<br />$ls mysql*<br />$get mysql-5.0.18.tar.gz<br />$bye</p> <p>$tar -zxvf mysql-5.0.18.tar.gz<br />用命令get的文仉认放在?C:\Documents and Settings\当前用户名目录下<br /><br />?以下是提供方法四。直接从<a >http://www.mysql.cn/</a>q个|站下蝲<br />?MYSQL客户端工具下载地址  <a >http://www.navicat.net.cn/navicat2010/download.html</a><br /></p> <img src ="http://m.tkk7.com/toby/aggbug/328060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2010-08-05 17:29 <a href="http://m.tkk7.com/toby/archive/2010/08/05/328060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>面试q要W试http://m.tkk7.com/toby/archive/2010/06/29/324778.htmltobyxiongtobyxiongTue, 29 Jun 2010 06:52:00 GMThttp://m.tkk7.com/toby/archive/2010/06/29/324778.htmlhttp://m.tkk7.com/toby/comments/324778.htmlhttp://m.tkk7.com/toby/archive/2010/06/29/324778.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/324778.htmlhttp://m.tkk7.com/toby/services/trackbacks/324778.html张三 语文 40
张三 数学 80
张三 物理 90
李四 语文 59
李四 数学 60
李四 物理 78

上面表数据变成

李四 59 60 78
张三 40 80 90
以下是sql实现
select c.name,sum(语文),sum(数学),sum(物理) from (
select
(case when a.subject = '语文' then max(a.fen) else 0 end) 语文,
(case when a.subject = '数学' then max(a.fen) else 0 end) 数学,
(case when a.subject = '物理' then max(a.fen) else 0 end)  物理,
 name from a_mianshi a group by name,subject) c
 group by name




tobyxiong 2010-06-29 14:52 发表评论
]]>
attempt to create,alter or drop an index on temporary table already in use的解军_?/title><link>http://m.tkk7.com/toby/archive/2010/03/15/315491.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Mon, 15 Mar 2010 08:23:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2010/03/15/315491.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/315491.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2010/03/15/315491.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/315491.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/315491.html</trackback:ping><description><![CDATA[是因为锁表,造成的。先杀掉会(x)话中的进E或者是提交q个表相关事务即可!<img src ="http://m.tkk7.com/toby/aggbug/315491.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2010-03-15 16:23 <a href="http://m.tkk7.com/toby/archive/2010/03/15/315491.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle删除重复记录http://m.tkk7.com/toby/archive/2010/03/10/315052.htmltobyxiongtobyxiongWed, 10 Mar 2010 06:43:00 GMThttp://m.tkk7.com/toby/archive/2010/03/10/315052.htmlhttp://m.tkk7.com/toby/comments/315052.htmlhttp://m.tkk7.com/toby/archive/2010/03/10/315052.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/315052.htmlhttp://m.tkk7.com/toby/services/trackbacks/315052.html1.Oracle删除重复记录.
删除表中多余的重复记录,重复记录是根据单个字D(peopleIdQ来判断Q只留有rowid最的记录.
delete from people
where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)
and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)
删除表中多余的重复记录(多个字段Q,只留有rowid最的记录
delete from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
================================
此方法可以适用于sql ,oracle
declare @max integer,@id integer
declare cur_rows cursor local for select dD?count(*) from 表名 group by dD?having count(*) >Q?1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where dD?= @id
/*
DECLARE @count INT
SELECT @count = COUNT(*) FROM [table1] WHERE [column1] = 1
DELETE TOP (@count-1) FROM [table1] WHERE [column1] = 1  q个top后面一定要有括?
*/
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
=======================================
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
=======================================
select identity(int,1,1) as id ,name,state into #tempTable from a
delete from a
delete from #tempTable
where id not in
(
select min(id) from #tempTable group by name
)
insert into a( name,state)
select name,state from #tempTable
drop table #tempTable

tobyxiong 2010-03-10 14:43 发表评论
]]>
oracle存储q程中执行创报ORA-01031 insufficient privileges解决办法http://m.tkk7.com/toby/archive/2010/02/06/312208.htmltobyxiongtobyxiongSat, 06 Feb 2010 11:18:00 GMThttp://m.tkk7.com/toby/archive/2010/02/06/312208.htmlhttp://m.tkk7.com/toby/comments/312208.htmlhttp://m.tkk7.com/toby/archive/2010/02/06/312208.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/312208.htmlhttp://m.tkk7.com/toby/services/trackbacks/312208.html

tobyxiong 2010-02-06 19:18 发表评论
]]>
oracle相关函数http://m.tkk7.com/toby/archive/2009/12/22/306910.htmltobyxiongtobyxiongTue, 22 Dec 2009 07:27:00 GMThttp://m.tkk7.com/toby/archive/2009/12/22/306910.htmlhttp://m.tkk7.com/toby/comments/306910.htmlhttp://m.tkk7.com/toby/archive/2009/12/22/306910.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/306910.htmlhttp://m.tkk7.com/toby/services/trackbacks/306910.html1.取整(?     select ceil(-1.5) value from dual   

2.取整Q小Q?  select floor(-1.5) value from dual   

3.取整Q截取)  select trunc(-1.5) value from dual       

4.取整(舍入)     select round(-1.5) value from dual

tobyxiong 2009-12-22 15:27 发表评论
]]>
oracle ORA-14452错误处理http://m.tkk7.com/toby/archive/2009/12/18/306598.htmltobyxiongtobyxiongFri, 18 Dec 2009 09:18:00 GMThttp://m.tkk7.com/toby/archive/2009/12/18/306598.htmlhttp://m.tkk7.com/toby/comments/306598.htmlhttp://m.tkk7.com/toby/archive/2009/12/18/306598.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/306598.htmlhttp://m.tkk7.com/toby/services/trackbacks/306598.htmlcreate global temporary table on commit preserve rows 用于?x)话相?也就在事务结束后truncate data in the temporary table,但如果在?x)话未结束时要修改temporary table׃(x)出现错误Q?/h4>

ORA-14452: attempt to create, alter or drop an index on temporary table already in use
l查Q该错误的解释ؓ(f)Q?br />Cause: An attempt was made to create, alter or drop an index on temporary table which is already in use.
Action: All the sessions using the session-specific temporary table have to truncate table and all the transactions using transaction specific temporary table have to end their transactions.

处理步骤Q?br />1、先从user_objects中查询到该表的object_id:
select object_id from user_objects where object_name=upper('TMP_365100930');

2、根据查到的object_id知道使用该表的sessionQ?br />select * from v$lock where id1=&object_id;

3、在从v$session视图中查到该session的SID和SERIAL#Q?br />select * from v$session where sid=181;

4、杀掉这些进E?
alter system kill session SID,SERIAL#;



tobyxiong 2009-12-18 17:18 发表评论
]]>
ora-00054:resource busy and acquire with nowait specified解决Ҏ(gu)http://m.tkk7.com/toby/archive/2009/11/14/302343.htmltobyxiongtobyxiongSat, 14 Nov 2009 07:39:00 GMThttp://m.tkk7.com/toby/archive/2009/11/14/302343.htmlhttp://m.tkk7.com/toby/comments/302343.htmlhttp://m.tkk7.com/toby/archive/2009/11/14/302343.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/302343.htmlhttp://m.tkk7.com/toby/services/trackbacks/302343.html我的原因是,别的sql plus客户端(同事Q执行了大量的操作后没有执行commit的缘故,让他们执行一下就可以了?/div>


当某?a href="file::;" target="_self">数据?/strong>用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的烦引时Q常怼(x)出现ora-00054:resource busy and acquire with nowait specifiedq样的错误?/p>

主要是因为有事务正在执行Q或者事务已l被锁)Q所有导致执行不成功?/p>

1、用dba权限的用h看数据库都有哪些?/strong>

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;

如:(x)testuser 339 13545 2009-3-5 17:40:05
知道被锁的用户testuserQsid?39Qserial#?3545

2、根据sid查看具体?a href="file::;" target="_self">sql语句Q如果sql不重要,可以kill

select sql_text from v$session a,v$sqltext_with_newlines b
where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
and a.sid=&sid order by piece;

查出来的sqlQ如Q?begin :id := sys.dbms_transaction.local_transaction_id; end;

3、kill该事?/strong>
alter system kill session '339,13545';

4、这样就可以执行其他的事务sql语句?/strong>

如增加表的主键:(x)
alter table test
add constraint PK_test primary key (test_NO)Q?/p>

tobyxiong 2009-11-14 15:39 发表评论
]]>
Oracle用Start with...Connect By子句递归查询http://m.tkk7.com/toby/archive/2009/09/28/296822.htmltobyxiongtobyxiongMon, 28 Sep 2009 09:33:00 GMThttp://m.tkk7.com/toby/archive/2009/09/28/296822.htmlhttp://m.tkk7.com/toby/comments/296822.htmlhttp://m.tkk7.com/toby/archive/2009/09/28/296822.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/296822.htmlhttp://m.tkk7.com/toby/services/trackbacks/296822.htmlStart with...Connect By子句递归查询一般用于一个表l护?wi)Şl构的应用?/div>
创徏CZ表:(x)
CREATE TABLE TBL_TEST
(
   ID     NUMBER,
   NAME   VARCHAR2(100 BYTE),
   PID    NUMBER                                   DEFAULT 0
);
插入试数据Q?/div>
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
从Root往?wi)末梢递归
select * from TBL_TEST
start with id=1
connect by prior id = pid
从末梢往?wi)ROOT递归
select * from TBL_TEST
start with id=5
connect by prior pid = id
扑ֈ更全面的资料
Oracle Connect By Function
Version 10.2
Basic Syntax Elements START WITH <condition>
CONNECT BY
[NOCYCLE]
<condition>
CONNECT BY PRIOR
A condition that identifies the relationship between parent rows and child rows of the hierarchy CONNECT BY <child_value> = <parent_value>
conn hr/hr

SELECT employee_id, last_name, manager_id
FROM employees
CONNECT BY PRIOR employee_id = manager_id;
START WITH
Specifies a condition that identifies the row(s) to be used as the root(s) of a hierarchical query START WITH (column_name) = <value>
SELECT last_name, employee_id, manager_id, LEVEL
FROM employees
START WITH employee_id = 100
CONNECT BY PRIOR employee_id = manager_id;
ORDER SIBLINGS BY
SIBLINGS BY preserves any ordering specified in the hierarchical query clause and then applies the order_by_clause to the siblings of the hierarchy ORDER SIBLINGS BY (column_name)
SELECT last_name, employee_id, manager_id, LEVEL
FROM employees
START WITH employee_id = 100
CONNECT BY PRIOR employee_id = manager_id
ORDER SIBLINGS BY last_name;
CONNECT_BY_ROOT
CONNECT_BY_ROOT is a unary operator that is valid only in hierarchical queries. When you qualify a column with this operator, Oracle returns the column value using data from the root row.

Cannot be specified with the START WITH or   CONNECT BY condition.
The following example returns the last name of each employee in department 110, each manager above that employee in the hierarchy, the number of levels between manager and employee, and the path between the two:
col emp format a20
col mgr format a20
set linesize 120

SELECT "Name", SUM(salary) "Total_Salary"
FROM (
   SELECT CONNECT_BY_ROOT last_name "Name", salary
   FROM employees
   WHERE department_id = 110
   CONNECT BY PRIOR employee_id = manager_id)
GROUP BY "Name";

-- Thanks Colin for the correction
CONNECT_BY_ISCYCLE Pseudocolumn
The CONNECT_BY_ISCYCLE pseudocolumn returns 1 if the current row has a child which is also its ancestor. Otherwise it returns 0
UPDATE employees SET manager_id = 145
WHERE employee_id = 100;

SELECT last_name, LEVEL, SYS_CONNECT_BY_PATH(last_name, '/') "Path"
FROM employees
WHERE LEVEL <= 3 AND department_id = 80
START WITH last_name = 'King'
CONNECT BY PRIOR employee_id = manager_id AND LEVEL <= 4;
2 3 4 5 6 7 ERROR:
ORA-01436: CONNECT BY loop in user data

SELECT last_name, CONNECT_BY_ISCYCLE "Cycle", LEVEL, SYS_CONNECT_BY_PATH(last_name, '/') "Path"
FROM employees
WHERE LEVEL <= 3 AND department_id = 80
START WITH last_name = 'King'
CONNECT BY NOCYCLE PRIOR employee_id = manager_id
AND LEVEL <= 4;
CONNECT_BY_ISLEAF Pseudocolumn
The CONNECT_BY_ISLEAF pseudocolumn returns 1 if the current row is a leaf of the tree defined by the CONNECT BY condition. Otherwise it returns 0. This information indicates whether a given row can be further expanded to show more of the hierarchy.
SELECT last_name "Employee", CONNECT_BY_ISLEAF "IsLeaf",
LEVEL, SYS_CONNECT_BY_PATH(last_name, '/') "Path"
FROM employees
WHERE level <= 3
AND department_id = 80
START WITH last_name = 'King'
CONNECT BY PRIOR employee_id = manager_id
AND LEVEL <= 4;
LEVEL Pseudocolumn
For each row returned by a hierarchical query, the LEVEL pseudocolumn returns 1 for a root row, 2 for a child of a root, and so on
SELECT employee_id, last_name, manager_id, LEVEL
FROM employees
CONNECT BY PRIOR employee_id = manager_id;

SELECT LPAD(' ',2*(LEVEL-1)) || last_name ORG_CHART,
employee_id, manager_id, job_id
FROM employees
START WITH job_id = 'AD_VP'
CONNECT BY PRIOR employee_id = manager_id;

SYS_CONNECT_BY_PATH
Returns the path of a column value from root to node, with column values separated by char for each row returned by CONNECT BY condition
SYS_CONNECT_BY_PATH(<column>, <char>)
See CONNECT_BY_ISCYCLE demo
Function Demo
Use A Function To Receive The Current Node and Search for Parents of the Current Node
CREATE OR REPLACE FUNCTION permissions_sub_tree_root (
the_id IN NUMBER,
the_level IN NUMBER)
RETURN NUMBER IS

sub_tree_root NUMBER(10);

BEGIN
   SELECT id
   INTO sub_tree_root
   FROM hierarchy
   WHERE level = the_level
  -- Connect 'upwards', i.e. find the parent
   CONNECT BY PRIOR PARENT = id
   START WITH ID = the_id;

   RETURN sub_tree_root;
END permissions_sub_tree_root;
/

SELECT id, name, username
FROM (
   SELECT ID, PARENT, NAME,
   permissions_sub_tree_root
(id, LEVEL) ROOT
   FROM hierarchy
   CONNECT BY PRIOR id = PARENT) HIERARCHY, permissions
WHERE ROOT = hierarchy_id;
GROUP BY Demo
Group By Demo with CONNECT_BY_ROOT and
CONNECT_BY_PRIOR
SELECT name, SUM(salary) "Total_Salary"
FROM (
   SELECT CONNECT_BY_ROOT last_name "Name", salary
   FROM employees
   WHERE department_id = 110
  CONNECT BY PRIOR employee_id = manager_id)
GROUP BY name;
Demos
Indenting col lname format a30

SELECT LPAD(' ', level*2, ' ') || last_name LNAME, d.department_id
FROM employees e, departments d
WHERE e.department_id = d.department_id
START WITH employee_id = 100
CONNECT BY PRIOR e.employee_id = e.manager_id;
Hierarchical Query with IN In a [NOT] IN condition in a WHERE clause, if the right-hand side of the condition is a subquery, you cannot use LEVEL on the left-hand side of the condition. However, you can specify LEVEL in a subquery of the FROM clause to achieve the same result. For example, the following statement is not valid:
SELECT employee_id, last_name FROM employees
WHERE (employee_id, LEVEL)
IN (SELECT employee_id, 2 FROM employees)
START WITH employee_id = 2
CONNECT BY PRIOR employee_id = manager_id;
But the following statement is valid because it encapsulates the query containing the LEVEL information in the FROM clause:
SELECT v.employee_id, v.last_name, v.lev
FROM (
   SELECT employee_id, last_name, LEVEL lev
   FROM employees v
   START WITH employee_id = 100
   CONNECT BY PRIOR employee_id = manager_id) v
WHERE (v.employee_id, v.lev) IN (
   SELECT employee_id, 2 FROM employees);


tobyxiong 2009-09-28 17:33 发表评论
]]>备䆾某用户下数据注意http://m.tkk7.com/toby/archive/2009/09/25/296447.htmltobyxiongtobyxiongFri, 25 Sep 2009 08:50:00 GMThttp://m.tkk7.com/toby/archive/2009/09/25/296447.htmlhttp://m.tkk7.com/toby/comments/296447.htmlhttp://m.tkk7.com/toby/archive/2009/09/25/296447.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/296447.htmlhttp://m.tkk7.com/toby/services/trackbacks/296447.html具体语法
不包含系l表
$exp cmp/cmp@gzboss file=d:\cmp.dmp log=d:\cmp.log OWNER=(cmp);
包含pȝ?br />D:\oracle\ora92\bin\EXP.EXE system/manager@office full=y file=e:\backup\day\cwb.dmp log=e:\backup\day\cwb.log

?查看帮助
$imp help=y

tobyxiong 2009-09-25 16:50 发表评论
]]>
如何查看数据库版?/title><link>http://m.tkk7.com/toby/archive/2009/09/25/296417.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Fri, 25 Sep 2009 06:06:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2009/09/25/296417.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/296417.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2009/09/25/296417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/296417.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/296417.html</trackback:ping><description><![CDATA[ <p>如何查看Oracle数据库版? Metalink上有一D话QCOPYq来复用吧?/p> <p>To determine the release information for these databases:</p> <p>Start SQL*Plus from the Oracle home directory:</p> <p>sqlplus /nolog <br />SQL> conn / as sysdba</p> <p>The output is:</p> <p>Connected</p> <p>Enter the following command:</p> <p>SQL> select * from v$version;</p> <p>The command returns the release information, such as the following:</p> <p>Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production <br />PL/SQL Release 9.2.0.8.0 - Production <br />CORE 9.2.0.8.0 Production <br />TNA for 32-bit Windows: Version 9.2.0.8.0 - Production <br />NLSRTL Version 9.2.0.8.0 - Production</p> <img src ="http://m.tkk7.com/toby/aggbug/296417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2009-09-25 14:06 <a href="http://m.tkk7.com/toby/archive/2009/09/25/296417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE导出pdeQ速度不错。改变用户默认表I间http://m.tkk7.com/toby/archive/2009/08/07/290269.htmltobyxiongtobyxiongFri, 07 Aug 2009 12:55:00 GMThttp://m.tkk7.com/toby/archive/2009/08/07/290269.htmlhttp://m.tkk7.com/toby/comments/290269.htmlhttp://m.tkk7.com/toby/archive/2009/08/07/290269.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/290269.htmlhttp://m.tkk7.com/toby/services/trackbacks/290269.htmloracle改变用户~省表空?/h4>
初始新徏了一个用户lordQ但是default tablespace为SystemQƈ在里面有很多表,先新I间lord,现在其defaultspace改ؓ(f)lord.
 
CREATE TABLESPACE lord DATAFILE '/opt/oradata/lord.dbf' SIZE 50M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
alter user lord default tablespace lord quota unlimited on lord;
grant connect,resource to lord;
但是以前的表q在system里面Q怎么转到l(f)ord里面呢?
alter table tablename move tablespace lord;
新徏的用h有em consoleq接的权限,只能sqlplus,isqlplus,pl/sql developerq接Q如果想要用em理需?/div>
grant select   any   dictionary to lord;


tobyxiong 2009-08-07 20:55 发表评论
]]>oracle备䆾某个用户下的数据http://m.tkk7.com/toby/archive/2009/08/06/290112.htmltobyxiongtobyxiongThu, 06 Aug 2009 08:04:00 GMThttp://m.tkk7.com/toby/archive/2009/08/06/290112.htmlhttp://m.tkk7.com/toby/comments/290112.htmlhttp://m.tkk7.com/toby/archive/2009/08/06/290112.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/290112.htmlhttp://m.tkk7.com/toby/services/trackbacks/290112.htmlexp zhcmp1/zhcmp1@zhcmp  file=c:\my\zhcmp1.dmp log=c:\my\zhcmp1.log owner=(zhcmp1)

expdp zhcmp1/zhcmp1@zhcmp  DIRECTORY=c:\my DUMPFILE=zhcmp1.dmp  LOGFILE=zhcmp1.log



注意导出版本和数据库版本的一?/p>

tobyxiong 2009-08-06 16:04 发表评论
]]>
oracle中导出某用户下的所有表Ҏ(gu)http://m.tkk7.com/toby/archive/2009/06/12/281905.htmltobyxiongtobyxiongFri, 12 Jun 2009 11:03:00 GMThttp://m.tkk7.com/toby/archive/2009/06/12/281905.htmlhttp://m.tkk7.com/toby/comments/281905.htmlhttp://m.tkk7.com/toby/archive/2009/06/12/281905.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/281905.htmlhttp://m.tkk7.com/toby/services/trackbacks/281905.htmlsqlplus zhcmp1/zhcmp1@zhcmp

set pagesize 0;
set heading off;
set verify off;
set linesize 200;
set trimspool on;
spool c:\数据库备?bat;

select 'exp zhcmp1/zhcmp1@zhcmp TABLES='||table_name||' FILE='||table_name||'.sql TRIGGERS=N' from user_tables;


spool off;
set feedback on;
set pagesize 9999;
set heading on;
set verify on;

exit


必备条g
   1.在cmd中能q行exp命o(h)Q一般装客户端是没有此命令的
   2.zhcmp1/zhcmp1@zhcmpq个是你的用户名、密码和实例?/p>

tobyxiong 2009-06-12 19:03 发表评论
]]>
ORACLE initialization or shutdown in progress解决Ҏ(gu)http://m.tkk7.com/toby/archive/2009/05/10/269956.htmltobyxiongtobyxiongSun, 10 May 2009 15:00:00 GMThttp://m.tkk7.com/toby/archive/2009/05/10/269956.htmlhttp://m.tkk7.com/toby/comments/269956.htmlhttp://m.tkk7.com/toby/archive/2009/05/10/269956.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/269956.htmlhttp://m.tkk7.com/toby/services/trackbacks/269956.htmlC:\Documents and Settings\Toby>sqlplus   "/   as   sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期?5?10 22:50:26 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


q接?
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸蝲数据库?br />ORACLE 例程已经关闭?br />SQL> ;startup
SP2-0042: 未知命o(h) ";startup" - 其余行忽略?br />SQL> startup
ORACLE 例程已经启动?/p>

Total System Global Area  373293056 bytes
Fixed Size                  1249056 bytes
Variable Size              92274912 bytes
Database Buffers          272629760 bytes
Redo Buffers                7139328 bytes
数据库装载完毕?br />ORA-01157: 无法标识/锁定数据文g 6 - 请参?DBWR 跟踪文g
ORA-01110: 数据文g 6: 'F:\ORACLE1'


SQL> alter database datafile 19 offline drop;
alter database datafile 19 offline drop
*
W?1 行出现错?
ORA-01516: 不存在的日志文g, 数据文g或(f)时文?"19"


SQL> alter database datafile 6 offline drop
  2  ;

数据库已更改?/p>

SQL> shutdown normal
ORA-01109: 数据库未打开


已经卸蝲数据库?br />ORACLE 例程已经关闭?br />SQL> startup
ORACLE 例程已经启动?/p>

Total System Global Area  373293056 bytes
Fixed Size                  1249056 bytes
Variable Size              92274912 bytes
Database Buffers          272629760 bytes
Redo Buffers                7139328 bytes
数据库装载完毕?br />ORA-01157: 无法标识/锁定数据文g 7 - 请参?DBWR 跟踪文g
ORA-01110: 数据文g 7: 'F:\ORACLE2'


SQL> alter database datafile 7 offline drop
  2  ;

数据库已更改?/p>

SQL> shutdown normal
ORA-01109: 数据库未打开


已经卸蝲数据库?br />ORACLE 例程已经关闭?br />SQL> startup
ORACLE 例程已经启动?/p>

Total System Global Area  373293056 bytes
Fixed Size                  1249056 bytes
Variable Size              92274912 bytes
Database Buffers          272629760 bytes
Redo Buffers                7139328 bytes
数据库装载完毕?br />ORA-01157: 无法标识/锁定数据文g 8 - 请参?DBWR 跟踪文g
ORA-01110: 数据文g 8: 'F:\ORACLE3'


SQL> alter database datafile 8 offline drop
  2  ;

数据库已更改?/p>

SQL> shutdown normal
ORA-01109: 数据库未打开


已经卸蝲数据库?br />ORACLE 例程已经关闭?br />SQL> startup
ORACLE 例程已经启动?/p>

Total System Global Area  373293056 bytes
Fixed Size                  1249056 bytes
Variable Size              92274912 bytes
Database Buffers          272629760 bytes
Redo Buffers                7139328 bytes
数据库装载完毕?br />ORA-01157: 无法标识/锁定数据文g 9 - 请参?DBWR 跟踪文g
ORA-01110: 数据文g 9: 'F:\ORACLE4'


SQL> alter database datafile 9 offline drop;

数据库已更改?/p>

SQL> shutdown normal
ORA-01109: 数据库未打开


已经卸蝲数据库?br />ORACLE 例程已经关闭?br />SQL> startup
ORACLE 例程已经启动?/p>

Total System Global Area  373293056 bytes
Fixed Size                  1249056 bytes
Variable Size              92274912 bytes
Database Buffers          272629760 bytes
Redo Buffers                7139328 bytes
数据库装载完毕?br />数据库已l打开?br />SQL>



tobyxiong 2009-05-10 23:00 发表评论
]]>
全面学习(fn)分区表及(qing)分区索引(10)--交换分区http://m.tkk7.com/toby/archive/2009/05/07/269497.htmltobyxiongtobyxiongThu, 07 May 2009 14:09:00 GMThttp://m.tkk7.com/toby/archive/2009/05/07/269497.htmlhttp://m.tkk7.com/toby/comments/269497.htmlhttp://m.tkk7.com/toby/archive/2009/05/07/269497.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/269497.htmlhttp://m.tkk7.com/toby/services/trackbacks/269497.html 直白的说是q移数据。迁UL据的方式很多Qؓ(f)什么要使用exchange partition的方式呢Q表急,听三思慢慢道来?/font>

Exchange partition提供了一U方式,让你在表与表或分Z分区之间q移数据Q注意不是将表{换成分区或非分区的Ş式,而仅只是q移表中数据(互相q移)Q由于其L(fng)是采用了更改数据字典的方式,因此效率最?几乎不涉?qing)io操作)。Exchange partition适用于所有分区格式,你可以将数据?a onclick="javascript:tagshow(event, '%B7%D6%C7%F8%B1%ED');" href="javascript:;" target="_self">分区?/strong>q移到非分区表,也可以从非分q移臛_Q或者从hash partition到range partition诸如此类吧?/font>

其语法很单:(x)alter table tbname1 exchange partition/subpartition ptname with table tbname2;

Exchange partitionq移的方式也很有意思,a语表达怕大家听不明白,下面直接通过CZ来表达:(x)

借用前文中创建的I分:t_partition_rangeQƈ插入几条记录

JSSWEB> create table t_partition_range (id number,name varchar2(50))

  2   partition by range(id)(

  3   partition t_range_p1 values less than (10) tablespace tbspart01,

  4   partition t_range_p2 values less than (20) tablespace tbspart02,

  5   partition t_range_p3 values less than (30) tablespace tbspart03,

  6   partition t_range_pmax values less than (maxvalue) tablespace tbspart04

  7   );

表已创徏?/font>

JSSWEB> insert into t_partition_range values (11,'a');

已创建? 行?/font>

JSSWEB> insert into t_partition_range values (12,'b');

已创建? 行?/font>

JSSWEB> insert into t_partition_range values (13,'c');

已创建? 行?/font>

JSSWEB> commit;

提交完成?/font>

再创Z个非分区表,l构与t_partition_range相同

JSSWEB> create table t_partition_range_tmp (id number,name varchar2(50));

表已创徏?/font>

执行交换分区(我们知道刚插入到range分区表的数据都在分区t_range_p2中,因此q里指定交换该分?

JSSWEB> alter table t_partition_range exchange partition t_range_p2

  2  with table t_partition_range_tmp;

表已更改?/font>

看看效果如何Q?/font>

JSSWEB> select * from t_partition_range partition(t_range_p2);

未选定?/font>

JSSWEB> select * from t_partition_range_tmp;

        ID NAME

---------- --------------------------------------------------

        11 a

        12 b

        13 c

记录成功交换到未分区的表中?/font>

我们再执行一ơexchange partition的命令,看看又会(x)发生什么呢

JSSWEB> select *from t_partition_range partition(t_range_p2);

        ID NAME

---------- --------------------------------------------------

        11 a

        12 b

        13 c

JSSWEB> select *from t_partition_range_tmp;

未选定?/font>

又交换回来了Q有点儿意思?/font>

再做个更加明的试Q我们往未分区的表中加入一些记录后再执行exchange partitionQ看看会(x)发生什么呢Q?/font>

JSSWEB> insert into t_partition_range_tmp values (15,'d');

已创建? 行?/font>

JSSWEB> insert into t_partition_range_tmp values (16,'e');

已创建? 行?/font>

JSSWEB> insert into t_partition_range_tmp values (1 7 ,'d');

已创建? 行?/font>

JSSWEB> alter table t_partition_range exchange partition t_range_p2

  2  with table t_partition_range_tmp;

表已更改?/font>

JSSWEB> select *from t_partition_range partition(t_range_p2);

        ID NAME

---------- --------------------------------------------------

        15 d

        16 e

        17 d

JSSWEB> select *from t_partition_range_tmp;

        ID NAME

---------- --------------------------------------------------

        11 a

        12 b

        13 c

q就是前面所说的Q互怺换的意思~~

注意Q?/font>

涉及(qing)交换的两表之间表l构必须一_(d)除非附加with validation子句;

如果是从非分向分做交换,非分中的数据必须W合分区表中指定分区的规则,除非附加without validation子句;

如果从分向分做交换,被交换的分区的数据必ȝ合分则,除非附加without validation子句;

Global索引或涉?qing)到数据改动了的global索引分区?x)被|ؓ(f)unusableQ除非附加update indexes子句?/font>

提示Q?/font>

一旦附加了without validation子句Q则表示不再验证数据有效性,因此指定该子句时务必慎重?/font>

例如Q?/font>

JSSWEB> insert into t_partition_range_tmp values (8,'g');

已创建? 行?/font>

JSSWEB> alter table t_partition_range exchange partition t_range_p2

  2  with table t_partition_range_tmp without validation;

表已更改?/font>

JSSWEB> select *from t_partition_range partition(t_range_p2);

        ID NAME

---------- --------------------------------------------------

        11 a

        12 b

        13 c

         8 g

虽然新插入的记录q不W合t_range_p2分区的范围|但指定了without validation后,数据仍然转换成功?/font>

=====================================

查看前面的连载:(x)

(9)--删除表分?/a>

(8)--增加和收~表分区

(7)--怎样理

(6)--创徏range-listl合分区

(5)--创徏range-hashl合分区(1)

(4)--创徏list分区

(3)--创徏hash分区

(2)--创徏range分区

(1)--前言



tobyxiong 2009-05-07 22:09 发表评论
]]>
Oracle backup&Restore(2)http://m.tkk7.com/toby/archive/2009/05/07/269490.htmltobyxiongtobyxiongThu, 07 May 2009 13:33:00 GMThttp://m.tkk7.com/toby/archive/2009/05/07/269490.htmlhttp://m.tkk7.com/toby/comments/269490.htmlhttp://m.tkk7.com/toby/archive/2009/05/07/269490.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/269490.htmlhttp://m.tkk7.com/toby/services/trackbacks/269490.html阅读全文

tobyxiong 2009-05-07 21:33 发表评论
]]>
揭开Oracle 10G手工创徏数据库的秘面纱http://m.tkk7.com/toby/archive/2009/04/29/268220.htmltobyxiongtobyxiongWed, 29 Apr 2009 12:49:00 GMThttp://m.tkk7.com/toby/archive/2009/04/29/268220.htmlhttp://m.tkk7.com/toby/comments/268220.htmlhttp://m.tkk7.com/toby/archive/2009/04/29/268220.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/268220.htmlhttp://m.tkk7.com/toby/services/trackbacks/268220.html升?0G的朋友们都问如何在Oracle 10G里手工徏库的问题。今天正好有I,于是乎把在Oracle 10G里手工徏库的全过E写出来Q供各位从事Oracle工作和学?fn)的同朋友们参考,希望能够对大家有所帮助?

  在Oracle中徏库,通常有两U方法。一?nobr oncontextmenu="return false" onmousemove="kwM(1)" id="clickeyekey1" onmouseover="kwE(event,1, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,1,"")" onmouseout="kwL(event,this)">使用Oracle的徏库工且DBCAQ这是一个图形界面工且,使用h方便且很Ҏ(gu)理解Q因为它的界面友好、美观,而且提示也比较齐全。在Windowspȝ中,q个工具可以在OracleE序l中打开(”开始”—“程序”—?Oracle - OraDb10g_home1”—?Configuration and Migration Tools”—?Database Configuration Assistant?Q也可以在命令行(”开始”—“运行”—“cmd?工具中直接输入dbca来打开。另一U方法就是手工徏库,q也是下面所要讲的内宏V?/clk>

  手工建库比v使用DBCA建库来说Q是比较ȝ的,但是如果我们学好了手工徏库的话,可以我们更好地理解Oracle数据库的体系l构。手工徏库须要经q几个步骤,每一个步骤都非常关键。它包括Q?/p>

  1?创徏必要的相关目?/p>

  2?创徏初始化参数文?/p>

  3?讄环境变量Oracle_sid

  4?创徏实例

  5?创徏口o(h)文g

  6?启动数据库到nomount(实例)状?/p>

  7?执行建库脚本

  8?执行catalog脚步本创建数据字?/p>

  9?执行catproc创徏package?/p>

  10?执行pupbld

  11?由初始化参数文g创徏spfile文g

  12?执行scott脚本创徏scott模式

  做完了以上的步骤之后可以用“SQL>alter database open;”打开数据库正常的使用了。下面,我将具体地把以上的几个步骤用实验展开来讲?br />实验pȝq_QWindows Server 2000

  数据库系l版本:(x)Oracle Database 10G

  Oracle的安装\径:(x)D?/p>

  创徏的数据库名称Qbook

  1、打开命o(h)行工P创徏必要有相关目?/p>

  C:>mkdir D:oracleproduct10.1.0adminbook
  C:>mkdir D:oracleproduct10.1.0adminbookbdump
  C:>mkdir D:oracleproduct10.1.0adminbookudump
  C:>mkdir D:oracleproduct10.1.0adminbookcdump
  C:>mkdir D:oracleproduct10.1.0adminbookpfile
  C:>mkdir D:oracleproduct10.1.0adminbookcreate
  C:>mkdir D:oracleproduct10.1.0oradatabook

  上面创徏目录的过E也可以在Windows的图形界面中d建。其中D:oracleproduct10.1.0adminbook目录下的几个子目录主要用于存放数据库q行q程中的跟踪信息。最重要的两上子目录是bdump和udump目录Qbdump目录存放的是数据库动行过E中的各个后台进E的跟踪信息Q当中alert文g是警告文Ӟ其文件名UCؓ(f)alert_book.logQ当数据库出现问题时Q首先就可以L看此文g以找出原因,手工创徏q程中出现的各种问题往往也可以通过查看q个文g扑ֈ原因。Udump目录存放和特定会(x)话相关的跟踪信息。D:oracleproduct10.1.0oradatabook目录存放各种数据库文Ӟ包括控制文g、数据文件、重做日志文件?/p>

  2、创建初始化参数文g

  数据库系l启动时要用初始化参数文g的设|分配内存、启动必要的后台q程的。因此,初始化参数文件创建的是否正确、参数设|是否正关pȝ整个建库的“命q”?/p>

  创徏初始化参数文件可以通过拯现在的初始化参数文gq将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因ؓ(f)初始化参数文件的l构体系基本上都是一L(fng)。在我们安装Oracle的时候,pȝ已经为我们安装了一个名为orcl的数据库Q于是我们可以从它那里得C份初始化参数文g。打开D:oracleproduct10.1.0adminorclpfileQ找到init.ora文gQ把它拷贝到D:oracleproduct10.1.0bd_1databse下,q将其改名ؓ(f)initbook.ora。接着用记事本的方式打开initbook.oraQ修改以下的内容Q?br />

  db_domain=""
  db_name=book
  control_files=("D:oracleproduct10.1.0oradatabookcontrol01.ctl",                       "D:oracleproduct10.1.0oradatabookcontrol02.ctl",  "D:oracleproduct10.1.0oradatabookcontrol03.ctl")
  undo_management=AUTO
  undo_tablespace=UNDOTBS1 ――注意此处的“UNDOTBS1”要和徏库脚步本中对?br />  background_dump_dest=D:oracleproduct10.1.0adminbookbdump
  core_dump_dest=D:oracleproduct10.1.0adminbookcdump
  user_dump_dest=D:oracleproduct10.1.0adminbookudump

  3、打开命o(h)行,讄环境变量oracle_sid

  C:>set oracle_sid=book

  讄环境变量的目地是在默认的情况下,指定命o(h)行中所操作的数据库实例是book?/p>

  4、创建实?卛_台控?nobr oncontextmenu="return false" onmousemove="kwM(0)" id="clickeyekey0" onmouseover="kwE(event,0, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,0,"")" onmouseout="kwL(event,this)">服务)

  C:>oradim –new –sid book

  oradim是创建实例的工具E序名称Q?new表明执行新徏实例Q?delete表明执行删掉实例Q?sid指定害例的名U?/p>

  5、创建口令文?/p>

  C:>orapwd file=D:oracleproduct10.1.0db_1databasepwdbook.ora password=bookstore entries=2

  orapwd是创建口令文件的工肯E序各称Qfile参数指定口o(h)文g所在的目录和文件名Uͼpassword参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用L(fng)个数Q当然还有一个force参数Q相信?zhn)不指xQ这里就不再l述?/p>

  h意,q里的命令要一行输入,中间不得换行Q否则会(x)出现不必要的错误?/p>

  口o(h)文g是专门存放sys用户的口令,因ؓ(f)sys用户要负责徏库、启动数据库、关闭数据库{特DQ务,把以sys用户的中令单独存放于口o(h)文g中,q样数据库末打开时也能进行口令验证?br />
        6、启动数据库到nomount(实例)状?br />    C:>sqlplus /nolog
  SQL*Plus:Release 10.1.0.2.0 - Production on 星期?6?29 23:09:35 2005
  Copyright 1982,2004,Oracle. All rights reserved.
  SQL>connect sys/bookstore as sysdba ---q里是用sysq接数据?/code>

  已连接到I闲例程

  SQL>startup nomount

  ORACLE 例程已经启动?/p>

  Total System Global Area 319888364bytes
  Fixed Size 453612bytes
  Variable Size 209715200bytes
  Database Buffers 109051904bytes
  Redo Buffers 667648bytes
  SQL>

  7、执行徏库脚?/p>

  执行建库脚本Q首先要有徏库的脚本?d扑־库脚本呢?我又没有!)不用着急,h着往下看?/p>

  得到一个符合自p求的建库脚本有两U方法,一U方法是在自q?sh)?/nobr>上用DBCA来徏Q接照它的提CZ步步地去做,在做到第十二步的时候,请选择“生成徏库脚本”,然后大功告成,你就可以到相应的目录上去扑ֈ那个脚本q当C它便可便用。另一U方法就是自己手工去写一份徏库脚本,q也是这里要见意使用的方法,用记事本~辑如下的内容,q将其保存ؓ(f)文g名Q取而后~名ؓ(f)(*.sql)的SQL脚本Q这里保存到E盘根本录下且文g名称为book.sql?/clk>

  Create database book
  datafile 'D:oracleproduct10.1.0oradatabooksystem01.dbf' size 300M reuse autoextend on next 10240Kmaxsize unlimited
  extent management local
  sysaux datafile 'D:oracleproduct10.1.0oradatabooksysaux01.dbf'
  size 120M reuse autoextend on next 10240K maxsize unlimited
  default temporary tablespace temp
  tempfile 'D:oracleproduct10.1.0oradatabooktemp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
  undo tablespace "UNDOTBS1" --h意这里的undo表空间要和参数文件对?br />  datafile 'D:oracleproduct10.1.0oradatabookundotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
  logfile
  group 1 ('D:oracleproduct10.1.0oradatabookredo01.log') size 10240K,
  group 2 ('D:oracleproduct10.1.0oradatabookredo02.log') size 10240K,
  group 3 ('D:oracleproduct10.1.0oradatabookredo03.log') size 10240K

  接着执行刚建的建库脚本Q?/p>

  SQL>start E:book.sql

  8、执行catalog脚步本创建数据字?/p>

  SQL>start D:oracleproduct10.1.0db_1rdbmsadmincatalog.sql

  9、执行catproc创徏package?/p>

  SQL>start D:oracleproduct10.1.0db_1rdbmsadmincatproc.sql

  10、执行pupbld

  在执行pupbld之前要把当前用户(sys)转换成system,即以system账户q接数据库。因为此数据库是刚徏的,所以system的口令是pȝ默认的口令,即manager。你可以在数据库建好以后再来重新讄此̎L(fng)口o(h)?/p>

  SQL>connect system/manager

  SQL>start D:oracleproduct10.1.0db_1sqlplusadminpupbld.sql

  11、由初始化参数文件创建spfile文g

  SQL>create spfile from pfile;

  12、执行scott脚本创徏scott模式

  SQL>start D:oracleproduct10.1.0db_1rdbmsadminscott.sql

  13、把数据库打开到正常状?/p>

  SQL>alter database open;

  14、以scottq接到数据库(口o(h)为tiger)Q测试新建数据库是否可以正常q行

  xQ整个数据库已l徏好了。接着你就可以在此数据库上建立自己的̎户和表空间啦以及(qing)数据库对象,q里׃再作更多地叙q?/p>



tobyxiong 2009-04-29 20:49 发表评论
]]>
oracle中的数据导入和导?/title><link>http://m.tkk7.com/toby/archive/2009/04/15/265841.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Wed, 15 Apr 2009 12:47:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2009/04/15/265841.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/265841.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2009/04/15/265841.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/265841.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/265841.html</trackback:ping><description><![CDATA[本文对Oracle数据的导入导?imp ,exp 两个命o(h)q行了介l? q对其相应的参数q行了说?然后通过一些示例进行演l?加深理解.<br />文章最后对q用q两个命令可能出现的问题(如权限不?不同oracle版本)q行了探?q提Z相应的解x?<br />本文部分内容摘录自网l?感谢|友的经验ȝ;<br /><br /><br />一.说明<br /><br />   oracle 的exp/imp命o(h)用于实现Ҏ(gu)据库的导?导入操作;<br />   exp命o(h)用于把数据从q程数据库服务器导出x?生成dmp文g;<br />   imp命o(h)用于把本地的数据库dmp文g从本地导入到q程的Oracle数据库中?br /><br />?语法<br /><br />可以通过在命令行输入 imp help=y 获取imp的语法信?<br />=============================================================================<br />  C:\Documents and Settings\auduser>imp help=y<br /><br />  Import: Release 9.0.1.1.1 - Production on 星期?5?20 18:21:57 2008<br /><br />  (c) Copyright 2001 Oracle Corporation.  All rights reserved.<br /><br />  可以通过输入 IMP 命o(h)和?zhn)的用户?口o(h)<br />  后接用户?口o(h)的命?<br /><br />  例程: IMP SCOTT/TIGER<br /><br />  或? 可以通过输入 IMP 命o(h)和各U参数来控制“导入?br />  按照不同参数。要指定参数Q?zhn)可以使用关键?<br /><br />  格式: IMP KEYWORD=value ?KEYWORD=(value1,value2,...,vlaueN)<br />  例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N<br />  ?TABLES=(T1: P1,T1: P2)Q如?T1 是分<br /><br />  USERID 必须是命令行中的W一个参数?br /><br />  关键字?说明Q默认)        关键字    ?说明Q默认)<br />  --------------------------------------------------------------------------<br />  USERID   用户?口o(h)           FULL         导入整个文g (N)<br />  BUFFER   数据~冲区大       ?FROMUSER     所有h用户名列?br />  FILE     输入文g (EXPDAT.DMP)    TOUSER       用户名列?br />  SHOW     只列出文件内?(N) TABLES      表名列表<br />  IGNORE   忽略创徏错误 (N)    RECORDLENGTH  IO 记录的长?br />  GRANTS  导入权限 (Y)           INCTYPE      增量导入cd<br />  INDEXES 导入索引 (Y)          COMMIT       提交数组插入 (N)<br />  ROWS    导入数据?(Y)        PARFILE      参数文g?br />  LOG      屏幕输出的日志文件 ?CONSTRAINTS  导入限制 (Y)<br />  DESTROY                覆盖表空间数据文?(N)<br />  INDEXFILE              表/索引信息写入指定的文?br />  SKIP_UNUSABLE_INDEXES  跌不可用烦引的l护 (N)<br />  FEEDBACK               ?x 行显C?(0)<br />  TOID_NOVALIDATE        跌指定cd ID 的验?br />  FILESIZE               每个转储文g的最大大?br />  STATISTICS             始终导入预计的l计信息<br />  RESUMABLE              遇到与空格有关的错误时挂?(N)<br />  RESUMABLE_NAME         用来标识可恢复语句的文本字符?br />  RESUMABLE_TIMEOUT      RESUMABLE 的等待时?br />  COMPILE                ~译q程, E序包和函数 (Y)<br /><br />  下列关键字仅用于可传输的表空?br />  TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)<br />  TABLESPACES 要传输到数据库的表I间<br />  DATAFILES 要传输到数据库的数据文?br />  TTS_OWNERS 拥有可传输表I间集中数据的用?br /><br />==============================================<br />同样可以通过输入 exp help=y 获取exp的语法信?br /><br />  Microsoft Windows XP [版本 5.1.2600]<br />  (C) 版权所?1985-2001 Microsoft Corp.<br /><br />  C:\Documents and Settings\auduser>exp help=y<br /><br />  Export: Release 9.0.1.1.1 - Production on 星期?5?20 18:26:34 2008<br /><br />  (c) Copyright 2001 Oracle Corporation.  All rights reserved.<br /><br /> <br /><br />  通过输入 EXP 命o(h)和用户名/口o(h)Q?zhn)可?br />  后接用户?口o(h)的命?<br /><br />  例程: EXP SCOTT/TIGER<br /><br />  或者,(zhn)也可以通过输入跟有各种参数?EXP 命o(h)来控制“导出?br />  按照不同参数。要指定参数Q?zhn)可以使用关键?<br /><br />  格式: EXP KEYWORD=value ?KEYWORD=(value1,value2,...,valueN)<br />  例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)<br />  ?TABLES=(T1: P1,T1: P2)Q如?T1 是分<br /><br />  USERID 必须是命令行中的W一个参数?br /><br />  关键字?说明(默认)        关键字    ?说明(默认)<br />  --------------------------------------------------------------------------<br />  USERID   用户?口o(h)           FULL         导出整个文g (N)<br />  BUFFER   数据~冲区大       ?OWNER     所有者用户名列表<br />  FILE       输出文g (EXPDAT.DMP)  TABLES       表名U列?br />  COMPRESS   导入C个区 (Y) RECORDLENGTH IO 记录的长?br />  GRANTS  导出权限 (Y)           INCTYPE      增量导出cd<br />  INDEXES    导出索引 (Y)         RECORD       跟踪增量导出 (Y)<br />  DIRECT     直接路径 (N)            TRIGGERS     导出触发?(Y)<br />  LOG        屏幕输出的日志文件?STATISTICS   分析对象 (ESTIMATE)<br />  ROWS    导出数据?(Y)        PARFILE      参数文g?br />  CONSISTENT 交叉表一致性  ?CONSTRAINTS  导出U束条g (Y)<br /><br />  FEEDBACK             ?x 行显C?(0)<br />  FILESIZE             每个转储文g的最大大?br />  FLASHBACK_SCN        用于回调?x)话快照?SCN<br />  FLASHBACK_TIME       用来获得最接近于指定时间的 SCN 的时?br />  QUERY                用来导出表的子集的选择子句<br />  RESUMABLE            遇到与空格有关的错误时挂?(N)<br />  RESUMABLE_NAME       用来标识可恢复语句的文本字符?br />  RESUMABLE_TIMEOUT    RESUMABLE 的等待时?br />  TTS_FULL_CHECK       ?TTS 执行完全或部分相x检?br />  TABLESPACES          要导出的表空间列?br />  TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)<br />  TEMPLATE 调用 iAS 模式导出的模板名U?br /><br />?使用CZ<br /><br />3.1 数据导出Q?br /><br /> 1 数据库SampleDB完全导出,用户名system 密码manager 导出到E:\SampleDB.dmp?br /><br />   exp system/manager@TestDB file=E:\sampleDB.dmp full=y<br /><br /> 2 数据库中system用户与sys用户的表导出<br /><br />   exp system/manager@TestDB file=E:\sampleDB.dmp  owner=(system,sys)<br /><br /> 3 数据库中的?TableA,TableB 导出<br /><br />    exp system/manager@TestDB  file=E:\sampleDB.dmp  tables=(TableA,TableB)<br /><br /> 4 数据库中的表tableA中的字段filed1 gؓ(f) "王五" 的数据导?br /><br />   exp system/manager@TestDB  file=E:\sampleDB.dmp  tables=(tableA)  query=' where filed1='王五'<br /> <br />   如果惛_dmp文gq行压羃,可以在上面命令后?加上 compress=y 来实现?br /><br />3.2 数据的导?br /><br /> 1 备份数据库文g中的数据导入指定的数据库SampleDB ?如果 SampleDB 已存在该?则不再导?<br /><br />   imp system/manager@TEST  file=E:\sampleDB.dmp  full=y  ignore=y<br /> <br /><br /> 2 d:\daochu.dmp中的表table1 导入<br /><br /> imp system/manager@TEST  file=E:\sampleDB.dmp  tables=(table1)<br /><br />3. 导入一个完整数据库<br /><br /> imp system/manager file=bible_db log=dible_db full=y ignore=y<br /><br />4. 导入一个或一l指定用h属的全部表、烦引和其他对象<br /><br /> imp system/manager file=seapark log=seapark fromuser=seapark imp<br /> system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)<br /><br />5. 一个用h属的数据导入另一个用?br /><br /> imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy<br /> imp system/manager file=tank log=tank fromuser=(seapark,amy)<br /> touser=(seapark1, amy1)<br /><br />6. 导入一个表<br /><br /> imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)<br /><br />7. 从多个文件导?br /><br /> imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)<br />log=paycheck, filesize=1G full=y<br /><br />8. 使用参数文g<br /><br /> imp system/manager parfile=bible_tables.par<br />bible_tables.par参数文gQ?br /> #Import the sample tables used for the Oracle8i Database Administrator's<br />Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import<br />参数文gCZ见附?br /><br /><br />9. 增量导入<br /><br /> imp system./manager inctype= RECTORE FULL=Y  FILE=A<br /><br /> <br />不少情况下要先将表彻底删除,然后导入?br /> <br /><br /> <br /><br />?参数说明<br /><br />4.1?i EXP常用选项<br /> 1、FULLQ这个用于导出整个数据库Q在ROWS=N一起用时Q可以导出整个数据库的结构。例如:(x)<br /> exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y<br /> 2、BUFFER和FEEDBACKQ在导出比较多的数据Ӟ我会(x)考虑讄q两个参数。例如:(x)<br /> exp new file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT<br /> 3、FILL和LOGQ这两个参数分别指定备䆾的DMP名称和LOG名称Q包括文件名和目录,例子见上面?br /> 需要说明的是,EXP可以直接备䆾到磁带中Q即使用FILE=/dev/rmt0(带讑֤?Q但是一般我们都不这么做Q原因有二:(x)一、这样做的速度?x)慢很多Q二、现在一般都是用磁带库的,不徏议直接对带q行操作。至于没有用磁带库的朋友可以考虑和UNIX的TARl合使用?br /> 如果你真想用EXP直接到磁带,你可以参考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文档P(x)30428.1Q,该文中有详细解释?br /> 4?COMPRESS参数在导出的同时合q碎块,量把数据压~到initial的EXTENT里,默认是NQ一般徏议用。DIRECT参数告?EXP直接d数据Q而不像传l的EXP那样Q用SELECT来读取表中的数据Q这样就减少了SQL语句处理q程。一般也使用。不q有些情况下 DIRECT参数是无法用的?br /> 5、如何用SYSDBA执行EXP/IMPQ?br /> q是一个很现实的问题,有时候我们需要用SYSDBA来执行EXP/IMPQ如q行传输表空间的EXP/IMPQ以?qing)?i下用SYS用户来执行EXP/IMPӞ都需要用SYSDBA才可?img src ="http://m.tkk7.com/toby/aggbug/265841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2009-04-15 20:47 <a href="http://m.tkk7.com/toby/archive/2009/04/15/265841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle中各分析函数详解http://m.tkk7.com/toby/archive/2009/04/13/265362.htmltobyxiongtobyxiongMon, 13 Apr 2009 13:01:00 GMThttp://m.tkk7.com/toby/archive/2009/04/13/265362.htmlhttp://m.tkk7.com/toby/comments/265362.htmlhttp://m.tkk7.com/toby/archive/2009/04/13/265362.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/265362.htmlhttp://m.tkk7.com/toby/services/trackbacks/265362.html 今天心血来潮对oracle中的分析函数q行备䆾
1.row_number

SQL> select ename,sal,deptno,row_number() over(partition by deptno order by sal) c from scott.emp;

ENAME            SAL DEPTNO          C
---------- --------- ------ ----------
MILLER       1300.00     10          1
CLARK        2450.00     10          2
KING         5000.00     10          3
SMITH         800.00     20          1
ADAMS        1100.00     20          2
JONES        2975.00     20          3
SCOTT        3000.00     20          4
FORD         3000.00     20          5
JAMES         950.00     30          1
MARTIN       1250.00     30          2
WARD         1250.00     30          3
TURNER       1500.00     30          4
ALLEN        1600.00     30          5
BLAKE        2850.00     30          6

以部门id分组Q以salq行排序。每l的序值是不间断,而且是顺序增?br />
2.rank

SQL> select ename,sal,deptno,rank() over(partition by deptno order by sal) c from scott.emp;

ENAME            SAL DEPTNO          C
---------- --------- ------ ----------
MILLER       1300.00     10          1
CLARK        2450.00     10          2
KING         5000.00     10          3
SMITH         800.00     20          1
ADAMS        1100.00     20          2
JONES        2975.00     20          3
SCOTT        3000.00     20          4
FORD         3000.00     20          4
JAMES         950.00     30          1
MARTIN       1250.00     30          2
WARD         1250.00     30          2
TURNER       1500.00     30          4
ALLEN        1600.00     30          5
BLAKE        2850.00     30          6

14 rows selected

分析出的l果是蟩跃的Q如??则下一个是4

3.Dense_rank()

SQL> select ename,sal,deptno,Dense_rank() over(partition by deptno order by sal) c from scott.emp;

ENAME            SAL DEPTNO          C
---------- --------- ------ ----------
MILLER       1300.00     10          1
CLARK        2450.00     10          2
KING         5000.00     10          3
SMITH         800.00     20          1
ADAMS        1100.00     20          2
JONES        2975.00     20          3
SCOTT        3000.00     20          4
FORD         3000.00     20          4
JAMES         950.00     30          1
MARTIN       1250.00     30          2
WARD         1250.00     30          2
TURNER       1500.00     30          3
ALLEN        1600.00     30          4
BLAKE        2850.00     30          5

14 rows selected

分析出的l时有重复的Q与上面的区别是。重复后面的分析l果q是序增长

4.删掉数据库中重复的记?br />
delete from b a where a.rowid <>(select max(b.rowid) from b b where a.a=b.a) ;

思想为rowid是不可能重复的,不等于max一个的话,有一个等于数据被删掉



tobyxiong 2009-04-13 21:01 发表评论
]]>
利用oracle快照dblink解决数据库表同步问题http://m.tkk7.com/toby/archive/2009/04/12/265124.htmltobyxiongtobyxiongSun, 12 Apr 2009 07:48:00 GMThttp://m.tkk7.com/toby/archive/2009/04/12/265124.htmlhttp://m.tkk7.com/toby/comments/265124.htmlhttp://m.tkk7.com/toby/archive/2009/04/12/265124.html#Feedback0http://m.tkk7.com/toby/comments/commentRss/265124.htmlhttp://m.tkk7.com/toby/services/trackbacks/265124.html--1、在目的数据库上Q创建dblink
drop public database link dblink_orc92_182;
Create public DATABASE LINK dblink_orc92_182 CONNECT TO bst114 IDENTIFIED BY password USING 'orc92_192.168.254.111';
--dblink_orc92_182 是dblink_name
--bst114 ?username
--password ?password
--'orc92_192.168.254.111' 是远E数据库?/p>


--2、在源和目的数据库上创徏要同步的?最好有主键U束,快照才可以快速刷?
drop table test_user;
create table test_user(id number(10) primary key,name varchar2(12),age number(3));

--3、在目的数据库上Q测试dblink
select * fromtest_user@dblink_orc92_182;    //查询的是源数据库的表
select * from test_user;

--4、在源数据库上,创徏要同步表的快照日?br />Create snapshot log on test_user;

--5、创建快照,在目的数据库上创建快?br />Create snapshot sn_test_user as select * fromtest_user@dblink_orc92_182;

--6、设|快照刷新时?只能选择一U刷新方?推荐使用快速刷?q样才可以用触发器双向同?
快速刷?br />Alter snapshot sn_test_user refresh fast Start with sysdate next sysdate with primary key;
--oracle马上自动快速刷斎ͼ以后不停的刷?只能?a onclick="javascript:tagshow(event, '%B2%E2%CA%D4');" href="javascript:;" target="_self">时?真实目要正权衡刷新时?

完全h
Alter snapshot sn_test_user refresh complete Start with sysdate+30/24*60*60 next sysdate+30/24*60*60;
--oracle自动?0U后q行W一ơ完全刷斎ͼ以后每隔30U完全刷C?/p>

--7、手动刷新快?在没有自动刷新的情况?可以手动h快照.
手动h方式1
begin
dbms_refresh.refresh('sn_test_user');
end;

手动h方式2
EXEC DBMS_SNAPSHOT.REFRESH('sn_test_user','F'); //W一个参数是快照?W二个参?F 是快速刷?C 是完全刷?

--8.修改?x)话旉格?br />ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

--9.查看快照最后一ơ刷新时?br />SELECT NAME,LAST_REFRESH FROM ALL_SNAPSHOT_REFRESH_TIMES;

--10.查看快照下次执行旉
select last_date,next_date,what from user_jobs order by next_date;

--11.打印调试信息
dbms_output.put_line('use '||'plsql');

--12.如果你只惛_向同?那么在目的数据库创徏以下触发?当源数据库表改变?目的数据库表跟着改变,但目的数据库表改变时,源数据库表不改变).
create or replace trigger TRI_test_user_AFR
after insert or update or delete on sn_test_user
for each row
begin
if deleting then
      delete from test_user where id=:old.id;
end if;
if inserting then
      insert into test_user(id,name)
      values(:new.id,:new.name);
end if;
if updating then
     update test_user set name=:new.name where id=:old.id;
end if;
end TRI_test_user_AFR;

--13.如果你想双向同步,请在源数据库中执行前6?q在双方都创Z下触发器(当源数据库表改变?目的数据库表跟着改变,目的数据库表改变?源数据库表也改变)
CREATE OR REPLACE TRIGGER BST114.TRI_TEST_USER_AFR
AFTER DELETE OR INSERT OR UPDATE
ON BST114.SN_TEST_USER
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
    tmp_id number(10):=-1;
begin

dbms_output.put_line('begin');
if inserting then
      --select id into tmp_id from test_user where id=:new.id;   
      for p in(select id from test_user where id=:new.id)
      loop
        tmp_id:=p.id;
      end loop;
     
      dbms_output.put_line(tmp_id||'===------------');
      if (tmp_id=-1) then
          insert into test_user(id,name,age)
          values(:new.id,:new.name,:new.age);
      end if;
end if;

if updating then
     dbms_output.put_line('updated');
     for p in(select name,age from test_user where id=:old.id)
     loop
         if (p.name!=:new.name) or (p.age!=:new.age) then
              update test_user set name=:new.name,age=:new.age where id=:old.id;
         end if;
     end loop;
end if;

if deleting then
      dbms_output.put_line('deleted');
      delete from test_user where id=:old.id;
end if;
dbms_output.put_line('end');
end TRI_test_user_AFR;
--为防止双向同步触发器d@?所以要在触发器中增加一些判?Ld@?

--以上同步原理
1.首先创徏一个dblink,可以讉Kq程数据?br />2.在本地创Z个快?映射q程数据?当远E数据表有变化时,?x)反应到快照?
3.׃快照cM于视图表,所以在本地为快照创Z个触发器,当快照有变化??x)触发相应事?
4.在触发器中写同步数据的代?

--?快照h旉参数说明
一天的U数=24时*60分钟*60?br />所以要惛_30U后h,参数应该q样?sysdate+30/(24*60*60)
1分钟==sysdate+60/(24*60*60)

一天的分钟?24时*60分钟
一分钟也可以这样写 sysdate+1/(24*60)
30分钟==sysdate+30/(24*60)
60分钟==sysdate+60/(24*60)

以此cL
1时==sysdate+1/24==sysdate+60/(24*60)
1?=sysdate+1
一个月==sysdate+30



tobyxiong 2009-04-12 15:48 发表评论
]]>
oracle中字D늱型修?/title><link>http://m.tkk7.com/toby/archive/2009/04/12/265112.html</link><dc:creator>tobyxiong</dc:creator><author>tobyxiong</author><pubDate>Sun, 12 Apr 2009 05:57:00 GMT</pubDate><guid>http://m.tkk7.com/toby/archive/2009/04/12/265112.html</guid><wfw:comment>http://m.tkk7.com/toby/comments/265112.html</wfw:comment><comments>http://m.tkk7.com/toby/archive/2009/04/12/265112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/toby/comments/commentRss/265112.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/toby/services/trackbacks/265112.html</trackback:ping><description><![CDATA[ <div id="cqcquwu" class="tit">oracle 修改字段cd</div> <div id="2coqc2c" class="date">2009-02-02 17:33</div> <table style="TABLE-LAYOUT: fixed"> <tbody> <tr> <td> <div id="ygs44au" class="cnt" id="blog_text"> <p>今天公司因ؓ(f)业务需?修要修改某个字段数据cd有number(5),变ؓ(f)number(5,2)?/p> <p>要是没有数据的话直接用以下语句即?/p> <p> <font color="#ff0000">alter   table tb_test modify permile number(5,2);</font> </p> <p>但是有数据的?׃能用上面Ҏ(gu)?</p> <p> <font color="#ff0000">alter table tb_test add permile_temp number(5,2)</font> </p> <p> <font color="#ff0000">update tb_test set permile_temp=permile;</font> </p> <p> <font color="#ff0000">alter table drop column permile;</font> </p> <p> <font color="#ff0000">alter table test rename column permile_temp to permile;</font> </p> <p>q种Ҏ(gu)?x)列名发生变?而且字段序增加 有可能发生行q移,对应用程序会(x)产生影响</p> <p>以下Ҏ(gu)是比较好的方?/p> <p>不用使列名发生变?也不?x)发生表q移,但这个有个缺Ҏ(gu)表要更新两次</p> <p>如果数据量较大的?产生的undo和redo更多 ,前提也是要停机做</p> <p>要是不停机的?,也可以采用在UK定义方式来做 </p> <p>以下是脚?</p> <font color="#ff0000"> <p> <font color="#ff0000">alter table b add ccc varchar2(15);<br />update b set ccc=cc;<br />alter table b drop column cc;<br />alter table b rename column ccc to cc; <br />update b set cc='0000'||cc;<br />select * from b;<br />update b set cc='2'||cc;<br />update b set cc=substr(cc,1,1)||substr(cc,-3);</font> <br /> <br />l表dU束<br />alter table parent<br />add constraint test primary key(name)</p> </font> </div> </td> </tr> </tbody> </table> <img src ="http://m.tkk7.com/toby/aggbug/265112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/toby/" target="_blank">tobyxiong</a> 2009-04-12 13:57 <a href="http://m.tkk7.com/toby/archive/2009/04/12/265112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://yhanalati.com" target="_blank">Ļֻ </a>| <a href="http://zjpcyh.com" target="_blank">޾Ʒվ</a>| <a href="http://tiantiantegou.com" target="_blank">99ƵоƷƵѹۿ</a>| <a href="http://yiuzz.com" target="_blank">žžۺAVһ</a>| <a href="http://s8sb.com" target="_blank">һëƬڵȫ</a>| <a href="http://zisewang.com" target="_blank">޹Ʒ۲ӰԺþ</a>| <a href="http://asdfghjklzxcv.com" target="_blank">˳Ƶ߹ۿ</a>| <a href="http://18yinren.com" target="_blank">AV֮պƷ</a>| <a href="http://26uuyy.com" target="_blank">ƷƵ</a>| <a href="http://91xqq.com" target="_blank">ۺɫ¶</a>| <a href="http://w7759.com" target="_blank">ƷƵһ</a>| <a href="http://bznys.com" target="_blank">ۺϾþϵ</a>| <a href="http://guakao88.com" target="_blank">ƷѦvƵ</a>| <a href="http://tmg-beelen.com" target="_blank">޾ƷƷ߹ۿ</a>| <a href="http://8884493.com" target="_blank">Ļ˳й</a>| <a href="http://aqddv.com" target="_blank">ۺav뾫Ʒһ</a>| <a href="http://muguangmi.com" target="_blank">þĻ</a>| <a href="http://3baimm.com" target="_blank">ձĻһ </a>| <a href="http://aiwoqi.com" target="_blank">޳˸վ</a>| <a href="http://mcsser.com" target="_blank">߲˳Ƶ߹ۿ</a>| <a href="http://haichuanwangluo.com" target="_blank">޸</a>| <a href="http://6609929.com" target="_blank">˳߹ۿվƵ</a>| <a href="http://gdjiayou.com" target="_blank">Ӱ߹ۿ</a>| <a href="http://avdaka.com" target="_blank">AV볱߹ۿ</a>| <a href="http://assbjg.com" target="_blank">վƵ</a>| <a href="http://8fue.com" target="_blank">޹ŷһ</a>| <a href="http://57fi.com" target="_blank">޾ƷƬ߹ۿ</a>| <a href="http://xmmn77.com" target="_blank">ձһƷƵ</a>| <a href="http://22nee.com" target="_blank">99|</a>| <a href="http://cn-zggx.com" target="_blank">AV߹ۿɫ </a>| <a href="http://5gi555.com" target="_blank">ѹۿƵ</a>| <a href="http://zuche001.com" target="_blank">츾V߲</a>| <a href="http://se988.com" target="_blank">ҹav뾫Ʒ</a>| <a href="http://19933k.com" target="_blank">ľƷ</a>| <a href="http://2499m.com" target="_blank">һƵ</a>| <a href="http://xjyzz.com" target="_blank">޸һ</a>| <a href="http://52xdc.com" target="_blank">ѲƵ</a>| <a href="http://3333seav.com" target="_blank">ĻۺϾþ</a>| <a href="http://8xxon8.com" target="_blank">Ʒۺ</a>| <a href="http://cao9999.com" target="_blank">պƷһ </a>| <a href="http://sczxzt.com" target="_blank">ۺɫ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>