2019年8月29日 星期四

Docker - 小筆記((整理中))

測試 Docker 是否安裝成功,
通常會使用 hello-world 來測試,
不過要注意的是,每下一次下面的指令,container 就會多一個
docker run hello-world

入門指令
## List Docker CLI commands
docker
docker container --help

## Display Docker version and info
docker --version
docker version
docker info

## Execute Docker image
docker run hello-world

## List Docker images
docker image ls

## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq


docker run

  • -d background 執行
  • -p [docker port]:[外部 prot] 指定 port 對應

docker run -d -p 4000:80 friendlyhello

docker container

  • ls 列出 container

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

  • stop [container id] 停止指定的 container

docker container stop 1fa4ab2cf395

docker images

  • 列出 images

$ docker images

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
friendlyhello            latest              d9e555c53008        3 minutes ago       195MB
gordon/get-started         part2               d9e555c53008        3 minutes ago       195MB
python                   2.7-slim            1c7128a655f6        5 days ago          183MB
...

  • 等同 docker image ls

$ docker image ls


docker build -t friendlyhello .  # Create image using this directory's Dockerfile
docker run -p 4000:80 friendlyhello  # Run "friendlyhello" mapping port 4000 to 80
docker run -d -p 4000:80 friendlyhello         # Same thing, but in detached mode
docker container ls                                # List all running containers
docker container ls -a             # List all containers, even those not running
docker container stop <hash>           # Gracefully stop the specified container
docker container kill <hash>         # Force shutdown of the specified container
docker container rm <hash>        # Remove specified container from this machine
docker container rm $(docker container ls -a -q)         # Remove all containers
docker image ls -a                             # List all images on this machine
docker image rm <image id>            # Remove specified image from this machine
docker image rm $(docker image ls -a -q)   # Remove all images from this machine



參考
https://docs.docker.com/get-started/














2019年8月16日 星期五

Git - 相關常用指令


  • SSL 憑證問題
    1. git 從 2.14 版起支援 windows 的憑證存放區設定
    2. 使用 git config --global http.sslBackend schannel 指令啟用,會跳出帳號密碼視窗讓你輸入
  • pwd
    • 顯示目前路徑
  • cd
    • 切換路徑
  • git status
    • 顯示目前 branch 狀態
  • git add [path/file_name]
    • 將檔案移到 stage 區
  • git reset HEAD [path/file_name]
    • 將檔案從 state 區移回到 working area 區,修改還在
  • git checkout [branch]
    • 切換 branch
  • git branch
    • git branch -d [branch]
      • 刪除 [branch]
    • git branch -D [branch]
      • 強制刪除 [branch]
  • git push [origin] :[branch]
    • 刪除遠端 branch
    • origin 指的是遠端主機的名字
    • [-f | -force ] 強制覆蓋遠端
  • git checkout -b [new_branch] [old_branch]
    • 建立 [new_branch] 且複製 [old_branch]
    • 可將 [new_branch] reset soft,用來重新整理 commit 點
  • git show [commit_id]
    • 顯示 [commit_id] 修改了那些檔案與內容
    • --no-patch 不顯示檔案與內容,只顯示 commit message
  • git commit --amend --no-edit
    • 直接將修改的檔案加入上次的 commit
    • --no-edit 不修改 commit message

2019年5月21日 星期二

C# - 內送的表格式資料流(TDS) 遠端程序呼叫(RPC) 通訊協定資料流不正確


今天在跨 DB 批次塞資料的時候出現這個錯誤,












一開始以為是某筆資料問題、或是組 Insert SQL 哪邊沒處理好,
查了好久終於找到是寫 Log 的地方存檔錯誤,
根據參數 @p5 推斷出對應的欄位,
該欄位的資料型態是 VARCHAR(MAX),
於是乎終於在 GOOGLE 下對了關鍵字
"c# varchar max TDS RPC"

然後找到了發生一樣問題的文章
使用DbCommand傳遞參數發生例外
SQLCLR-SqlString Max Size 8000 Limitation

根據文章我的理解是這樣的,
在產生 Insert SQL 的時候,會去計算內容大小,
8000 以內跟 8000 以上產生的 statement 不一樣,
但如果內容有中文時,會造成計算上的錯誤,
所以就出現這個錯誤訊息了,
最後改法沒用文章裡面的解法,
直接把 VARCHAR(MAX) 改成 NVARCHAR(MAX) 結束。

2019年3月15日 星期五

SQL SERVER - 如何讓 sa 可以連線

被問太多次了,只好寫一下...
  1. 設定 SQL Server 驗證模式

    1. 選到 SQL SERVER 滑鼠右鍵【屬性(R)】
    1. 在【伺服器屬性】選【安全性】,改成【SQL Server 及 Windows 驗證模式(S)】
    1. 【確定】之後需要重啟SQL Server服務
  1. 設定 sa 為可登入

    1. 【安全性\登入】選【sa】,在【sa】上滑鼠右鍵【屬性(R)】。如果 sa 不能登入應該會有紅色 x 符號,不確定就跟著設定一次。
    1. 在【登入屬性】中,選【一般】,修改【密碼】,剩下的屬性如圖。
    1. 接著選【狀態】,設定如圖。確定之後應該就可以用 sa 連線


2019年3月12日 星期二

SQL - 清空 DB 所有 TABLE



DECLARE @name VARCHAR(50)

DECLARE table_cursor CURSOR  FOR
SELECT name FROM sys.tables
OPEN table_cursor
FETCH NEXT FROM table_cursor INTO @name;

WHILE @@FETCH_STATUS = 0 
BEGIN

PRINT 'TRUNCATE TABLE ' + @name;
EXEC ('TRUNCATE TABLE ' + @name);

FETCH NEXT FROM table_cursor INTO @name;
END

CLOSE table_cursor; 
DEALLOCATE table_cursor; 

SQL SERVER - 查詢 TABLE 大小、清除 TABLE 未使用空間,縮小 DB 檔案


先查詢每個 TABLE 占用的空間大小


SELECT 
    t.NAME AS TableName,
    --s.Name AS SchemaName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 /1024 AS TotalSpaceMB, 
    SUM(a.used_pages) * 8 /1024 AS UsedSpaceMB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 /1024 AS UnusedSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, s.Name, p.Rows
ORDER BY 
    --t.Name
SUM(a.total_pages) DESC

清空 TABLE

TRUNCATE TABLE XXX_TABLE

修改 DB 的復原模式為簡單


ALTER DATABASE IAM_SKL
SET RECOVERY SIMPLE
--SET RECOVERY FULL;
GO

縮小 DB 實體檔案,清出未使用空間

USE XXX_DB;
DBCC SHRINKFILE (XXX_DB, 7);
GO
DBCC SHRINKFILE (XXX_DB_log, 7);
GO

修改 DB 邏輯名稱 - 備份還原時使用

Alter DataBASE DB_NAME
MODIFY FILE(NAME= 'DB_NAME' ,NEWNAME= 'DB_NAME-BACKUP' )
Alter DataBASE DB_NAME
MODIFY FILE(NAME= 'DB_NAME_log', NEWNAME= 'DB_NAME-BACKUP_log' )


2019年3月10日 星期日

VS2013 - Win10 無法安裝


電腦重新安裝之後開始要安裝開發環境...
結果第一步就卡關!
VS2013 無法安裝!!!
而且.....也看不出什麼原因!!!
google 了一下,網路上最先找到的這個
解決Windows 10 X64無法安裝Visual Studio 2013
不過這個看起來是針對已經安裝過 VS2013 ,然後無法安裝語言包的問題,
所以我不是這個問題,這上面提到的解法也無法幫我解決!

後來又找到這篇
win10不能安装vs2013,怎么解决?
直接跟著第二點作法將安裝檔的快取清除(如下)

卸载所有.net framework,并且清除VS 安装缓存,清除缓存的命令如下所示:
1.cd "C:\ProgramData\Package Cache"
2.del /F /S *.msiDelete /F /S *.cab :重启电脑,点击安装。

然後也沒重開機就安裝成功了!