發表文章

目前顯示的是 2016的文章

使用Azure SQL Database (PaaS)技巧

圖片
在Azure上建立SQL Database可快速享受高可用/延展的好處 建立從選單開始大家都會建立 以下講一些比較特別的部分 A. 還原/匯入資料庫不能使用.BAK,我們一般在還原SQL database時習慣使用備份成.bak檔案,再進行資料的還原。不過在Azure sql database上我們要使用bacpac檔案格式。 作法如下 從 資料庫中將資料備份出來: 開啟 Management Studio 並連接到您在 [物件總管] 中的來源資料庫。 以滑鼠右鍵按一下 [物件總管] 中的來源資料庫,指向 [工作],並按一下 [匯出資料層應用程式]。 在匯出精靈中,將匯出設定為將 BACPAC 檔案儲存到本機磁碟位置或 Azure Blob。匯出的 BACPAC 一律會包含完整的資料庫結構描述,以及預設之所有資料表的資料。如果您想要排除部分或所有資料表的資料,請使用 [進階] 索引標籤。比方說,您可能會選擇只匯出參考資料表的資料,而不是所有資料表的資料。 重要:  將 BACPAC 匯出至 Azure blob 儲存體時,請使用標準儲存體。不支援從進階儲存體匯入 BACPAC。 B. 記得將azure sql database防火牆打開,這個不太是問題,因為如果沒有打開而嘗試練入AZURE返回錯誤訊息中會提示要打開firewall C. DB帳號的建立,SQL DB帳號建立很麻煩沒有UI可以用要下指令 不熟悉的人可以利 用此 工具 建帳號 See also : 1. 使用 SQL Server Management Studio 將 SQL Server 資料庫匯出到 BACPAC 檔案 2. 匯入 BACPAC 檔案以建立新的使用者資料庫

SQL SERVER 用戶/管理員的權責區分

資料庫管理的權責問題 一直都是一個很微妙的事 下表示我管理資料庫的權責依據 提供大家參考 項目 使用者 DB管理員 各資料庫基本資訊   V 各主機磁碟空間資訊---各磁碟空間使用狀況   V 定期維護紀錄 伺服器保養   V 作業系統LOG   V SQL LOG   V 各資料庫空間使用狀態(含交易LOG空間)   V 資料庫作業排程執行狀況   V 資料庫備份狀態   V 伺服器效能包含 CPU、Memory峰值及均值   V 資料庫異動狀況(月份)新增或刪除   V 資料表異動狀況(月份)新增或刪除 V   資料庫主機參數設定   V 資料庫參數設定 V   表格最佳化(RUNSTATS) V   資料庫語法與改善建議 CPU 高峰值對應 NMON 查出耗效能之 SQL 語法,提出改善建議: 看 CPU : 活動 - 所有資料指標 活動 - 排名最前面的資料指標 活動 - 所有工作階段 活動 - 排名最前面的工作階段 活動 - 休眠工作階段 活動 - 排名最前面的連接 依存在時間的排名最前面交易 效能 - 批次執行統計資料 效能 - 物件執行統計資料 效能 - 依平均 CPU 時間的排名最前面查詢 效能 - 依總 CPU 時間的排名最前面查詢 看記憶體: 記憶體耗用量 看 Deadlock : 依被封鎖交易技術的排名最前面交易 依鎖定計數器的排名最前面交易 活動 - 所有進行封鎖交易 磁碟耗用狀態: 效能 - 依平均 IO 的排名最前面查詢 效能 - 依總 IO 的排名最前面查詢 索引的資訊: 高成本耗用 組態變更紀錄 ...

如何在POWERMAP插入圖片

圖片
如何在 POWER MAP 插入圖片 1. 進入 POWERMAP 後,在地圖的 資料點 上按滑鼠右鍵,新增註解 2. 新增註解的部分可以選擇圖像 3. 選擇圖片 即完成 See also :

SQL Server 如何讓DB_OWNER看到更多資料庫報表

圖片
SQL SERVER預設就建了很多報表 但是我們通常提供用戶的權限角色是DB_OWNER DB_OWNER 只能看到以下 SQL 預設報表 磁碟耗用狀態: 磁碟使用量 依資料表的磁碟使用量 依分割區的磁碟使用量 排名最前面資料表的磁碟使用量 索引的資訊: 索引實體統計資料(耗效能,需於離峰時間執行) 其他: 備份與還原事件 但如果 Grant VIEW SERVER 權限後 USE master ;   GRANT VIEW SERVER STATE TO TESTUSER(登入帳號) ;   GO   則DB_OWNER可以看到 看 CPU : 所有交易 物件執行統計資料 依存在時間的排名最前面交易 看記憶體:   記憶體最佳化物件的記憶體使用量 物件執行統計資料 看 Deadlock : 所有進行封鎖交易 依鎖定計數的排名最前面交易 依被封鎖交易計數的排名最前面交易 磁碟耗用狀態:   磁碟使用量 依資料表的磁碟使用量 依物件的資源鎖定統計資料 依分割區的磁碟使用量 使用者統計資料 排名最前面資料表的磁碟使用量 索引的資訊: 索引實體統計資料( 耗效能,需於離峰時間執行 ) 索引使用量統計資料 其他: 資料庫一致性記錄 結構描述變更記錄 備份與還原事件 See also : GRANT 伺服器權限 (Transact-SQL)

JAVA Servlet create image on fly (API直接產生圖形輸出)

* 需求:呼叫API的時候直接透過java graphic api進行產生圖形後輸出 常見於動態產生圖片(浮水印/驗證圖形/) import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.swing.ImageIcon; import java.awt.Color; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import com.sun.image.codec.jpeg.JPEGCodec; @WebServlet("/ImageCreator") public class ImageCreator extends HttpServlet { private static final long serialVersionUID = 1L;   private static int FrameWidth=554;   private static int FrameHeight=900;;     public ImageCreator() {         super();       ...

JAVA Servlet 列舉TOMCAT字型 與設定(上傳)客製化字型

圖片
因為有個案子是使用百度雲 由於官方並沒有雲端環境字型的清單 因此我自己寫了一個程式 列舉該環境可用的字型 以及上傳自己的字型 以下是列舉 import java.awt.GraphicsEnvironment; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/getFont") public class getFont extends HttpServlet { private static final long serialVersionUID = 1L; private PrintWriter out;         public getFont() {         super();         // TODO Auto-generated constructor stub     } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); out = response.getWrite...

2016 Tech Summit SQL Server 最佳安全作法

紀錄一下本日課程上學習到的 SQL Server 最佳安全建議作法 10/12 Tech Summit SQL 安全最佳作法   *盡量用windows帳號   *非AD帳號(自訂帳號)會被記錄再作業用機器上   *disable or rename  sa帳號   *密碼原則用強勢密碼 (8個字以上)   *不同的服務用不同的帳號   *不要加入角色到sysadmin中(不會被稽核)     如果要,自行建立伺服器角色(RULE) 賦予control server,此權限近於sysadmin但會被稽核    *停用guest    *預設的public角色 可執行MASTER資料庫的一些XP(擴充預存程序),可以看到一些系統醫訊   *不要使用 1433 PORT、不要使用動態PORT(防火搶無法擋),亦避免多一次查詢   *保護服務帳戶 (不同服務不同帳號, 密碼加強,用作小權限) * 利用Microsoft baseline security analyzer 進行安全掃描 * 使用TDE加密 記得要額外備份認證與同步金鑰 MASTER KEY>CERT * 紀錄層級安全 (細緻的存取控制),集中的安全邏輯    RLS (row level security)安全定義紀錄再TABLE上    兩種安全敘述  Filter,Block See also :

汐止區的月子中心SUVERY 價格/特點分析

緣起: 老婆懷孕了 預產期在105/12~106/1之間 因此幫老婆看了一下台北市月子中心 主要在經濟跟品質都要取捨的狀態下 希望一天控制在五千上下 這個目前台北市已經無法符合(都要六千以上) 因此就近看汐止區的 分析: 由於網路上的資料大多是住或是參觀的心得 缺乏老公最關心的"價格" 所以我整理一下我蒐集到的資料 以下價格請參考(這大約是2013~2015的價格  2016大概漲價15~20%) 月子中心通常都會分 小中大型房  價格比例大概是 1、1.2、1.5 名稱 地址 MEMO 價格 台北市立聯合醫院中興院區 產後護理之家 每日參觀時間:15:00~16:00至本院10樓A區,有專人為您服務。 電話登記:25523234轉5099 、5095 衛福部產後護理機構評鑑『優等』 衛生局督導考評『特優 1.溫馨房4550/日(包含產後調理餐800,若不訂購可扣800元) 2.精緻房5400/日(包含產後調理餐800,若不訂購可扣800元)  不收預約金、出院費用可刷卡。 雙璽人文產後護理之家 新北市汐止區大同路2段240號17樓之一 Tel:(02)2691-9818  雙人套房 獨立式空調、水泥磚牆隔間、線板設計挑高空間、氣密窗,寬頻上網、第四台、32吋液晶電視、DVD播放機、冷氣、專屬衣櫃、冰箱、暖氣、浴室乾濕分離(沐浴乳、洗手乳、暖房、換氣乾燥等設備) 與汐止國泰醫院簽轉診合約。 4200上下 新生產後產後護理之家(原藍田產後護理之家) 新北市汐止區新台五路一段207號7樓 電話 (02)2647-6299 汐止老牌產後護理之家  4000上下 滿園產後護理之家 台北市光復南路415巷2號3樓(仁愛禦品) 諮詢專線:(02)2345-8767 與國泰醫院之小兒科醫師及長庚醫院之婦產科醫師簽訂合約;產婦13房、嬰兒15床,由9位護理人員共同照護,嬰兒室旁邊有書報櫃及臭氧殺菌、按鈕式的水龍頭 3600...

MySQL Workbench 6.3 ce Crash 無法啟動問題

圖片
之前用WIN8 安裝最新的\MySQL 一路上很順利 但改裝在WIN 7 x64 sp1上 MySQL 的Workbench無法啟動 看了很多文章 解決方法如下 1.安裝  Microsoft Visual C++ 2010 Redistributable Package (x86) 2.解安裝原有的workbench 3.重抓 mysql workbench 6.3(x86)  4. 安裝後啟動  應該就可以了 結論 mysql workbench x64的版本跑在Win7 64上有相容性問題 請改用x86 See also : http://stackoverflow.com/questions/26864653/mysql-workbench-crash-on-start-on-windowshttp://stackoverflow.com/questions/26864653/mysql-workbench-crash-on-start-on-windows

SQL SERVER 副本建立帳號 SID複製 (SQL ALWAYS-ON 完成加入資料庫後最後一個步驟)

看到很多SQL ALWAYS-ON的教學 只教到跑精靈把資料庫加入AG就結束了 你知道這樣 當資料庫FAIL-OVER時是不WORK的嗎? 因為副本缺乏主節點上的登入帳號 AG切換時 除了資料庫兩邊會自動同步外 帳號的新增 是要"手動"的 因此 當資料庫加入完AG群組後 請在主資料庫上跑已下指令 USE master GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimal GO CREATE PROCEDURE sp_hexadecimal @binvalue varbinary(256), @hexvalue varchar (514) OUTPUT AS DECLARE @charvalue varchar (514) DECLARE @i int DECLARE @length int DECLARE @hexstring char(16) SELECT @charvalue = '0x' SELECT @i = 1 SELECT @length = DATALENGTH (@binvalue) SELECT @hexstring = '0123456789ABCDEF' WHILE (@i <= @length) BEGIN DECLARE @tempint int DECLARE @firstint int DECLARE @secondint int SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1)) SELECT @firstint = FLOOR(@tempint/16) SELECT @secondint = @tempint - (@firstint*16) SELECT @charvalue = @charvalue + SUBSTRING(@hexstring, @firstint+1, 1) + SUBSTRING(@hexstring, @secondint+1, 1) SELECT @i = @i + 1 END SELECT @hexvalue = @charvalue GO ...

MS SQL SERVER看交易紀錄的T-SQL

如果想要看交易紀錄的成長 / 變化 除了蒐LOG以外 也可以透過以下語法監看 -- Recovery model, log reuse wait description, log file size, log usage size -- and compatibility level for all databases on instance SELECT db . [ name ] AS [ DATABASE Name ] , db . recovery_model_desc AS [ Recovery Model ] , db . log_reuse_wait_desc AS [ Log Reuse Wait Description ] , ls . cntr_value AS [ Log Size ( KB ) ] , lu . cntr_value AS [ Log Used ( KB ) ] , CAST ( CAST ( lu . cntr_value AS FLOAT ) / CAST ( ls . cntr_value AS FLOAT ) AS DECIMAL ( 18 , 2 ) ) * 100 AS [ Log Used % ] , db . [ compatibility_level ] AS [ DB Compatibility Level ] , db . page_verify_option_desc AS [ Page Verify OPTION ] FROM sys . DATABASES AS db INNER JOIN sys . dm_os_performance_counters AS lu ON db . name = lu . instance_name INNER JOIN sys . dm_os_performance_counters AS ls ON db . name = ls . instance_name WHERE lu . counter_name LIKE 'Log File(s) Used Size (KB)%' ...

MS SQL SERVER 當資料庫混損 而沒有備份時候的救援方式

最近發生一件鳥事 由於下面的工程師在安裝完資料庫後 沒有設定交易紀錄備份 因此LDF磁碟被寫滿 造成資料庫異常 重啟後 發現資料庫處於「正在還原」狀態下 如果你跟我一樣綏  可以試試看以下步驟 進行修復 步驟如下 1. 由於原資料庫 MDF 、 LDF 被 ” 正在還原 ” 狀態咬住 ,所以先把 資料庫 暫時停用,停用後 把該資料庫 MDF 、 LDF 先複製到 別的地方 。 2. 重新於 資料庫 上建立同名之新的 資料庫 → 離線 USE master GO ALTER DATABASE [資料庫名稱] SET OFFLINE; GO 3. 將有問題之資料取代新的資料庫 → 上線 --步驟03. 將先前的資料檔案覆蓋掉此新建立的資料庫檔案。 --步驟04. 若嘗試執行重新上線此資料庫,例如: USE master GO ALTER DATABASE [資料庫名稱] SET ONLINE; GO 4. 切成緊急模式 → 切換單人模式 → 進行 DBCC 修復 ALTER DATABASE [資料庫名稱] SET SINGLE_USER SET EMERGENCY; GO DBCC CHECKDB ( [資料庫名稱] , REPAIR_ALLOW_DATA_LOSS) ; GO 5.完成後進行檢查 use master GO DBCC CHECKDB( [資料庫名稱]) GO 6.如果沒有好 可以在用以下指令 在修復一次 ALTER DATABASE [資料庫名稱] WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB ( [資料庫名稱] , REPAIR_ALLOW_DATA_LOSS) ; GO 7.完成後切回多人模式 ALTER DATABASE [資料庫名稱] SET MULTI_USER; GO 以上 God bliss you! See also : 交易記錄檔(transaction log)意外損毀,僅剩下資料檔案可用為例。錯誤訊息:訊息 1813,層級 16,狀態 2 ...