純好人不用打:白羊
沒(méi)人防:雙子(迷宮)、天平(卡妙的冰箱)、射手(迷宮)
打死:巨蟹(紫龍)、山羊(紫龍自曝)、雙魚(阿瞬)、水瓶(冰河)
沒(méi)打過(guò),放水:獅子(星矢)、天蝎(冰河)、金牛(星矢)、處女(一輝)
這樣看來(lái)紫龍是最NB的,一個(gè)人干掉2個(gè),而且靠他師傅走后門天平不用打,還用天平的武器救了冰河。
冰河和他師傅干了2仗
冰河那段也挺NB,先是在天平被凍個(gè)半死,然后在天蝎被針扎個(gè)半死,最后到了水瓶還能把他師傅干掉
冰河和他師傅是最體現(xiàn)實(shí)力的一仗,純實(shí)力對(duì)扣
合著星矢誰(shuí)也沒(méi)殺,就TM來(lái)打醬油的。。。
簡(jiǎn)單過(guò)一遍,詳細(xì)的以后遇到慢慢研究。
主要的更新在幾個(gè)方面:
1. OUI的改進(jìn)
2. Oracle Restart
3. ASM的增強(qiáng)!!!
New Grid Infrastructure Installation Option
?1. 單點(diǎn)包括:ASM、listener和Oracle Restart(監(jiān)控、管理并自動(dòng)重啟各個(gè)組件)
?2. 集群包括:ASM、listener和Clusterware
New Desktop and Server Class Options?1. Desktop Class:適用于筆記本、臺(tái)式機(jī)
?2. Server Class:適用于服務(wù)器(功能上沒(méi)區(qū)別,多一些高級(jí)配置選項(xiàng))
Daylight Savings Time Upgrade of Timestamp with Timezone Data Type?新的DBMS_DST包,優(yōu)化對(duì)TIMESTAMP WITH TIMEZONE數(shù)據(jù)的管理
SYSASM Privilege?管理ASM需要SYSASM權(quán)限,旨在分清ASM管理和DB管理
Fixup Scripts and Prerequisite Checks?安裝前檢查時(shí),如果遇到不符合要求的配置,OUI會(huì)對(duì)一些檢查項(xiàng)自動(dòng)生成fixup腳本,用root執(zhí)行就可以解決相應(yīng)問(wèn)題。
New Tool to Configure Custom Installation Options?OUI不在提供對(duì)單個(gè)組件的配置功能,如果需要只能用$ORACLE_HOME/bin/chopt命令行進(jìn)行配置。
我想Oracle的趨勢(shì)就是為了讓更多已經(jīng)成熟的配置自動(dòng)化,簡(jiǎn)化使用。Deinstallation Tool?OUI不再用來(lái)刪除oracle軟件,請(qǐng)使用$ORACLE_HOME/deinstall
Intelligent Data Placement?指定ASM磁盤的磁盤范圍,旨在將高頻訪問(wèn)的數(shù)據(jù)放在HOT region(比如磁盤的外道)
Oracle Automatic Storage Management Cluster File System (Oracle ACFS)?為其它文件提供ASM的存儲(chǔ)功能
Data Pump Export and Data Pump Import?Data Pump兼容Export/Import
Use Oracle Restart to Automatically Restart Your Database?1. 針對(duì)單點(diǎn)環(huán)境
?2. 自動(dòng)重啟又問(wèn)題的組件,如:db instance、listener、asm instance
New Method of Installing Oracle Automatic Storage Management?以前,ASM的安裝是伴隨著DB的安裝;現(xiàn)在是伴隨著Software的安裝。
?其實(shí),就是把ASM上升到一個(gè)軟件的高度(以前只是db的一個(gè)組件)
SRVCTL Support for Single Instance Database in a Cluster?SRVCTL統(tǒng)一管理單點(diǎn)(with Restart)和集群數(shù)據(jù)庫(kù)(with Clusterware)
Deprecated in Oracle Database 11g Release 2?不支持裸設(shè)備了:要么用文件系統(tǒng)、要么用ASM,說(shuō)白了,
企業(yè)環(huán)境就必須用ASM?不支持Oracle Ultra Search(9i的一個(gè)什么鳥功能)
重裝完系統(tǒng),mysql不需要重裝,直接當(dāng)綠色版使用,還更干凈
//啟動(dòng)MYSQL
cd $MYSQL_HOME/bin
D:\JAVA\MYSQL\mysql-5.1.53-win32\bin>
mysqld --console??????
110616? 1:26:26 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
110616? 1:26:26? InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
110616? 1:26:26? InnoDB: Started; log sequence number 0 44233
110616? 1:26:27 [Note] Event Scheduler: Loaded 0 events
110616? 1:26:27 [Note] mysqld: ready for connections.
Version: '5.1.53-community'? socket: ''? port: 3306? MySQL Community Server (GPL
)
//簡(jiǎn)單使用mysql>
show databases;
+--------------------+
| Database?????????? |
+--------------------+
| information_schema |
| mysql????????????? |
| test?????????????? |
+--------------------+
3 rows in set (0.03 sec)
mysql>
use mysqlDatabase changed
mysql>
show tables;+---------------------------+
| Tables_in_mysql?????????? |
+---------------------------+
| columns_priv????????????? |
| db??????????????????????? |
| event???????????????????? |
| func????????????????????? |
| general_log?????????????? |
| help_category???????????? |
| help_keyword????????????? |
| help_relation???????????? |
| help_topic??????????????? |
| host????????????????????? |
| ndb_binlog_index????????? |
登陸D:\JAVA\MYSQL\mysql-5.1.53-win32\bin>mysql.exe -uroot
創(chuàng)建數(shù)據(jù)庫(kù)mysql> create database testdb;
--主鍵是非分區(qū)索引,也可以看作是全局
create table test_par1
(
? tdate?? varchar2(8)
primary key)
partition by range ( tdate )
(
???? partition p1 values less than ('20090201'),
???? partition p2 values less than ('20090301'),
???? partition pm values less than (MAXVALUE) ?
) tablespace test;
--主鍵是分區(qū)索引create table test_par2
(
? tdate?? varchar2(8)
)
partition by range ( tdate )
(
???? partition p1 values less than ('20090201'),
???? partition p2 values less than ('20090301'),
???? partition pm values less than (MAXVALUE) ?
) tablespace test;
create index i_tdate2 on test_par2(tdate)
local;
alter table test_par2
add constraint pk_tdate2
primary key(tdate);
--查看test_par2的DDL
select dbms_metadata.get_ddl( 'TABLE', 'TEST_PAR2' ) from dual;
--整理如下create table test_par3
(
? tdate?? varchar2(8),
? constraint pk_tdate3 primary key (tdate)
using index local)
partition by range ( tdate )
(
???? partition p1 values less than ('20090201'),
???? partition p2 values less than ('20090301'),
???? partition pm values less than (MAXVALUE) ?
) tablespace test;
這個(gè)案例也告訴我們,在做DDL時(shí),盡量還是顯示的寫出屬性,一些簡(jiǎn)易語(yǔ)法會(huì)引起不可知的定義。最后都用 get_ddl 再查一下,這才是Oracle真正執(zhí)行的DDL。
列出所有實(shí)例
[db2inst1@dcm ~]$ db2ilist
db2inst1
列出當(dāng)前實(shí)例下的所有數(shù)據(jù)庫(kù)[db2inst1@dcm ~]$ db2 list db directory
?System Database Directory
?Number of entries in the directory = 1
Database 1 entry:
?Database alias?????????????????????? = SAMPLE
?Database name??????????????????????? = SAMPLE
?Local database directory???????????? = /home/db2inst1
?Database release level?????????????? = d.00
?Comment????????????????????????????? =
?Directory entry type???????????????? = Indirect
?Catalog database partition number??? = 0
?Alternate server hostname??????????? =
?Alternate server port number???????? =
啟動(dòng)實(shí)例[db2inst1@dcm ~]$ db2start
07/09/2010 14:24:36???? 0?? 0?? SQL1063N? DB2START processing was successful.
SQL1063N? DB2START processing was successful.
連接到數(shù)據(jù)庫(kù)[db2inst1@dcm ~]$ db2 connect to sample
?? Database Connection Information
?Database server??????? = DB2/LINUX 9.7.1
?SQL authorization ID?? = DB2INST1
?Local database alias?? = SAMPLE
執(zhí)行SQL[db2inst1@dcm ~]$ db2
db2 => select * from staff where dept=20
ID???? NAME????? DEPT?? JOB?? YEARS? SALARY??? COMM??? ?
------ --------- ------ ----- ------ --------- ---------
??? 10 Sanders?????? 20 Mgr??????? 7? 98357.50???????? -
??? 20 Pernal??????? 20 Sales????? 8? 78171.25??? 612.45
??? 80 James???????? 20 Clerk????? -? 43504.60??? 128.20
?? 190 Sneider?????? 20 Clerk????? 8? 34252.75??? 126.50
? 4 record(s) selected.
退出db2 => quit
DB20000I? The QUIT command completed successfully.
斷開(kāi)連接(不斷開(kāi)就不能db2stop)[db2inst1@dcm ~]$ db2 connect reset
DB20000I? The SQL command completed successfully.
關(guān)閉實(shí)例[db2inst1@dcm ~]$ db2stop
07/09/2010 14:29:32???? 0?? 0?? SQL1064N? DB2STOP processing was successful.
SQL1064N? DB2STOP processing was successful.
最近初探了一下DB2,發(fā)現(xiàn)關(guān)于“數(shù)據(jù)庫(kù)”、“實(shí)例”的概念及其關(guān)系容易把人弄暈,這里小小總結(jié)一下,并把Oracle也拉進(jìn)來(lái)一起整。
另外,發(fā)現(xiàn)Oracle和IBM老搞一些理論上就針鋒相對(duì)的事情,如RAC vs DPF (database partitioning feature),很是有趣。
基本概念還是相同的
數(shù)據(jù)庫(kù)軟件(下面簡(jiǎn)稱軟件):軟件本身,一臺(tái)主機(jī)安裝一套就可以了。(拋開(kāi)你故意在一臺(tái)服務(wù)器上安裝2遍Oracle/DB2這種不正常思維)
實(shí)例:數(shù)據(jù)庫(kù)
軟件啟動(dòng)后的“進(jìn)程+內(nèi)存”
軟件+實(shí)例的關(guān)系:一臺(tái)電腦只需要按照一套QQ(軟件),但是我們可以多用戶登錄(實(shí)例)。換到哲學(xué)的角度,就是抽象和具體的關(guān)系。
數(shù)據(jù)庫(kù)(狹義,下面簡(jiǎn)稱庫(kù)):一堆文件(數(shù)據(jù)文件、控制文件、日志文件、參數(shù)文件)
它和軟件的區(qū)別:軟件是廠商賣給你的東西;
庫(kù)是你自己的東西(業(yè)務(wù)、應(yīng)用)
它和實(shí)例的關(guān)系:用戶需要借助實(shí)例(所提供的各種手段)來(lái)訪問(wèn)
庫(kù)庫(kù)就相當(dāng)于是QQ聊天記錄
最后:數(shù)據(jù)庫(kù)(廣義)= 軟件 + 實(shí)例 + 庫(kù)一臺(tái)服務(wù)器(即一套數(shù)據(jù)庫(kù)軟件)可以建多個(gè)實(shí)例,多個(gè)庫(kù),且互不相干
體系結(jié)構(gòu)的不同之處Oracle? 實(shí)例和庫(kù)一一對(duì)應(yīng)
DB2???? 一個(gè)實(shí)例可以掛多個(gè)庫(kù)
高級(jí)情況(簡(jiǎn)單提一下,以后再慢慢研究)Oracle:RAC一個(gè)庫(kù)被多個(gè)實(shí)例掛
DB2:DPF一個(gè)實(shí)例多個(gè)庫(kù)
在數(shù)據(jù)庫(kù)集群模式設(shè)計(jì)方面,有Share everything架構(gòu)和Share nothing架構(gòu),前者以O(shè)RACLE RAC為代表,IBM DB2 Purescale為挑戰(zhàn)者;后者以IBM DB2 DPF為代表。
行鏈接:
1. 一條記錄的大小大于block size,則產(chǎn)生行鏈接
2. 容易發(fā)生在比較大的行上
3. 因?yàn)樾墟溄邮怯蒬b_block_size不夠大引起的,所以對(duì)已有的行鏈接是無(wú)法清除的
4. 9i以后,可以對(duì)不同的表空間設(shè)置不同的db_block_size,可以將一些特殊的寬表放在大block size的表空間
例子:
表空間block size為8k(8192),因?yàn)閿?shù)據(jù)塊頭也要占一定空間,所以如下例,實(shí)際只能放7948的數(shù)據(jù),一旦超過(guò),就產(chǎn)生行鏈接
--無(wú)
create table test7948(a char(2000),b char(2000),c char(2000),d char(1948))
tablespace test;
insert into test7948 values('a','b','c','d');
commit;
--有
create table test7949(a char(2000),b char(2000),c char(2000),d char(1949))
tablespace test;
insert into test7949 values('a','b','c','d');
commit;
行遷移:1. 本來(lái)是放的下的
2. 因?yàn)楦率箁ow size變大了,一個(gè)block里又不足以放下增加的空間(PCTFREE相關(guān)),則產(chǎn)生行遷移
3. 容易發(fā)生在PCTFREE較小,對(duì)類似varchar類型的update又很多的表上
4. 無(wú)法避免,但通過(guò)把數(shù)據(jù)導(dǎo)出導(dǎo)入進(jìn)行清除
例子:
--無(wú)
create table test7948_vchar(a char(2000),b char(2000),c char(2000),d char(1940), e varchar(9))
tablespace test;
insert into test7948_vchar values('a','b','c','d','12345678');
commit;
一更新,使得row size大于7948了,產(chǎn)生行遷移
--有
update test7948_vchar set e='123456789'
隨著Oracle收購(gòu)SUN,今天又爆出SAP收購(gòu)Sybase的大料。
現(xiàn)狀:
Oracle和IBM已經(jīng)成為諾亞方舟級(jí)的廠商,啥都有。
微軟,SAP成為航母級(jí)的廠商,軟件方面啥都有,但目前沒(méi)有硬件。
猜想:who's next? Dell? HP?
不然微軟把Dell收了吧,組成BDll公司;
然后SAP和HP合并為SHP
--創(chuàng)建一個(gè)大一點(diǎn)的TEMP表空間
create temporary tablespace temp1
tempfile '/oracledatafile/temp01.dbf' SIZE 100m autoextend on next 100m maxsize 5000m;
?
--切換默認(rèn)TEMP表空間
alter database default temporary tablespace temp1;
--刪掉以前的TEMP表空間
drop tablespace temp including contents and datafiles;
1. 物化視圖由于是物理真實(shí)存在的,故可以創(chuàng)建索引。
--為基表創(chuàng)建MLOG
--創(chuàng)建物化視圖時(shí)應(yīng)先創(chuàng)建存儲(chǔ)的日志空間,否則建MV時(shí)報(bào)錯(cuò)
--ORA-23413: table "SCOTT"."EMP" does not have a materialized view log
create materialized view log on
scott.emptablespace test
/
--創(chuàng)建物化視圖create materialized view test_mv
tablespace test
parallel (degree 4)
build immediate refresh fast
enable query rewrite
as
select * from
scott.emp/
--查看一下結(jié)果,果然很符合物化視圖的定義,一個(gè)表+一個(gè)視圖SQL> select object_name, object_type from user_objects where object_name = 'TEST_MV';
OBJECT_NAME??? OBJECT_TYPE
-----------??? --------
TEST_MV??? ??? TABLE
TEST_MV??? ??? MATERIALIZED VIEW
SQL> select mview_name, container_name from user_mviews;
MVIEW_NAME?????? CONTAINER_NAME
---------------- ------------------------------
TEST_MV????????? TEST_MV?
(這就是那個(gè)存儲(chǔ)表)--查看MLOG的情況--注意:MLOG的所屬和MV的所屬并不是同一個(gè)SQL> select log_owner, master, log_table from dba_mview_logs
LOG_OWNER??? MASTER??? LOG_TABLE
---------------------------------
SCOTT??? ??? EMP??? MLOG$_EMP
(MLOG其實(shí)也就是一個(gè)表)SQL> desc scott.
mlog$_emp;
Name??? ??? ??? Type
-------------------------------
EMPNO??? ??? ??? NUMBER(4)
SNAPTIME$$??? ??? DATE
DMLTYPE$$??? ??? VARCHAR2(1)
OLD_NEW$$??? ??? VARCHAR2(1)
CHANGE_VECTOR$$??? ??? RAW(255)
--刪除MLOGdrop materialized view log on 物化視圖所依賴的表名;?
--刪除物化視圖drop materialized view 物化視圖名;