f 迪貝之家

Microsoft SQL Server Log Shipping

SQL 7就有的技術,簡單的說就是資料庫複本資料同步的技術,而這份複本可以開放讀取的功能以分散營業資料庫的負載,也可純粹當成備援資料庫,不管是在本地還是異地。怎麼達成? 透過SQL Agent自動化排程進行備份、傳檔及復原等作業。

Oracle GolGateden

機房搬遷跨Site能即時同步資料庫利器

Nagios 資料庫維運自動化

一開始設計這架構時,就排除使用remote agent的想法因為在專業分工的組織下,要求安裝新軟體於既有系統是一件不太可行的方案,既然身為DBA就只能把資料庫instance當作是一個最大的agent 想辦法在資料庫內做到我想做的事情

This is default featured post 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured post 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

掃毒

 https://www.kaspersky.com.tw/free-virus-scan

https://www.eset.com/int/home/online-scanner/

https://www.fortiguard.com/faq/onlinescanner

https://virustotal.com

https://metadefender.opswat.com/

https://viruscheck.tw/


windows內建惡意軟體移除工具

mrt.exe


https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite

https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns

https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview


用 go 來跑GCP Dataflow

 

Apache beam org網站上的案例參考
wordcount-example
go sdk 畢竟是後來才加入的
所以unbounded data的sample還沒出來
不過好像有程式碼了
只是還在修正中吧!!
而且go sdk目前好像也只支援GCP dataflow

依照beam model的設計理念
應該還會再繼續擴充吧~~
其實這也是我想學beam的原因啦!!

底下跑的環境是在我筆電上的virtualbox
GCP 的CE當然可以跑
因為它已經幫你裝好Cloud SDK
可以bypass

1.安裝Google Cloud SDK
參考文件:How to Install Google Cloud SDK on Ubuntu
步驟如下: 安裝當然是用root權限
a.apt-get update
b.apt-get install curl apt-transport-https ca-certificates gnupg
c.echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
d.curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
e.apt-get update
f.apt-get install google-cloud-sdk
我覺得應該不用做Initialize的動作
因為作業系統環境變數會去參照service account的token file
export GOOGLE_CLOUD_PROJECT=mytest691129
export GOOGLE_APPLICATION_CREDENTIALS=~/bqaccess.json
export GOPATH=~/go
export PATH=/usr/local/go/bin:$GOPATH/bin:$PATH

2.安裝Golang,就我的認知
跑go 的程式應該是不用安裝go tool啦!!
文章結束前,我講我的猜測

a.curl -O https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz
b.tar xvf go1.17.6.linux-amd64.tar.gz -C /usr/local
c.我不會用root來編譯及執行我的go程式
chown -R steven:steven /usr/local/go

3.切換身分為steven
建置我的working directory
a.mkdir -p ~/go/{bin,src,pkg}
b.cd go/src
c.mkdir wordcount
d.cd wordcount
e.把wordcount 的程式碼,存成main.go
e.go mod init wordcount
f.go mod tidy
g.go install
h.來執行吧~~
wordcount --input gs://dataflow-samples/shakespeare/kinglear.txt \
--output gs://mydf1129/steven2/counts \
--runner dataflow \
--project mytest691129 \
--region asia-east1 \
--temp_location gs://mydf1129/steven2/tmp/ \
--staging_location gs://mydf1129/steven2/binaries/ \
--worker_harness_container_image=apache/beam_go_sdk:latest

wordcount本身就是binary了,
為什麼還要安裝golang??
因為一跑wordcount程式
就會跟你要go
所以我也只能嘗試安裝看看


從執行命令的最後一個開關看起來
應該是以beam sdk為container base
所以應該是要go 編譯wordcount程式碼後
疊加在base上,產出新的image
然後送上cloud storage

在我看了
--staging_location gs://mydf1129/steven2/binaries/
裏頭的東西之後,我覺得它就是container image


然後GCP就跑起了container來執行wordcount的邏輯

而且還得在我的source 目錄下執行
才能跑得起來

最後我還是提醒一下
token file要保存好
因為我發覺sevice account的權限得給到project owner
參照Quickstart using Python得來的權限結論
這樣dataflow 跑起來才不會發生各種服務的權限問題
我記得在上老外的Partner Datawarhouse的GCP給的課程時
好像也有提到權限問題


git learning

 

Git Tutorial For Beginners | Git Full Course | Git Crash Course | Git Training Course | Simplilearn
這個課程內容如下:
1.一開始講
warter fall
agile
devops
我原本的觀念都還很模糊
聽完那部分之後
想說...原來是這樣劃分的喔

2.它的第20項的demo : Commands in Git
有夠爛的
操作的人
根本不是很了解git
3.聽完item 21之後,我就覺得沒再聽的必要了
4.想了解git 的指令的話
  還不如聽底下這堂課
Git Tutorial for Beginners: Learn Git in 1 Hour
=============================
Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git
1. 聽完了"Branching strategies"後
原來沒有單一的規則
其實要視專案性質及該單位的習慣
不過我覺得最基本的應該還是就像影片中所提到
應該是有"short" 及 "long running"兩者並存最適合
還是會有兩個主要的branch
develop + main
再由delvelop 衍生出feature或hot fix的short branch
short 做完測試後,併入develop
develop branch 做完測試後
再併入main後,上production
只是這怎麼串出來
還得再思考及學習
2. Pull requests 這個部分
講得比Amigoscode的課程好
Git and GitHub Tutorial For Beginners | Full Course [2021] [NEW]
Amigoscode也有提到pull requests
但是講得很模糊
tower的人講的課程
直接在github上演示
fork ->change -> pull request -> merge(Intergration)
的概念
反正就是要控制code的人
review 你的code
如果ok的話,看能否併入原本的開發那條線
這樣我就能夠理解Amigoscode課程所講的git flow
一般開發人員,你不可能直接去修改main branch
應該都是你clone到你的本地端後
依據你被授予的開發任務
開啟一個新的branch
開發測試完後
commit後, push到你自己的branch後
然後要求pull request
請code reviewer檢視完之後
把你的code歸併到原程式碼當中
然後再把你的branch砍掉
恩...應該是這樣吧~~~
3. 今天是2022/2/4,把merge及rebase的部分看完了
前一陣子,聽到一個開發人員把repository搞爛的例子...........?????

怎麼會讓開發人員直接push 到master或main branch哩 ???

這部影片的發行組織tower
在結尾的部分,給了一個url
說是advanced kit的影片可以免費下載
好...用手機下載要花2小時
下載完再來看吧~~

4.2022/2/12 原來advanced 課程在u2上也有
Advanced Git Tutorial - Interactive Rebase, Cherry-Picking, Reflog, Submodules and more
那我幹嘛還下載!!
下載的影片沒有英文字幕
U2上的影片沒字幕
雖然有些字的翻譯有誤差
但是看久了
get就git...靠~~
初看時...一頭霧水

===============================
嘿嘿...
vscode 要用ssh來push或fetch
你不特別config
我就不相信
你能送/收你在github上的repository
(要補充一下,底下的指令輸入都是叫起
vscode後,再叫起terminal,然後再轉入git bash喔)
1.產key,我的環境是產出mykey及mykey.pub

ssh-keygen -t rsa -b 4096 -C "your email"

2.把public key 貼到你的github account

cat mykey.pub|clip -- 把public key的內容傳到剪貼簿

影片有介紹怎麼把public key送進github 帳號

3.調整我自己的push url
因為我原本是用https clone 下來的
為了要測試ssh,
我就改了一下

git remote set-url --push origin git@github.com:xxxx/xxxx.git

然後再git remote -v
看一下內容就知道了

4.這是最重要的一步

要起一個ssh agent
eval "$(ssh-agent -s)"
再來就是讀進你自己的private key

ssh-add ./mykey

然後用下列指令確認private key有讀進來

ssh-add -l -E sha256

這時候你到你的working directory下後
直接打git push
就會同步囉......
看起來https url會比較好用多了
只是用https url的認證就會變成使用token
哼哼.....
我是懶得再貼token,有點累
因為那是在gcp cloud shell上使用的
現在在測vscode
用ssh ,我就只需要記憶我建key時所使用的phrase
token實在是有點麻煩
github文章 Error: Permission denied (publickey)
有提到相關的錯誤解法
stackoverflow 的Github permission denied: ssh add agent has no identities
有提到怎麼載入private key

==2022/02/09=============
Git and GitHub for Beginners - Crash Course
這部影片最後
講到了fork的流程
很棒..
就如同我之前的理解一樣