2017年4月15日 星期六

[電腦知識]下載備份 Facebook 的所有訊息、相片和對話紀錄

如果你有在使用 Facebook 的話,一定不能不知道臉書其實也內建批次下載、備份資料的功能,這項功能可以為你在 Facebook 上共享的個人資料備份,能將所有資料,包含塗鴉牆上的貼文、相片、影片、聊天是訊息紀錄、個人檔案資料等打包成單一檔案,讓使用者下載、留存,如果你想為自己的社交網路生活留下備份,可以透過 Facebook 提供的「下載資料副本」功能來取得所有臉書上的資料。

STEP 1
開啟你的 Facebook 個人頁面,點選右上角的倒三角形圖示,然後選擇「設定」。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 2
開啟一般帳號設定後,點選底下的「下載一份你的 Facebook 資料副本」(如下圖箭頭所示)。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 3
進入 Facebook 下載資料副本的功能後,點選「開啟檔案庫」,在備份前會要求你輸入密碼、確認身份,沒問題後才會開始製作備份。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 4
如果你已經使用 Facebook 很長一段時間,或者帳戶裡有許多相片、影片的話,製作資料封存都會耗費許多時間,Facebook 會在完成時發 Email 通知你,可以先把網頁關掉,或是跳到其他頁面繼續使用。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 5
當 Facebook 備份製作完成後,回到下載資料頁面,點選「下載存檔」即可把資料副本通通下載、保存下來,在下載前必須再次重新輸入密碼,確認你是帳號本人才能夠下載資料。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 6
將下載的備份解壓縮,點選 index.htm 即可看到你的個人頁面,在其他資料夾裡可以找到相片、影片以及其他備份資料。
下載備份 Facebook 的所有訊息、相片和對話紀錄
From : https://free.com.tw/facebook-download-your-information/

[電腦知識]備份FB聊天室訊息

Step 1.  使用 Google Chrome Web Browser

Step 2.  https://m.facebook.com/messages/

Step 3.  點入欲備份那個人的聊天室

Step 4.  按下 Ctrl+Shift+J (Windows/Linux) 或 Cmd+Opt+J (Mac) 進入 Console

Step 5.  複製下面代碼並貼上到上述彈出的視窗

         var id =
         setInterval(function () { document.getElementById('see_older')
                    .getElementsByClassName('content')[0].click(); }, 500);

Step 6.  (可略)等到全部的訊息都載入完成之後鍵入 clearInterval(id)

Step 7.  Ctrl+S 或 Cmd+S 儲存成 HTML 檔案
             Ctrl+P 或 Cmd+P 匯出成 PDF  檔案

步驟7如果游標指到Console會無法成功儲存(變成Console指令)
要在右側對話框的區塊按Ctrl+S或是Ctrl+P..或是簡單一點滑鼠右鍵選擇另存(Html)或列印即可


資料庫中CHAR,VARCHAR,VARCHAR2,NVARCHAR,NVARCHAR2類型的區別與使用

varchar,nvarchar, varchar2,nvarchar2的區別
四個類型都屬於變長字符類型, varchar和varchar2的區別在與後者把所有字符都占兩字節,前者只對漢字和全角等字符占兩字節。 nvarchar和nvarchar2的區別和上面一樣, 與上面區別在於是根據Unicode 標準所進行的定義的類型,通常用於支持多國語言類似系統的定義。
varchar2,nvarchar2為oracle自行定義

ORACLE
1.char
char的長度是固定的,比如說,你定義了char(20),即使你你插入abc,不足二十個字節,資料庫也會在abc後面自動加上17個空格,以補足二十個字節;
char是區分中英文的,中文在char中占兩個字節,而英文占一個,所以char(20)你只能存20個字母或10個漢字。
char適用於長度比較固定的,一般不含中文的情況
以"123號"為例,length為9,lengthb則為10

2.varchar/varchar2
varchar是長度不固定的,比如說,你定義了varchar(20),當你插入abc,則在資料庫中只占3個字節。
varchar同樣區分中英文,這點同char。
varchar2基本上等同於varchar,它是oracle自己定義的一個非工業標準varchar,不同在於,varchar2用null代替varchar的空字符串
varchar/varchar2適用於長度不固定的,一般不含中文的情況
(1)varchar2把所有字符都占兩字節(Byte)處理(一般情況下),varchar只對漢字和全角等字符占兩字節,數字,英文字符等都是一個字節;(以oracle實測,英數字只佔1 Byte)
(2)VARCHAR2把空串等同於null處理,而varchar仍按照空串處理; 
(3)VARCHAR2字符要用幾個字節存儲,要看資料庫使用的字符集, 大部分情況下建議使用varchar2類型,可以保證更好的兼容性。
以"123號"為例,varchar2,length為4,lengthb則為5

3.nvarchar/nvarchar2
nvarchar和nvarchar2是長度不固定的
nvarchar不區分中英文,比如說:你定義了nvarchar(20),你可以存入20個英文字母/漢字或中英文組合,這個20定義的是字符數(Bit)而不是字節數(Byte)
nvarchar2基本上等同於nvarchar,不同在於nvarchar2中存的英文字母也占兩個字節
nvarchar/nvarchar2適用於存放中文
以"123號"為例,nvarchar2,length為4,lengthb則為8
PS:nchar/nvarchar2是專為unicode而設計的, 而每個字符佔多少個byte, 便要看Oracle的national characterset使用那一個字集而定

區別:
1.CHAR的長度是固定的,而VARCHAR2的長度是可以變化的, 比如,存儲字符串「abc",對於CHAR (20),表示你存儲的字符將占20個字節(包括17個空字符),而同樣的VARCHAR2 (20)則只占用3個字節的長度,20隻是最大值,當你存儲的字符小於20時,按實際長度存儲。
2.目前VARCHAR是VARCHAR2的同義詞。工業標準的VARCHAR類型可以存儲空字符串,但是oracle不這樣做,儘管它保留以後這樣做的權利。Oracle自己開發了一個數據類型VARCHAR2,這個類型不是一個標準的VARCHAR,它將在資料庫中varchar列可以存儲空字符串 的特性改為存儲NULL值。如果你想有向後兼容的能力,Oracle建議使用VARCHAR2而不是VARCHAR。
3.char 的NULL值佔用存儲空間 
  varchar2 NULL值不佔用存儲空間 
  插入同樣數量的NULL值,varchar2的插入效率高於char 
4.插入資料 
  char的效率低於varchar2 
5.更新資料 
   更新列建立索引char效率高於varchar2,否則差不多 
6.資料檢索 
   varchar2效率高於char 

何時該用CHAR,何時該用varchar2?
CHAR與VARCHAR2是一對矛盾的統一體,兩者是互補的關係.
VARCHAR2比CHAR節省空間,在效率上比CHAR會稍微差一些,即要想獲得效率,就必須犧牲一定的空間,這也就是我們在資料庫設計上常說的『以空間換效率』。
VARCHAR2雖然比CHAR節省空間,但是如果一個VARCHAR2列經常被修改,而且每次被修改的數據的長度不同,這會引起『行遷移』(Row Migration)現象,而這造成多餘的I/O,是資料庫設計和調整中要盡力避免的,在這種情況下用CHAR代替VARCHAR2會更好一些。

PS:資料庫儲存引擎對不同的資料型態有不同的對待方式,固定長度欄位直接搜尋分頁指標位置取出資料,可變長度欄位會先算資料實際長度再進入分頁取資料,速度本來就會比固定長度慢一些,用 max 方式宣告的話,儲存引擎會將它視為 LOB 資料型態,會將它儲存到額外的分頁內,光是在磁碟中搜尋這些分頁的成本會比計算長度更高 (別忘了這是 I/O 動作),會使得查詢和寫入速度都變慢。資料少量時看不出來,等量很大時就準備哭哭吧。

MySQL

char是定長的,varchar是變長的。varchar2應該是varchar的升級,似乎只有ORACLE才有,這裡不作討論。

char定長存儲,速度快,但是存在一定的空間浪費,適用於欄位不是很大,對速度要求高的場合。速度快是因為其在物理上是按定長存儲的,這樣,就可以根據偏移址一次取出固定長度的字符。

varchar變長存儲,所以效率不如char。varchar在存儲時,在物理上要先存儲該欄位的實際長度,然後才是內容。這樣讀取的時候,就要讀取兩次,一次讀它的長度,然後才是內容。所以它的訪問速度會比char慢一些。但它可以節省空間。

由於mysql自身的特點,如果一個數據表存在varchar欄位,則表中的char欄位將自動轉為varchar欄位。在這種情況下設置的char是沒有意義的。所以要想利用char的高效率,要保證該表中不存在varchar欄位;否則,應該設為varchar欄位。

原文網址:https://read01.com/QExoxE.html

2016年12月16日 星期五

[Oracle]Oracle Job定時時間格式

原本是想設定Job每天同一時間執行
所以設定next_date => 隔天凌晨1點
                interval => 'SYSDATE+1'
後來發現如果有執行時間較長的批次,時間一路往後推的結果
竟然變成隔天上班的時候才會執行,影響到User操作系統的效能

修改後如下
每天1點執行的一個Job範例:
       
         DECLARE
            X NUMBER;
         BEGIN
            SYS.DBMS_JOB.SUBMIT
            ( job => X
               ,what => 'INSERT_TXN;'
               ,next_date => to_date('01-01-2016 01:00:00','dd/mm/yyyy hh24:mi:ss')
               ,interval => 'trunc(sysdate+1)+(1/24)'
               ,no_parse => FALSE
            );
                SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
               COMMIT;
         END;
        /

以上是明確指定每天的1點執行此job,如果指定是每天中午12點執行interval需要指定為 'trunc(sysdate)+1+12/24',如果僅僅指定interval為一天,這樣當你手工用dbms_job.run(job)去運行一次時,job每天的執行時間是會改變的,如果你想Job每天在固定時間執行,可以參考上面的例子.
描述 INTERVAL參數值:
  每天午夜12點 'TRUNC(SYSDATE + 1)'
  每天早上8點30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
  每星期二中午12點 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
  每個月第一天的午夜12點 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
  每個季的最後一天的晚上11點 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
  每星期六和日早上6點10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE,"SUNDAY"))) + (6×60+10)/(24×60)'
  每分鐘執行
  Interval => TRUNC(sysdate,'mi') + 1/ (24*60) 或 Interval => sysdate+1/1440
  每半年定時執行 例如:每年7月1日和1月1日淩晨1點
  Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
  每年定時執行  例如:每年1月1日淩晨1點執行
  Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

2016年12月14日 星期三

[Oracle]IE無法開啟Oracle Web管理介面(EM)

Oracle 10g 以後有個 Web 管理介面,叫作 Enterprise Manager,簡稱 EM,
連結方式為 https://X.X.X.X:1158/em,但不知道為什麼使用 IE 就是會顯示找不到網頁,
但用Firefox或 Google Chrome 卻都正常,一整個很莫名其妙。
 
Google 了一下,結果都沒有明確的解決方法,後來在論壇看到有人回覆移除 KB2661254 就可以,查了一下這個 KB,原來微軟提高了 IE 的安全性,將 IE 的憑證金鑰長度下限提高至 1024bit,而 Oracle EM 預設的憑證金鑰長度是 512bit,所以被 IE 拒絕存取但又不顯示明確的訊息,只顯示找不到網頁,讓人摸不找頭緒。

還好這個 KB 提供了幾個方法。
方法一:
最快速的方法就是移除該 KB,重開,完成。

方法二:
 適用Windows Vista、7、Server 2008,以系統管理員身份執行下列指令。
 > certutil -setreg chainMinRSAPubKeyBitLength 512
 該指令可允許金鑰長度小於1024bit

 移除此參數可還原封鎖長度小於 1024bit 的金鑰。
 > certutil -delreg chainMinRSAPubKeyBitLength

方法三:
 適用 Windows XP、Windows 8、Server 2012,修改下列登錄值
 HKEY_LOCAL_MACHINESoftwareMicrosoftCryptographyOIDEncodingType 0CertDLLCreateCertificateChainEngineConfig
 MinRsaPubKeyBitLength:DWORD 值:512(十進位)

以上轉貼自http://blog.yam.com/gavint/article/62440042

[英語學習]曬恩愛,肉麻的說法

make out in public 曬恩愛的意思是:表現出很恩愛的樣子讓大家看

肉麻的英文就是Mushy,
Urban dictionary裡解釋Mushy為Overly sentimental or affectionate
過分的多愁善感或充滿深情的.
譬如說~ I like the movie but some of the love scenes were extremely mushy
我喜歡那電影但有幾幕愛情戲真的太肉麻了.
或者說mushy mushy 疊字也是很常用:
Would you please stop that mushy mushy shit, kissing and all that~
You're making me sick with all that crap!
你們兩個可以不要那麼肉麻嗎!親嘴這些~真的是很噁ㄟ

sappy 也是肉麻的意思~
Something or someone so sweet that it makes you want to puke 甜蜜到你想吐.
譬如說 It was a sappy love song 那是首肉麻的情歌.
Romancing也是有點是曬恩愛的意思~ They were romancing on the beach 他們在沙灘上曬恩愛~

以上轉貼自 http://jim060480.pixnet.net/blog/post/69456699-5-09-%E5%A4%A7%E5%AD%B8%E7%94%9F%E4%BA%86%E6%B2%92-%E8%82%89%E9%BA%BB%E6%83%85%E4%BE%B6

[Oracle]spfile與pfile

在Oracle database 中有兩個檔案是不可或缺的, 它們扮演著database 開起來之後資源的分配狀況, 這兩個至少要有一個是正常的, 只要同時缺少這兩個檔案, 資料庫將無法打開, 它們就是spfile 和 pfile。

spfile 就是system parameter file的簡稱, 而pfile 則是parameter file, 即資料庫參數檔。
對oracle database來說, 這兩個東東是一樣的功能, 但是卻有不一樣的講究, 搞不清楚時, 常常改了參數, 可是database開起來的時候卻是以舊的參數帶起來, 有時候甚至還開不起來。

Spfile是一種binary檔案, 人無法看懂, 也無法直接開啟修改, 當資料庫開啟時會優先以它作為參數檔開啟, 如果沒有它, 資料庫就會開不起來; 而pfile則是一般的文字檔, 可以直接開啟修改, 當缺少spfile時, 資料庫會找pfile, 若有pfile, 則資料庫還是開得起來, 因此, 這兩個檔案有相輔助的作用, 當資料庫建好後, 通常會先有一個spfile, 此時可以用create pfile from spfile; 來製作pfile, 產生pfile後, 可以把它備份起來或是在將來進行參數的修改, 因此這個檔案對管理者來說是非常重要的。

一旦對pfile進行修改, 可以將spfile刪除, 重新啟動資料庫, 資料庫就會以新的參數啟動, 進入資料庫後, 使用create spfile from pfile; 這個指令來製作spfile, 就可以令新的參數永久生效. 因此, 如果沒有瞭解這兩個參數檔的作用及其生成原因, 就有可能會對資料庫造成不良的影響, 不可不慎。

DB的參數檔有兩個, 一個是spfileORCL.ora, 另一個為initORCL.ora, 其中,initORCL.ora就是pfile。在資料庫剛建好時, 這裡只會看到spfileORCL.ora, 而當執行“create pfile from spfile; “的指令後, 就會出現initORCL.ora這個檔案, 這個檔案是可以閱讀並修改的

轉貼自 http://blog.xuite.net/joshua_chen1124/gospel/124232156-spfile%E8%88%87pfile