熱門文章 (Popular Post)

顯示具有 Database 標籤的文章。 顯示所有文章

By :

目錄:


前言:

Replicat Sets是由多個MongoDB所組合而成的群組,保存著相同的資料,藉此讓資料庫
保持不中斷的運作,具有高可用性。在製作Replicat Sets前,必須先了解一些專有名詞。

在Replicat Sets可以分成三個角色:Primary, Secondary, 與Arbiter
  1. Primary
  2. Secondary
  3. Arbiter 
Replicat Sets每一個資料庫均會維持彼此的連線,確認每個資料庫是否正常運作。群組內
對外讀寫資料、主要的資料庫,我們稱為Primary。當資料庫內容有異動時,會同步更新
其他的資料庫(我們稱之為Secondary,可以擁有多個),如下圖所示:

 

By :

目錄:



前言:

前面幾篇我們介紹了mongodb的安裝、服務註冊與基本操作,而在這篇,我們要介紹基本資料
匯出與備份還原的操作,這篇結束後,mongodb的基本操作介紹就差不多了,後面會在介紹進
階功能:副本(replica sets)製作與副本上建立索引的方法。
這章節將介紹匯入匯出指令與備份還原指令,雖然備份資料可以也可以透過匯入匯出方式達到可能的效果,
但官方網站不建議這樣使用,因為匯出的json(或其他)檔案,沒有詳細紀錄資料類型,利用匯入的方式進行備援,可能會造成一些資料面的問題。

執行步驟:

  • 匯入與匯出:指資料匯出匯入使用,可以使用的格式有json, csv, tsv等
    • Export command:mongoexport
      step.1 Enter command as below (out: file path and file name)
      mongoexport --db test --collection Currency --out Currency.json

By :

目錄:



前言:

在前一篇MongoDB CRUD1章節中,我們介紹mongo shell基本的操作與查詢指令,
在本篇,我們接簡單介紹insert, update, remove與drop常用指令。


執行步驟:

Insert:
MongoDB是以document的結構進行儲存,並沒有固定的綱要(schemaless),新增(Insert)的
過程中,若遇到新的欄位會自動建立(但並不是每筆資料都加上此欄位),比起關連式資料庫需要修改
資料結構,MongoDB更顯得有彈性。

基本指令如下:
db.people.insert({name:"alice",type:"student",age:20,array:[1,2,3,4,5]})


By :

目錄:

前言:

在Replica Sets環境下建立索引大致上可以歸類兩大步驟:於PrimarySecondary建立索引。
雖然操作人員於Primary建立索引後,會自動同步到Secondary,在每個Secondary建立索引,
但官方網站建議完成所有的Secondary步驟後,最後於Primary環境下建立索引,對於營運中
的資料庫影響較小。

Create Indexes on the Replica Sets 步驟如下:
  1. 在Secondary建立索引
    • 關閉原有資料庫服務
    • 單獨啟動服務
    • 建立索引
    • 關閉單獨服務,重新啟動(加入Replica Sets)
  2. 在Primary建立索引
    • 背景執行建立索引
    • 切換Secondary至primary

執行步驟:


一、在Secondary建立索引

      Step 1. 開啟命令提示字元(shell or command),連線到primary db確認環境。


      Step 2. 下方工具列點選右鍵,選擇啟動服務管理員,點選服務。


    Step 3. 找到Secondary服務後,右鍵點選,選擇停止


    Step 4. 從第一步驟的命令提是字元,觀看secondary是否已經關閉      
rs.status()




      Step 5. 啟動另一個命令提示字元(shell or command line),單獨啟動資料庫       
mongod --port 27020 --dbpath C:\data1\db1




      Step 6. 啟動第三個命令提示字元(shell or command line),連線到剛才的資料庫       
mongo --port 27020

      
      Step 7. 切換資料庫後,建立索引。      
use database
db.collections.createIndex({"Id":1})



      Step 7. 於第五步驟的命令提示字元,確認建立索引狀態。
                  確認完成後,關閉服務(關閉command line)


       Step 8. 重新啟動服務。


     Step 9. 於第一步驟的命令提是字元,確認服務啟動,有接上Replca Sets。
                 依此類推,完成所有Secondary區塊。



二、在Primary建立索引

      背景執行的好處是可以同步寫入資料,但需要花費較多時間且可能會影響primary的寫
      入效能,適用於較不複雜的資料結構。

      下列步驟背景建立索引:

      Step 1. 開啟命令提示字元(shell or command),連線到資料庫
                  切換資料庫後,建立索引

use database
db.collections.createIndex({id:1},{background: true})
      
      Step 2. 觀看索引建立狀態,完成後,Replica Sets匯自動將索引帶到Secondary。


     
      下列步驟為切換Secondary為Primary:
      Step 1. 開啟命令提示字元(shell or command),連線到primary db確認環境。

rs.status()



     Step 2. 開啟另一個命令提示字元,連線到另一個Secondary,輸入下列指令,使他不會變成
                  primary。(30秒內)
rs.freeze(30)


     Step 3. 在primary環境下,輸入下列指令,即可讓出primary。(30秒內)
rs.stepDown(30)


     Step 4. 再次確認Replica Sets狀態,完成。切換成primary的資料庫,會將索引同步到其他                      Secondary 。
rs.status()


參考資料:

Mongodb官方網站

--
謝謝!


By :

目錄:

3. [Database][MongoDB] 新增、修改、查詢、刪除操作 1 ( CRUD operation 1 )


前言:

後續這兩個章節,我將簡單介紹mongodb幾個重要項目:
  1. 資料結構(Documents and JSON)
  2. 基本操作指令
  3. CRUD(新增、查詢、修改與刪除的)指令
在mongodb的官方網站上,有詳細的說明與介紹。除此之外,若您已經熟悉SQL語法的開發者或管理者,想要知道目前的Query如何在mongodb使用,在官方網站上也有SQL語法與mongodb與法的對照說明,您可以參考此連結


資料結構:

Mongodb儲存資料的結構稱document,為一種JSON-like(field-value)組合的格式。
與一般關連式資料庫不同,Mongodb是一種無schema(綱要)的資料庫,它的結構是動態的。
如果你曾經使用Json來進行資料的操作,那對於這種field-value資料格式一定不陌生。

何謂field-value型式資料? field-value型式資料就是一個欄位對應一個值的資料格式,
例如: 

  • name : "duran"
  • age : 26
  • isEnable : true
  • group : ["News" , "sports"]

而document是由這些(field-value)組合而成,下列是document的範例:
{
    name : "Duran",
    age : 29,
    status : "B",
    group : ["News", "sports"]
}

而多個document的集合,我們就稱為collections,而在一個mongodb中一個database,包含了許多collections。


By :

目錄:



前言:

上一篇,我們簡單介紹Mongo DB安裝過程、啟動資料庫與連線方法。我們以Mongo DB預設的內容(如Port:27017,資料位置C:\data\db…等),快速的啟動資料
庫並進行簡單的測試,確認Mongo DB安裝成功且正常運作。
與其他資料庫系統相似,MongoDB包含許多參數設定,提供DBA進行資料庫
管理。理所當然,我們必須了解如何設定,才能應付不同專案中不同的需求。
在這一章節,我們將簡單介紹Mongo DB相關組態(Configure)、撰寫組態檔
案(Configuration File)與新增(移除)Mongo DB為Windows 服務。


執行步驟:

一、組態的參數使用方法(可以混用):

使用預設方式啟動資料庫:

mongod

設定資料位置:
//mongod --dbpath Path
mongod --dbpath "d:\test\mongo\db\data"


設定Port:
//mongod --port PortNumber
mongod --port 27021


設定Replica Sets:
//mongod  --replSet  --oplogSize 
mongod  --replSet rs0  --oplogSize 128

二、撰寫組態檔案:

每次啟動資料庫的時候,都需要打入一堆參數,其實相當麻煩:我們能將這些組態設定資訊寫成一個組態檔案(Configuration   file),啟動時指定讀取即可。

  • 組態檔案格式(Configuration file Fotmat):
    Mongo DB 2.6版本之後,官方網站講組態檔案格式改用YAML格式進行編寫,
    如下圖所示。
    (提醒:YAML不使用tab,而是使用空白做編排)

By :

目錄:

1. [Database][MongoDB] 介紹與安裝 ( Introduction and Installation )

前言:

運氣很好的,原本從研究所開始到工作三年,接觸過My SQL, Sybase, Oracle, 
Sql Server等多種資料庫,但仍脫離不了關聯式資料庫的範疇,原本以為會一
直在關聯式資料庫的世界打滾,卻在某種因緣際會下,開始了摸索MongoDB
旅程。

初次開始接觸MongoDB,發現他有一些優點:
1.     與關聯式資料庫最大的不同,就是看不見硬梆梆的關聯性(當然,它有自己
      獨特的方式進行關聯)
2.     不需要因為需要更改資料表欄位而大費周章調整結構與修改程式。
3.     若您對JSON很熟悉,那對他的Document一定不陌生。


這一系列的文章預計會有六篇,從安裝、增加Windows ServiceCRUD(Create,
 Read, Update, Delete)基礎與進階操作、備份還原與匯出匯入、製作備份組(
Replica Sets)等功能,是這段期間依照官方網站與自行摸索的紀錄,除了做為自
己學習日記,也提供大家參考(官方網站教學非常詳細,大家可以多利用)

在這一篇,我們間單介紹如何安裝MongoDB、執行、測試與使用相關軟體。


執行步驟:

Step 1 : 輸入網址:https://www.mongodb.org/
             Enter website url: https://www.mongodb.org/




Step 2 :選擇Widnow 64-bit 2008 R2,選擇Download(MSI)
            Select Widnow 64-bit 2008 R2, and then click Download(MSI) 



Step 3 : 點選Next
             Click Next



Step 4 : 勾選"I accept the term in the License Agreement",然後點選Next
             Check "I accept the term in the License Agreement" ,and then Click Next



Step 5 : 點選 Complete
             Click Complete



Step 6 : 點選 Install
             Click Install



Step 7 : 安裝中...
             Installing...



Step 8 : 點選 Finish
             Click Finish



Step 8 : 因為MongoDB預設的路徑為C:\data\db,我們需要建立data與db資料夾。
             首先,開啟命令提示字元。
             We need to create two folder because default path of MongoDB is "C:\data\db".
             At first, open an Administrator command prompt.



Step 9 : 輸入下列指令
              Enter command as below

md data\db


Step 10 : 輸入下列指令啟動MongoDB
               Enter command as below to Start MongoDB

cd Program Files\MongoDB\Server\3.0\bin
mongod



Step 11 : 開啟另一個命令提示字元,並輸入下列指令連線到MongoDB
               open another Administrator command prompt,  and enter command as
               below to connect MongoDB

cd Program Files\MongoDB\Server\3.0\bin
mongo





Step 12 . 完成,測試下列指令(新增與查詢)
                Finish, enter command as below to test (insert, search)

db.test.insert({name:"duran",age:26,status:"A",group:["new","sport"]})
db.test.find({name:"duran"})
db.test.find()





注意(Important):


  • 若您的作業系統版本是在Windows 7或Windows Server 2008 R2,安裝完MongoDB,安裝文件提示必須安裝微軟的修正更新,以解決記憶體對應檔案問題。下載位置:https://support.microsoft.com/zh-tw/kb/2731284






  • 使用系統管理者身分執行命令提示字元 (open another Administrator command prompt)

參考資料:

http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/


--
謝謝!






By :


前言:

在取得Oracle證照後,工作上有關Oracle的問題就開始如雪片般飄來,無論這些問題是否
曾經學習過或處理過。相對的,因為對於這部分比新手稍微了解一些,在了解問題與處
理問題速度上,會較快速一些。

一樣是專案的需求,將目前現行運作的系統,其資料匯入目前開發的系統資料庫進行流程
測試。理所當然,系統驗收的項目也包含過去歷史資料。

Tag : , ,

By :

前言:

感謝公司某個專案的開發流程規劃,需要把開發完成的資料從測試機器放到正式機器。
除了程式碼需要發佈,也需要將資料庫一起搬移到正式機器。

這個專案內用到大量環境設定參數設定、Stored Procedure與檢視表(View),在資料庫搬移
的過程中又不能影響到客戶現有測試環境,簡單的說:
1.新功能開發完成,需要將相關的參數資料、Stored Procedure與View搬移過去。
2.不能整個資料庫覆蓋,需要選擇性的搬移新功能用到的資料內容。
3.多人分工合作開發,搬移的時候需要知道哪些是新功能用到的資料內容。

By :


最近常常忙於工作,無法將較大篇幅的學習內容記錄下來,
只好先記錄常常用到的語法與設定且篇幅較小的內容。
一方面增加印象,另一方面以後忘記可以藉由此篇進行複習。

以下為工作期間常用到的語法與學習到的設定方法:

語法:

1、IS NULL判斷欄位是否為NULL


Example:
use [testDB]

go

select * from UserTable where seq is null
go


2、ISNUMERIC判斷欄位是否為數字

Example:
use [testDB]
go

select * from UserTable where ISNUMERIC(seq)=1
go



3、Insert + Select ( 快速增加重複資料 )

Example1:
USE [testDB]
GO

INSERT INTO [dbo].[Tcode01]
 ([SEQ],[單位代號],[單位名稱],[主管],[電話])
SELECT [SEQ],[單位代號],[單位名稱],[主管],[電話]
  FROM [dbo].[Tcode01] WHERE 單位代號 = "11"
GO

需要增加特定相同資料,如不同單位有相同材料,只有單位代號不同,
可以有以下用法:
Example2:
USE [water]
GO

INSERT INTO [dbo].[Tcode01]
 ([SEQ],[單位代號],[材料單位],[材料名稱])
SELECT [SEQ],'12',[材料代號],[材料名稱]
  FROM [dbo].[Tcode01] WHERE 單位代號= "11"
GO

定期備份:

1: 點選管理右鍵點選維護計畫,點選維護計畫精靈





2:點選下一步




3:輸入名稱(如backupDB),點選下一步





4:點選備份資料庫(完整)





5:點選下一步





6:選擇資料庫





7:設定為每個資料庫建立一個備份檔案、可設定為每個資料庫建立一個子目錄、副檔名輸入bak





8:拉到下方,選擇排程





9:依據喜好設定,這便設定每日12:00備份、無結束日期,完成後點選下一步





10:點選下一步





11:點選完成






12:點選關閉,即完成定期備份設定




定期刪除備份:


1: 點選管理右鍵點選維護計畫,點選維護計畫精靈






2:輸入名稱(如deleteDB),點選下一步





3:點選維護清除作業,點選下一步





4:點選下一步





5:點選備份檔案、選擇依據赴檔名搜尋資料夾及刪除檔案、選擇資料夾與輸入副檔名(bak)、選擇檔案存在時間(6天,只保留六天份備份)





6:點選下一步





7:點選完成





8:點選關閉,即完成定期刪除備份



--
如果覺得文章不錯,請幫忙點選廣告,
謝謝!


- Copyright © Duran Hsieh @ Duran 的技術冶煉廠 - Date A Live - Powered by Blogger - Designed by Johanes Djogan -