隨筆 - 12, 文章 - 0, 評(píng)論 - 5, 引用 - 0
          數(shù)據(jù)加載中……

          esxi 中兩臺(tái)vesx vmkernel不能通信

          在一臺(tái)DELL R710上安裝了esxi5.0,并部署了兩臺(tái)esxi5.0的VM,名為vesxA,vesxB.

          并在兩臺(tái)vesx上分別創(chuàng)建了vmkernel,連接到同一vSwitch,完成后,發(fā)現(xiàn)兩臺(tái)vesx間不能用vmkernel通信。

           

          后請(qǐng)教有經(jīng)驗(yàn)的同事,說(shuō)是虛中虛需要在vSwitch中開(kāi)啟 混雜模式,經(jīng)測(cè)試問(wèn)題解決。

           

          但是為什么呢?

           

          請(qǐng)教高人得出答案:

           

          由于vSwitch中的MAC TABLE記錄只能從虛擬機(jī)的.vmx文件中讀取。而.vmx中記錄的MAC是虛擬機(jī)的網(wǎng)卡的MAC,當(dāng)我們新建了一個(gè)vmkernel port后,生成的MAC并沒(méi)有寫(xiě)入.vmx。所以當(dāng)vSwitch 收到關(guān)于vmkernel port后,發(fā)現(xiàn)沒(méi)有相關(guān)MAC記錄,就會(huì)把包丟棄。

          有人會(huì)問(wèn),交換機(jī)不是有Flooding功能么?

          估計(jì)是由于vSwitch節(jié)省資源開(kāi)銷(xiāo)的原因,沒(méi)有使用這個(gè)功能,所以這個(gè)時(shí)候就需要打開(kāi)混雜模式,將vSwitch變成vHUB.

          posted @ 2012-07-26 22:36 拼搏 閱讀(2022) | 評(píng)論 (1)編輯 收藏

          Suse Linux開(kāi)啟FTP服務(wù)

          一、配置/etc/vsftpd.conf文件

           

          1、vi /etc/vsftpd.conf

           

          2、修改如下配置項(xiàng)

           

           anonymous_enable=YES  改成 anonymous_enable=NO   // 不啟用匿名訪(fǎng)問(wèn)

           

           #local_enable=YES           改成 local_enable=YES             // 開(kāi)啟本地用戶(hù)登錄服務(wù)

           

           #write_enable=YES          改成 write_enable=YES            // 開(kāi)啟任何用戶(hù)的寫(xiě)權(quán)限

           

          二、配置/etc/ftpusers文件

           

          1、vi  /etc/ftpusers

           

          2、該文件中列出的用戶(hù)是禁止使用FTP登錄的,如果要使這些用戶(hù)通過(guò)FTP登錄,在用戶(hù)前面加上#

           

          三、重啟FTP服務(wù)

           
          service vsftpd restart

          posted @ 2012-07-26 22:35 拼搏 閱讀(9497) | 評(píng)論 (0)編輯 收藏

          Myeclipse啟動(dòng)不了的解決方法

             我們?cè)陂_(kāi)發(fā)過(guò)程中經(jīng)常在加載大工程時(shí)由于項(xiàng)目很大,導(dǎo)致編譯時(shí)間很長(zhǎng)。或是其他原因?qū)е逻M(jìn)度條有時(shí)候一直在不停地跑,占用了大量?jī)?nèi)存,在無(wú)奈之下直接將進(jìn)程kill掉,當(dāng)再次打開(kāi),這時(shí)候悲劇的事情發(fā)生了 。 
              發(fā)現(xiàn)MyEclipse啟動(dòng)不了了,進(jìn)程的內(nèi)存大小永遠(yuǎn)都是恒定值。陷入了一個(gè)糾結(jié)中。 

          這里就說(shuō)一下在工作經(jīng)常遇到這樣的問(wèn)題是怎樣解決的: 

          環(huán)境說(shuō)明 
          IDE版本: Myecplise6.0(其他版本方法相同) 
          安裝路徑:D:\dev_IDE\myeclipse 
          工作空間:D:\dev_IDE\myeclipse\workspace 

          方法一:修改工作空間 
              在剛啟動(dòng)Myeclipse的時(shí)候會(huì)有一個(gè)選擇工作空間的地方。換一個(gè)新的工作空間即可,若是原來(lái)將默認(rèn)工作空間勾中了,沒(méi)有出來(lái),就去你的MyEclipse安裝路徑中(如:D:\dev_IDE\myeclipse\eclipse\configuration\.settings),里面有個(gè)org.eclipse.ui.ide.prefs文件,將里面的SHOW_WORKSPACE_SELECTION_DIALOG修改為true即可。 
              這樣做有個(gè)壞處,就是需要你重新import你的工程,需要重新編譯,需要你養(yǎng)成經(jīng)常備份的習(xí)慣。 

          方法二:刪除錯(cuò)誤編譯信息 
              這個(gè)方法最近才發(fā)現(xiàn),當(dāng)你由于在編譯工程期間將進(jìn)程kill掉以后,就會(huì)有編譯加載“內(nèi)容”出錯(cuò),導(dǎo)致在啟動(dòng)的時(shí)候無(wú)法解析這個(gè)“內(nèi)容”,所以要將該內(nèi)容清除。如,當(dāng)你的工程名為“TestProject”,在安裝文件夾中(D:\dev_IDE\myeclipse\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects\TestProject),有兩個(gè)文件.markers和.markers.snap,將這兩個(gè)文件刪除。重啟Myeclipse,OK了。  

          posted @ 2012-07-26 22:34 拼搏 閱讀(30023) | 評(píng)論 (3)編輯 收藏

          三十而立的人生準(zhǔn)則,會(huì)有更新

          第一條: 
              學(xué)習(xí)是和我的社會(huì)地位、收入等掛鉤,學(xué)習(xí)是一種最好的投資。 
          第二條: 
              時(shí)間管理不是讓我在有限的時(shí)間里面做更多的事,而是讓我在把時(shí)間都放在有投資時(shí)間里面,去掉不必要做的事,做有投資價(jià)值的事(就是很重要但不緊急的事)。比如:鍛煉身體,每天鍛煉一小時(shí),健康快樂(lè)生活一輩子,幸福一輩人。 
          第三條: 
              這個(gè)世界上不是什么事情都是非黑既白,有很多灰色地帶的,為生存有時(shí)還會(huì)踩界。 
          第四條: 
              in:out=1:1 

          posted @ 2012-07-21 22:24 拼搏 閱讀(1250) | 評(píng)論 (0)編輯 收藏

          與JDK奮斗的一上午

          話(huà)說(shuō)本人也是手欠啊,操作系統(tǒng)是Win7的前幾天無(wú)法識(shí)別自己的移動(dòng)硬盤(pán),于是我就還原系統(tǒng)了,JDK安裝在D盤(pán)。當(dāng)時(shí)還原完就直接將以前安裝在D盤(pán)的程序文件夾全部刪除了。 
          然后就是各位熟知的悲劇了,無(wú)論怎么重新安裝都不行了,我也把注冊(cè)表里面幾乎所有的方法都嘗試過(guò)了,都不行。查看了網(wǎng)上。總結(jié)來(lái)看有以下幾種“偏方”: 
          1、刪除注冊(cè)表里面所有和Java相關(guān)的表項(xiàng) ---------事實(shí)上我試過(guò)了,但是很不幸,我把有Java的都刪了大半,但是我這里沒(méi)用 

          2、關(guān)閉windows的windows installer功能打開(kāi)命令行 ,輸入msiexec /unregserver 
          重新下載一個(gè) windows installer,重新安裝一遍然后再啟用就好了                 再輸入msiexec /regserver 

          3、什么360啊,完美卸載啊都無(wú)法刪除。 

          4、這就是大救星啊...去下一個(gè)window  installer  clean up ,打開(kāi)軟件,然后把里面關(guān)于JDK的項(xiàng)刪除。 

          終于可以重新安裝JDK了。  

          posted @ 2012-07-21 22:24 拼搏 閱讀(1209) | 評(píng)論 (0)編輯 收藏

          設(shè)計(jì)模式--狀態(tài)模式(State)

          前幾天由于忙工作上的事情,每天加班到10點(diǎn)左右才回家,回到家就沒(méi)有再開(kāi)電腦更新東西,今天早了一些回家,開(kāi)始繼續(xù)更新東西,今天要寫(xiě)的是狀態(tài)模式,哦,對(duì)于一個(gè)沒(méi)有狀態(tài)的人來(lái)說(shuō),寫(xiě)狀態(tài)模式,不知道會(huì)寫(xiě)成什么樣子,反正是一起討論用嘛,能把我所知道的清楚表達(dá)出來(lái)已經(jīng)很心滿(mǎn)意足啦。在理解狀態(tài)模式的時(shí)候,我總覺(jué)得它和策略模式很像很像,有人說(shuō)它們是孿生兄弟,那我們現(xiàn)在看看狀態(tài)模式到底是一個(gè)什么樣的東西。

          狀態(tài)模式是對(duì)象的一個(gè)行為模式,它允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變的時(shí)候改變其行為,這個(gè)對(duì)象看上去就像改了了它的類(lèi)一樣。

          下圖是關(guān)于紅綠燈轉(zhuǎn)換的一個(gè)實(shí)現(xiàn)類(lèi)圖,具體的轉(zhuǎn)換是這樣子的,在初始的情況下,設(shè)定一個(gè)燈的狀態(tài),比如是綠燈,那么燈的下一個(gè)狀態(tài)則是黃燈,緊接著是紅燈,然后再是綠燈,依次循環(huán);通過(guò)改變燈的狀態(tài),改變其行為。

          下面是這個(gè)類(lèi)圖的實(shí)現(xiàn)代碼:

          package com.plabmedia.state;

          public interface LightState {

          /**
          * 打印當(dāng)前的狀態(tài)
          */
          public void print(Light light);

          }

          package com.plabmedia.state;

          public class RedLight implements LightState{

          @Override
          public void print(Light light) {
          System.out.println("current state is red");
          light.setState(new GreenLight());
          }

          }

          package com.plabmedia.state;

          public class YellowLight implements LightState{

          @Override
          public void print(Light light) {
          System.out.println("current state is yellow");
          light.setState(new RedLight());
          }

          }

          package com.plabmedia.state;

          public class GreenLight implements LightState {

          @Override
          public void print(Light light) {
          System.out.println("current state is green");
          light.setState(new YellowLight());
          }

          }

          package com.plabmedia.state;

          public class Light {

          private LightState state;

          public LightState getState() {
          return state;
          }

          public void setState(LightState state) {
          this.state = state;
          }

          public void print(){
          state.print(this);
          }

          public Light(LightState state){
          this.state = state;
          }

          }

          package com.plabmedia.state;

          public class Client {

          public static void main(String args[]){
          Light light = new Light(new GreenLight());
          light.print();
          light.print();
          light.print();
          light.print();
          light.print();
          light.print();
          }

          }

          運(yùn)行結(jié)果:

          current state is green
          current state is yellow
          current state is red
          current state is green
          current state is yellow
          current state is red

          上面是對(duì)狀態(tài)模式一個(gè)小小的實(shí)現(xiàn),這個(gè)實(shí)現(xiàn)也僅僅是認(rèn)識(shí)級(jí)的,在我們實(shí)際應(yīng)用中,如果用到狀態(tài)模式,應(yīng)該比這個(gè)要負(fù)責(zé)的多,只是基本的結(jié)構(gòu)是相似的。那我們下面針對(duì)狀態(tài)模式做一些討論。

          1.在什么情況下使用狀態(tài)模式:

          • 一個(gè)對(duì)象的行為依賴(lài)于它所處的狀態(tài),對(duì)象的行為必須隨著其狀態(tài)的改變而改變;
          • 需要多多重條件轉(zhuǎn)移語(yǔ)句進(jìn)行演化的時(shí)候,可以把每個(gè)分支封裝成一個(gè)狀態(tài)類(lèi);現(xiàn)在寫(xiě)代碼的時(shí)候,我是不太喜歡用條件轉(zhuǎn)移語(yǔ)句,特別是最好的那個(gè)else語(yǔ)句,我覺(jué)得它承擔(dān)的東西太多了,前面不滿(mǎn)足的情況它都要來(lái)處理,憑什么啊。
          2.狀態(tài)模式要注意的地方:
          • 誰(shuí)來(lái)定義狀態(tài)的變化:客戶(hù)端還是狀態(tài)內(nèi)部決定?這要看當(dāng)時(shí)應(yīng)用的環(huán)境,如果狀態(tài)的變化是固定的,我覺(jué)得可以再客戶(hù)端進(jìn)行設(shè)定;如果狀態(tài)的變化依賴(lài)于前一個(gè)狀態(tài),比如在工作流系統(tǒng)中,當(dāng)前狀態(tài)是依賴(lài)于前一個(gè)狀態(tài)的,這需要狀態(tài)內(nèi)部來(lái)覺(jué)得。
          • 狀態(tài)對(duì)象創(chuàng)建時(shí)機(jī):需要的時(shí)候創(chuàng)建?還是事先創(chuàng)建好所有的對(duì)象,供需要的時(shí)候調(diào)用?這要分系統(tǒng)需要來(lái)決定,如果一個(gè)系統(tǒng),狀態(tài)變化的順序固定,不那么頻繁,則可以在需要的時(shí)候創(chuàng)建所需要的對(duì)象;否則,對(duì)于頻繁變化的狀態(tài),從性能上將,還是首先創(chuàng)建好各個(gè)狀態(tài)對(duì)象,供需要時(shí)調(diào)用。
          • 可以把環(huán)境類(lèi)傳到具體的狀態(tài)類(lèi)中,狀態(tài)類(lèi)在需要的時(shí)候調(diào)用環(huán)境類(lèi),比如示例中的樣子,其實(shí)在每個(gè)狀態(tài)類(lèi)里面,也可以直接調(diào)用環(huán)境類(lèi)的print方法,這樣看來(lái),Client只需要初始化環(huán)境類(lèi),然后就可以看到它的狀態(tài)在不停地變化。
          3.狀態(tài)模式與策略模式的區(qū)別:
          我粗俗的說(shuō)一些,從我的理解的基礎(chǔ)上,二者之間的區(qū)別在于狀態(tài)模式在集體作戰(zhàn),而策略模式是單兵作戰(zhàn),怎么說(shuō)呢?狀態(tài)模式因?yàn)槠鋬?nèi)部狀態(tài)的改變會(huì)有不同的行為出現(xiàn),而對(duì)于策略模式,只要客戶(hù)端選中了一種策略,在整個(gè)生命周期內(nèi),都是這種策略。所以,在區(qū)分使用狀態(tài)模式和策略模式的時(shí)候,主要是看系統(tǒng)有沒(méi)有狀態(tài)的變化,如果系統(tǒng)在整個(gè)生命周期內(nèi),只有一種狀態(tài),那很好,選擇策略模式;如果系統(tǒng)在整個(gè)過(guò)程中,狀態(tài)多樣性,那需要選擇狀態(tài)模式。
          先寫(xiě)這么多吧,好沒(méi)有狀態(tài)啊,希望大家都抽出時(shí)間一起討論,說(shuō)說(shuō)自己對(duì)狀態(tài)模式的看法。

          posted @ 2012-07-21 22:23 拼搏 閱讀(1040) | 評(píng)論 (0)編輯 收藏

          tomcat 配置環(huán)境變量

          1.我的電腦---屬性---高級(jí)系統(tǒng)設(shè)置---環(huán)境變量---(系統(tǒng)變量)新建


          變量名:CATALINA_HOME(必須)

          變量值:tomcat的路徑      (我的是:   E:\工具\(yùn)學(xué)習(xí)軟件\apache-tomcat-6.0.35\apache-tomcat-6.0.35)


          2.找到path變量,在后面加上

             變量值后:;%CATALINA_HOME%;%CATALINA_HOME%\bin;(用;和前面的分開(kāi))


          3. win+R 就可以cmd了(默認(rèn)是startup開(kāi)啟,shutdown 結(jié)束;我是改成ts開(kāi)啟,td結(jié)束)

          posted @ 2012-07-19 22:21 拼搏 閱讀(763) | 評(píng)論 (0)編輯 收藏

          Spring AOP源于生活的原理(一)

          AOP原理

                    spring用代理類(lèi)包裹切面,把他們織入到Spring管理的bean中。也就是說(shuō)代理類(lèi)偽裝成目標(biāo)類(lèi),它會(huì)截取對(duì)目標(biāo)類(lèi)中方法的調(diào)用,讓調(diào)用者對(duì)目標(biāo)類(lèi)的調(diào)用都先變成調(diào)用偽裝類(lèi),偽裝類(lèi)中就先執(zhí)行了切面,再把調(diào)用轉(zhuǎn)發(fā)給真正的目標(biāo)bean。 


          生活中的AOP

          現(xiàn)在可以自己想一想,怎么搞出來(lái)這個(gè)偽裝類(lèi),才不會(huì)被調(diào)用者發(fā)現(xiàn)(過(guò)JVM的檢查,JAVA是強(qiáng)類(lèi)型檢查,哪里都要檢查類(lèi)型)。 
          實(shí)現(xiàn)和目標(biāo)類(lèi)相同的接口,我也實(shí)現(xiàn)和你一樣的接口,反正上層都是接口級(jí)別的調(diào)用,這樣我就偽裝成了和目標(biāo)類(lèi)一樣的類(lèi)(實(shí)現(xiàn)了同一接口,咱是兄弟了),也就逃過(guò)了類(lèi)型檢查,到j(luò)ava運(yùn)行期的時(shí)候,利用多態(tài)的后期綁定(所以spring采用運(yùn)行時(shí)),偽裝類(lèi)(代理類(lèi))就變成了接口的真正實(shí)現(xiàn),而他里面包 裹了真實(shí)的那個(gè)目標(biāo)類(lèi),最后實(shí)現(xiàn)具體功能的還是目標(biāo)類(lèi),只不過(guò)偽裝類(lèi)在之前干了點(diǎn)事情(寫(xiě)日志,安全檢查,事物等)。 

          兄弟模式

          生活解析

          這就好比,一個(gè)人讓你辦件事,每次這個(gè)時(shí)候,你弟弟就會(huì)先出來(lái),當(dāng)然他分不出來(lái)了,以為是你,你這個(gè)弟弟雖然辦不了這事,但是他知道你能辦,所以就答應(yīng)下來(lái)了,并且收了點(diǎn)禮物(寫(xiě)日志),收完禮物了,給把事給人家辦了啊,所以你弟弟又找你這個(gè)哥哥來(lái)了,最后把這是辦了的還是你自己。但是你自己并不知道你弟弟已經(jīng)收禮物了,你只是專(zhuān)心把這件事情做好。 

          在兄弟模式中spring會(huì)使用JDK的java.lang.reflect.Proxy類(lèi),它允許Spring動(dòng)態(tài)生成一個(gè)新類(lèi)來(lái)實(shí)現(xiàn)必要的接口,織入通知,并且把對(duì)這些接口的任何調(diào)用都轉(zhuǎn)發(fā)到目標(biāo)類(lèi)。

          實(shí)際理論

          JDK動(dòng)態(tài)代理:其代理對(duì)象必須是某個(gè)接口的實(shí)現(xiàn),它是通過(guò)在運(yùn)行期間創(chuàng)建一個(gè)接口的實(shí)現(xiàn)類(lèi)來(lái)完成對(duì)目標(biāo)對(duì)象的代理。

           父子模式

              生活解析

          順著這個(gè)思路想,要是本身這個(gè)類(lèi)就沒(méi)實(shí)現(xiàn)一個(gè)接口呢,你怎么偽裝我,我就壓根沒(méi)有機(jī)會(huì)讓你搞出這個(gè)雙胞胎的弟弟,那么就用第2種代理方式,創(chuàng)建一個(gè)目標(biāo)類(lèi)的子類(lèi),生個(gè)兒子,讓兒子偽裝我 。

           生成子類(lèi)調(diào)用,這次用子類(lèi)來(lái)做為偽裝類(lèi),當(dāng)然這樣也能逃過(guò)JVM的強(qiáng)類(lèi)型檢查,我繼承的嗎,當(dāng)然查不出來(lái)了,子類(lèi)重寫(xiě)了目標(biāo)類(lèi)的所有方法,當(dāng)然在這些重寫(xiě)的方法中,不僅實(shí)現(xiàn)了目標(biāo)類(lèi)的功能,還在這些功能之前,實(shí)現(xiàn)了一些其他的(寫(xiě)日志,安全檢查,事物等)。 

          這次的對(duì)比就是,兒子先從爸爸那把本事都學(xué)會(huì)了,所有人都找兒子辦事情,但是兒子每次辦和爸爸同樣的事之前,都要收點(diǎn)小禮物(寫(xiě)日志),然后才去辦真正的事。當(dāng)然爸爸是不知道兒子這么干的了。 這里就有件事情要說(shuō),某些本事是爸爸獨(dú)有的(final的),兒子學(xué)不了,學(xué)不了就辦不了這件事,辦不了這個(gè)事情,自然就不能收人家禮了。  

          在父子模式中spring使用CGLIB庫(kù)生成目標(biāo)類(lèi)的一個(gè)子類(lèi),在創(chuàng)建這個(gè)子類(lèi)的時(shí)候,spring織入通知,并且把對(duì)這個(gè)子類(lèi)的調(diào)用委托到目標(biāo)類(lèi)。 

          實(shí)際理論

          CGLIB代理:實(shí)現(xiàn)原理類(lèi)似于JDK動(dòng)態(tài)代理,只是它在運(yùn)行期間生成的代理對(duì)象是針對(duì)目標(biāo)類(lèi)擴(kuò)展的子類(lèi)。CGLIB是高效的代碼生成包,底層是依靠ASM(開(kāi)源的java字節(jié)碼編輯類(lèi)庫(kù))操作字節(jié)碼實(shí)現(xiàn)的,性能比JDK強(qiáng)。

          兩種模式總結(jié)

          相比之下,兄弟模式好些,它能更好的實(shí)現(xiàn)松耦合,尤其在今天都高喊著面向接口編程的情況下,父子模式只是在沒(méi)有實(shí)現(xiàn)接口的時(shí)候,也能織入通知,應(yīng)當(dāng)做一種例外。

          posted @ 2012-07-19 22:20 拼搏 閱讀(858) | 評(píng)論 (0)編輯 收藏

          Oracle備份和恢復(fù)

          備份

          備份其實(shí)就是為了防止出錯(cuò)或者宕機(jī)時(shí),作為冗余的一種手段。

          一、Oracle備份從備份類(lèi)型上分可以分為兩類(lèi):物理備份和邏輯備份

          1、 物理備份:copy,將datafilecontrol file等文件copy到別的地方

                   Oracle也提供了一些工具比如rman、用戶(hù)管理備份。

          2、 邏輯備份:復(fù)制數(shù)據(jù)

          imp/expimpdp/expdp

          二、按備份時(shí)的數(shù)據(jù)庫(kù)狀態(tài)

             兩種狀態(tài):?jiǎn)?dòng)狀態(tài)和關(guān)閉狀態(tài)

          1、 熱備份(聯(lián)機(jī)備份)

          2、 冷備份(脫機(jī)備份)

          三、從備份的狀態(tài)

          1、一致性備份(擁有相同的scn

          2、非一致性備份

          四、備份規(guī)模大小

          1、完全備份

                注意:歸檔模式下的備份才為有效備份,當(dāng)然要分為一致性和不一致性。

                      非歸檔需要關(guān)閉才是有效備份,打開(kāi)的不建議使用。

          3、 表空間備份

          注意:當(dāng)數(shù)據(jù)庫(kù)在歸檔模式下備份才有效備份

               表空間處于只讀或者offline有效備份

          4、 數(shù)據(jù)文件

          注意:歸檔下的備份是有效備份

               數(shù)據(jù)文件被設(shè)置為read olny或者offline時(shí)的備份有效

          5、控制文件

          6、歸檔日志文件

          恢復(fù)

          就是將業(yè)務(wù)回到數(shù)據(jù)塊崩潰前的狀態(tài)

          一、實(shí)例恢復(fù)(crash recovery

          Oracle自動(dòng)進(jìn)行

          1、緩存恢復(fù)(cache recovery

          2、事務(wù)恢復(fù)(transaction recovery

          二、介質(zhì)恢復(fù)(media recovery

          三、恢復(fù)方式

          1、完全恢復(fù)

               1)如果是整庫(kù)恢復(fù)

                mount數(shù)據(jù)庫(kù)

                確認(rèn)所有的數(shù)據(jù)文件為online狀態(tài)

                執(zhí)行恢復(fù)操作

                用所有Redo logs文件

                2)表空間或者數(shù)據(jù)文件及恢復(fù)

                open庫(kù)

                將需要恢復(fù)的表空間設(shè)置為offline

                執(zhí)行恢復(fù)

                redo logs

          2、 不完全恢復(fù)

          1) 基于時(shí)間

          2) 基于scn

          3) 基于cancel

          4) 基于日志序列號(hào)

             常見(jiàn)的備份和恢復(fù)技術(shù)

          1、 用戶(hù)管理的備份和恢復(fù)

          2、 RMAN

          3、 Imp/expimpdp/expdp

          4、 FLASHBACK

          5、 GG

          posted @ 2012-07-17 21:32 拼搏 閱讀(1142) | 評(píng)論 (0)編輯 收藏

          SQL Server 數(shù)據(jù)轉(zhuǎn)換

          數(shù)據(jù)轉(zhuǎn)換服務(wù)的概念


                 通常數(shù)據(jù)總是以不同的格式,存儲(chǔ)在不同的地方,有的可能是文本文件,有的雖然具有表結(jié)構(gòu)但不屬于同一種數(shù)據(jù)源。這些情況極大地妨礙了數(shù)據(jù)的集中處理。為此SQL Server提供了DTS(Data Transformation Servers)組件。

                 DTS本身包含多個(gè)工具,并提供了接口來(lái)實(shí)現(xiàn)在任何支持OLEDB的數(shù)據(jù)源間導(dǎo)入,導(dǎo)出或傳遞數(shù)據(jù),并使這一工作變得簡(jiǎn)單,高效。

                 利用DTS可能在任何OLEDB,ODBC 驅(qū)動(dòng)程序的數(shù)據(jù)源或文本文件和SQL Server之間導(dǎo)入導(dǎo)出或傳遞數(shù)據(jù)具體表現(xiàn)在:

          數(shù)據(jù)的導(dǎo)入導(dǎo)出服務(wù)

                 通過(guò)讀寫(xiě)數(shù)據(jù)在不同應(yīng)用程序間交換數(shù)據(jù)。例如:可以將文本文件或Microsoft Access數(shù)據(jù)庫(kù)導(dǎo)入到SQL Server,也可以把數(shù)據(jù)從SQL Server導(dǎo)出到任何OLEDB數(shù)據(jù)源。

          轉(zhuǎn)換數(shù)據(jù)

                 所謂傳遞是指在數(shù)據(jù)未到達(dá)目標(biāo)數(shù)據(jù)源前而對(duì)數(shù)據(jù)采取的系列操作。比如:DTS允許從源數(shù)據(jù)源的一列或多列計(jì)算出新的列值,然后將其存儲(chǔ)在目標(biāo)數(shù)據(jù)庫(kù)中。

          傳遞數(shù)據(jù)庫(kù)對(duì)象

                 在異構(gòu)數(shù)據(jù)源情況下,DTS的內(nèi)置工具只能在數(shù)據(jù)源間傳遞表定義和數(shù)據(jù)。如果要傳遞其他數(shù)據(jù)庫(kù)對(duì)象,如索引,約束,視圖時(shí),必須定義一個(gè)任務(wù),從而在目標(biāo)數(shù)據(jù)庫(kù)上執(zhí)行那些包含在任務(wù)中的SQL語(yǔ)句,SQL語(yǔ)句是被用來(lái)創(chuàng)建這些數(shù)據(jù)庫(kù)對(duì)象的。

          DTS結(jié)構(gòu)

                DTS將數(shù)據(jù)導(dǎo)入,導(dǎo)出或傳遞定義成可存儲(chǔ)的對(duì)象,即包裹或稱(chēng)為包,每一個(gè)包都是包括一個(gè)或具有一定順序的多個(gè)任務(wù)的工作流,每個(gè)任務(wù)可以將數(shù)據(jù)從某一數(shù)據(jù)源拷貝至目標(biāo)數(shù)據(jù)源,或使用Active腳本轉(zhuǎn)換數(shù)據(jù),或執(zhí)行SQL語(yǔ)句,或運(yùn)行外部程序。也可以在SQL Server數(shù)據(jù)源間傳遞數(shù)據(jù)庫(kù)對(duì)象。包對(duì)象用來(lái)創(chuàng)建并存儲(chǔ)步驟,這些步驟定義了一系列任務(wù)執(zhí)行的順序,以及執(zhí)行任務(wù)的必要細(xì)節(jié)。

                包是頂層對(duì)象,它包含三種底層對(duì)象:連接,任務(wù),步驟

          連接:定義了有關(guān)源和目標(biāo)數(shù)據(jù)的信息,這些信息包括數(shù)據(jù)格式和位置以及安全認(rèn)證的密碼。DTS可不包含或包含多個(gè)連接

          任務(wù):每個(gè)DTS包都含有一個(gè)或多個(gè)任務(wù),每個(gè)任務(wù)都是數(shù)據(jù)轉(zhuǎn)換(傳遞)處理的工作項(xiàng)目。

          步驟:步驟對(duì)象定義了任務(wù)執(zhí)行的順序,以及某一任務(wù)的執(zhí)行是否依賴(lài)前一任務(wù)的結(jié)果。步驟的一個(gè)重要特性是步驟的優(yōu)先權(quán)約束。

           

          數(shù)據(jù)的導(dǎo)入

                 方法一:用企業(yè)管理器

          1,             打開(kāi)企業(yè)管理器,打開(kāi)要導(dǎo)入數(shù)據(jù)的數(shù)據(jù)庫(kù),在表上按右鍵,所有任務(wù)——導(dǎo)入數(shù)據(jù),彈出DTS導(dǎo)入/導(dǎo)出向?qū)В聪乱徊?/span>

          2,             選擇數(shù)據(jù)源,即要導(dǎo)入的文件,按下一步

          3,             選擇目的,選擇Microsoft OLEDB 提供程序,選擇數(shù)據(jù)庫(kù)服務(wù)器,然后單擊必要的身份驗(yàn)證方式。按下一步

          4,             在指定表格復(fù)制或查詢(xún)對(duì)話(huà)框中,單擊復(fù)制表格

          5,             在選擇源表格對(duì)話(huà)框中,單擊全部選定。下一步,完成。

                  方法二:Transact—SQL語(yǔ)句

          數(shù)據(jù)的導(dǎo)出

                 方法一:用企業(yè)管理器

          1,  打開(kāi)企業(yè)管理器,打開(kāi)要導(dǎo)入數(shù)據(jù)的數(shù)據(jù)庫(kù),在表上按右鍵,所有任務(wù)——導(dǎo)入數(shù)據(jù),彈出DTS導(dǎo)入/導(dǎo)出向?qū)В聪乱徊?/span>

          2,單擊下一步就會(huì)出現(xiàn)導(dǎo)出數(shù)據(jù)源對(duì)話(huà)框

                 

          3,單擊下一步,則選擇目的對(duì)話(huà)框

             

          4,單擊下一步,則出現(xiàn)指定表復(fù)制或查詢(xún)對(duì)話(huà)框

            

          5,單擊下一步,選擇源表和視圖對(duì)話(huà)框


          6,

           


          8,

             

          posted @ 2012-07-17 21:31 拼搏 閱讀(1080) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共2頁(yè): 1 2 下一頁(yè) 
          主站蜘蛛池模板: 拜泉县| 兖州市| 九寨沟县| 和林格尔县| 宁海县| 玉龙| 陆丰市| 甘德县| 沛县| 开原市| 黄陵县| 镇巴县| 贡山| 盐池县| 台南市| 安新县| 商都县| 旌德县| 桐城市| 辽阳市| 石景山区| 大埔区| 白玉县| 庄河市| 巨鹿县| 永胜县| 栖霞市| 斗六市| 荔浦县| 深州市| 大关县| 大庆市| 平南县| 尼勒克县| 长垣县| 巴中市| 新龙县| 绥德县| 马边| 丽江市| 砚山县|