Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
作為DBA,我們也常常會碰到這樣的需求:需要在不影響線上業務的情況下給表添加一個字段或索引。如果是一張只有幾百或幾千條記錄的小表,這樣的需求是非常容易解決的。但如果所管理的表數據量已經上億、而且應用與數據庫交互非常頻繁,不允許停機窗口的出現,這樣的需求又該如何滿足?
大多數的alter table操作都會涉及lock-->copy to new table-->rename-->unlock的過程,鎖表時間會很長,而且alter table 的process不可被kill,一旦執行就不可回退。
在MySQL5.5和之前版本,在運行的生產環境對大表(超過數百萬紀錄)執行Alter操作是一件很困難的事情。因為將重建表和鎖表,影響用戶者的使用。
從MySQL5.6開始,Online DDL特性被引進。他增強了很多種類的Alter Table操作避免拷貝表和鎖表,在運行Alter操作的同時允許運行select,insert,update,delete語句。因此在最新版本,我們可以通過使用ALGORITHM和LOCK選項抑制文件拷貝和加鎖。
但是即使在MySQL5.6,仍然有一些Alter操作(增加/刪除列,增加/刪除主鍵,改變數據類型等)需要重建表。并不建議直接在線上使用alter table。如果線上有DDL的需求我們建議使用以下兩種方式:
1、主從架構輪詢修改
2、使用在線修改工具online-schema-change
對于第一種方式,使用的前提是,你的數據庫架構是一個集群,如果不是,也就無所謂的輪詢修改。修改的原理就是利用主從服務,在應用無感知的情況下,得到停機窗口,進行修改。今天我們著重講第二種方式,利用第三方工具實現在線大表的DDL操作。這種方式在alter操作更改表結構的時候不用鎖定表,也就是說執行alter的時候不會阻塞寫和讀取操作。
參考官網:https://www.percona.com/doc/percona-toolkit/LATEST/pt-online-schema-change.html
pt-online-schema-change [OPTIONS] DSN
pt-online-schema-change alters a table’s structure without blocking reads or writes. Specify the database and table in the DSN. Do not use this tool before reading its documentation and checking your backups carefully.
pt-online-schema-change --help 可以查看參數的使用,如果只是要修改個表結構,只需要知道幾個簡單的參數就可以了
截圖如下:
為避免每次都要輸入一堆參數,寫個腳本復用一下。
#!/bin/bash #copyright by hwb table=$1 alter_conment=$2 cnn_host='172.16.xx' cnn_user='root' cnn_pwd='xxxx' cnn_db='lcpdb' echo "$table" echo "$alter_conment" pt-online-schema-change --charset=utf8 --no-version-check --user=${cnn_user} --password=${cnn_pwd} --host=${cnn_host} P=3306,D=${cnn_db},t=$table --alter "${alter_conment}" --execute --no-check-alter
下面用例子來說明下。
如添加表字段SQL語句為:
ALTER TABLE tb_test ADD COLUMN column1 tinyint(4) DEFAULT NULL;
那么使用pt-online-schema-change則可以這樣寫
sh pt_epms.sh tb_test "ADD COLUMN column1 tinyint(4) DEFAULT NULL"
執行如下:
查看表結構已經修改完成:
SQL語句:
ALTER TABLE tb_test MODIFY COLUMN id int(11) unsigned NOT NULL DEFAULT '0';
pt-online-schema-change工具:
sh pt_epms.sh tb_test "MODIFY COLUMN id int(11) unsigned NOT NULL DEFAULT '0'"
執行如下:
查看表結構:
SQL語句:
ALTER TABLE tb_test CHANGE COLUMN name adress varchar(30);
pt-online-schema-change工具:
sh pt_epms.sh tb_test "CHANGE COLUMN name address varchar(30)"
SQL語句:
ALTER TABLE tb_test ADD INDEX idx_address(address);
pt-online-schema-change工具:
sh pt_epms.sh tb_test "ADD INDEX idx_address(address)"
pt-online-schema-change工具還有很多其他的參數,可以有很多限制,比如限制CPU、線程數量、從庫狀態等等,不過我做過一個超過1000W表的結構修改,發現幾乎不影響性能,很穩定很流暢的就修改了表結構,所以,對以上常規參數的使用基本能滿足業務。
注意一定要在業務低峰期做,這樣才能確保萬無一失。
后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~
托武寧路沿線科研院所和國家機器人檢測與評定中心等重點項目,普陀區聯動華東師范大學、同濟大學等院校資源,把武寧路打造成為帶動全區轉型發展的創新軸線。
武寧路,上海連接長三角的交通主動脈之一。近期,川流不息的通衢串起欣喜連連——這一側,走過70年的新中國首個工人新村——曹楊新村,以城市更新更迭出一個破圈的百禧公園;那一側,一個新近成立的“華普人才基金”讓建校70年的華東師大與所在區域深度合作,依托人才及項目產生更大破圈溢出效應。
一頭聚焦人才育用,一頭發力宜居宜業,更緊扣引才用才留才全周期,這正是“大院大所大企大校”資源集聚并不占優勢的普陀區,貫徹落實黨的十九屆六中全會精神、中央人才工作會議精神,面向未來發展所下出的一盤大棋局,贏得競爭主動所鍛鑄的一招先手棋——以“人才”這一要素為發力點,以此帶動、撬動所有關鍵資源、要素融通匯聚,從而助推整個區域實現從硬核實力到軟實力的全面躍變提升。
正如普陀區委書記姜冬冬所說,將把握人才“第一資源”,激活創新“第一動力”,實現發展“第一要務”,打造近悅遠來、宜居宜業的良好人才生態,聚天下英才而用之,成為區域發展最關鍵的戰略資源、最核心的力量支撐。
躍變提升:以人才打開自身發展“兩個扇面”
武寧路沿線,匯聚著19家科研院校、48家功能平臺和200多家高新技術企業。未來,其閃亮標簽是“武寧創新發展軸”。
除了武寧路,普陀區域地理標識中還有長度等同于半個馬拉松賽程、蜿蜒流淌的蘇州河。未來,這一綠色生態岸線同樣將化身為強勁發展動線,與武寧創新發展軸一同構成體現區域新功能的“新T臺”——集聚各類創新要素、平臺載體,完善科創服務體系,促進科技創新與產業融合發展。
功以才成,業由才廣。有什么樣的人才結構,從某種程度上決定了區域產業結構,更關系區域經濟發展韌勁。要開辟新賽道,聚合競爭新優勢,普陀區對于人才的熱望從來沒有像今天這般強烈。
如何將上海輻射長三角的“西大堂”變為配置高端資源要素的“新門戶”,從而打開普陀區自身發展的“兩個扇面”?
過去五年,普陀區騰籠換鳥,先后關閉了銅川路水產市場等一系列初級商貿市場,引進360華東大安全總部、阿里數字農業供應鏈中心、京東上海中心等一批“五型經濟”頭部企業及項目,拉開了以數字化驅動的海納小鎮、金沙島(中新合作)科技城等建設序幕,實現了從原先以房地產業、傳統商貿業等為支撐,到以科技創新為驅動的轉型升級。智能軟件、研發服務、科技金融、生命健康4個重點產業在經濟發展中的比重達28%。現代服務業在經濟中的占比創歷史新高。
以中以(上海)創新園為例,截至目前,園區已和40余家科技企業、科研機構、中介服務機構及中以合作項目簽訂協議,實際入駐企業60余家,初步形成醫療健康與生命科學、人工智能與機器人、互聯網與信息技術的產業集聚。過去五年的爬坡過坎,在姜冬冬看來,正是為加速轉型而積蓄動能。當下,更要用好人才這一“激活因子”,助推各項工作在新起點躍變提升。
先手棋:為干事創業者提供廣闊舞臺
翻開普陀區“十四五”藍圖,一項“411”產業倍增計劃亮眼。即智能軟件、研發服務、科技金融、生命健康4個重點產業稅收比重每年增加1個百分點,到“十四五”時期末將合計比重達40%,這也將為人才提供廣闊的產業舞臺。這正是普陀區下好人才工作“先手棋”的一個具象剖面。
前不久結束的普陀區第十一次黨代會正式提出“建設近悅遠來的人才發展新高地”目標任務。既要善于整合區內資源,形成工作合力,又敢于引入外部力量,持續探索創新。
首先,向內挖潛。今年中央人才工作會議召開后,普陀區第一時間發布“才聚普陀”人才新政,進一步支持高層次人才創新創業,提高了人才開發培育、人才安居等支持標準,不斷做強“政策磁場”。建好中以(上海)創新園、上海清華國際創新中心“兩大金字招牌”,重點聚焦“卡脖子”領域研究,建設研究平臺,推動人才引進、團隊搭建、成果轉化,更好融入全市重點產業布局;做優上海機器人研發與轉化、上海工業控制系統安全創新2個功能型平臺,強化與華東師大等區域內高校、科研院所深度合作。以“華普人才基金”為例,以政府小投入撬動社會資源大參與。
同時,巧借外力,積極引入創新主體和社會組織,主動融入長三角一體化發展戰略,謀求人才工作突破創新。與浙江清華長三角研究院合作建立孵化器,通過科研合作、項目孵化,建立人才吸引的離岸平臺,加快高層次人才引進、智力成果轉化。
對此,不少企業深有感觸。360集團華東大安全總部去年4月落戶普陀區,今年又加碼整合新業務新板塊落子。360數科副總裁田帆表示:“當下的普陀區,正似一口熱氣騰騰的‘大火鍋’,等待著所有干事創業者的‘眾人拾柴’,360非常樂意參與其間。”
主戰場:謀布適合人才落定發展的大生態全周期
對人才而言,最具吸引力的要素之一:人盡其才,才盡其用。
普陀區不斷優化營商環境,從產業鏈、生態鏈兩端形成閉環,更有針對性地引才留才,建設人才發展新高地,讓人才的根扎得更深,更好地“聚天下英才而用之”,力爭在人才這一“主戰場”實現大作為。
一方面,將人才政策納入產業政策體系,圍繞企業發展、科技創新、人才培育給予多層次支持,促進產業精準引才。同時,積極發揮創新創業平臺對各類智力資源、創新要素的柔性吸附,讓更多優秀人才走到科技創新的前臺、走上事業發展的舞臺。特別是,全力打響“人靠譜(普)、事辦妥(陀)”金名片,延伸打造“人靠譜(普)、才無憂”等服務品牌,緊扣人才所關切,從多維度提升人才服務效能。在強化服務的基礎上,更謀布適合人才落定發展的大生態、全周期,實現“人靠譜(普)、才相聚”。
看得見的是有形的載體建設、政策扶持,看不見的是人才鏈、生態鏈的融通匯聚,最終發生良好化學反應。
普陀區織密人才服務網絡,做強“人才管家”團隊,深化“人才優享卡”服務,推動“人才服務一件事”集成,提供“全程幫辦”“24小時便利店式服務”,幫助人才解決“急難愁盼”,當好人才的“最佳合伙人”“最暖店小二”。
針對人才關心的安居問題,普陀區積極拓寬人才公寓房源籌集渠道,率先開發“人才安居平臺”,盤活5000多套租賃房源,讓人才在線上輕松完成各類流程手續。“十四五”期間,將積極籌集社會化安居房源,提供萬套人才公寓。
“搶抓機遇,乘勢而上,努力實現經濟發展高質量、城區形象高顏值、人民生活高品質、城區治理高效能、干部人才高素質,讓人才成為其間關鍵一招,奮力跑出加速度。”姜冬冬這樣篤信。
作者:張曉鳴 顧一瓊
編輯:范菁
于繪圖和印刷而言,「單位」很相當重要的,然而在網頁排版里,單位也是同樣具有重要性,在CSS3 普及以來,更添加了一些方便好用的單位( px、em、rem.. .等),這篇文章將整理這些常用的CSS 單位,希望能夠幫助到你在工作上能使用的更加得心應手。
目前我們接觸的范圍來說,若要把單位做區分,最簡單可以分為「網頁」和「印刷」兩大類,通常對于CSS來說只會應用到網頁的樣??式,畢竟真正要做印刷,還是會傾向通過排版軟體來進行設計。
網頁( 單位 )
網頁( 屬性名稱 )
印刷(簡單了解下)
以下將展示四種不同單位的示例,為了直觀簡單,四個示例都套用預設的div格式,純粹改變font-size看看有何不同,由于子元素若沒有設定font-size,會自動繼承父元素的font-size,使用上就應該要預先初始化字體大小,下面這兩段CSS可以將所有的元素字體大小預設為16px,接下來可以進行個別調整。
html{ font-size:16px; } html * { font-size: 1rem; }
1、px
px 是絕對單位,因此只要設定多少px,就會精確的呈現,對于一些講求精準位置的排版而言十分有用,如示例展示的,指定多大 px 字體就會多大。
<div style="font-size:16px;">16px <div style="font-size:20px;">20px <div style="font-size:24px;">24px <div style="font-size:16px;">16px <div style="font-size:32px;">32px</div> </div> </div> </div> </div>
2、em
em是相對單位,為每個子元素通過「倍數」乘以父元素的px值,如果我們每一層div都使用1.2em,最內層就會是16px x 1.2 x 1.2 x 1.2 x 1.2 x 1.2=39.8px。(瀏覽器預設字體大小為16px,若無特別指定則會直接繼承父元素字體大小)
<div style="font-size:1.2em;">1.2em <div style="font-size:1.2em;">1.2em <div style="font-size:1.2em;">1.2em <div style="font-size:1.2em;">1.2em <div style="font-size:1.2em;">1.2em</div> </div> </div> </div> </div>
3、rem
rem是相對單位,為每個元素通過「倍數」乘以根元素的px值,如果我們每一層div都使用1.2rem,最內層就會是16px x 1.2=19.2px。(根元素指的是html的font-size,預設為16px )。
<div style="font-size:1.2rem;">1.2rem <div style="font-size:1.2rem;">1.2rem <div style="font-size:1.2rem;">1.2rem <div style="font-size:1.2rem;">1.2rem <div style="font-size:1.2rem;">1.2rem</div> </div> </div> </div> </div>
4、%
%百分比是相對單位,和em大同小異,簡單來說em就是百分比除以一百,如果我們每一層div都使用120%,就等同于1.2em,最內層就會是16px x 1.2 x 1.2 x 1.2 x 1.2 x 1.2=39.8px。
<div style="font-size:120%;">120% <div style="font-size:120%;">120% <div style="font-size:120%;">120% <div style="font-size:120%;">120% <div style="font-size:120%;">120%</div> </div> </div> </div> </div>
5、small、medium、large...等
字體大小的屬性有七種,分別是xx-small、x-small、small、medium、large、x-large和xx-large,除了x-small,其余六種分別對應h6~h1的標簽文字大小,根據W3C的規范,以medium預設16px為基礎(若html字體預設大小改變,medium也會跟著變),使用固定的百分比乘以medium的大小,例如xx-small預設為16px x 0.6=9.6px(瀏覽器顯示為12px )。
<div style="font-size:xx-small;">xx-small <div style="font-size:x-small;">x-small <div style="font-size:small;">small <div style="font-size:medium;">medium <div style="font-size:large;">large <div style="font-size:x-large;">x-large <div style="font-size:xx-large;">xx-large</div> </div> </div> </div> </div> </div> </div>
6、larger、smaller
larger 和smaller 就是固定百分比為單位,larger 為父層的120%,smaller 為父層的80%。
<div style="font-size:medium;">medium <div style="font-size:larger;">larger <div style="font-size:larger;">larger <div style="font-size:larger;">larger <div style="font-size:smaller;">smaller <div style="font-size:smaller;">smaller <div style="font-size:smaller;">smaller</div> </div> </div> </div> </div> </div> </div>
熟悉了字體大小單位之后,你就更夠能有系統的進行設計整個網站的CSS字體架構,不過font-size 本身和font-family 有著一些復雜的關系,不同的font-family 有時也會影響font-size 的設定,因此使用上還是得稍微注意一下啰!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。