![mongoDB基礎(chǔ)架構(gòu)簡析_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/dc2e7cef-5fa6-4601-8550-318431c14609/dc2e7cef-5fa6-4601-8550-318431c146091.gif)
![mongoDB基礎(chǔ)架構(gòu)簡析_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/dc2e7cef-5fa6-4601-8550-318431c14609/dc2e7cef-5fa6-4601-8550-318431c146092.gif)
![mongoDB基礎(chǔ)架構(gòu)簡析_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/dc2e7cef-5fa6-4601-8550-318431c14609/dc2e7cef-5fa6-4601-8550-318431c146093.gif)
![mongoDB基礎(chǔ)架構(gòu)簡析_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/dc2e7cef-5fa6-4601-8550-318431c14609/dc2e7cef-5fa6-4601-8550-318431c146094.gif)
![mongoDB基礎(chǔ)架構(gòu)簡析_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/dc2e7cef-5fa6-4601-8550-318431c14609/dc2e7cef-5fa6-4601-8550-318431c146095.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、mongoDB基礎(chǔ)架構(gòu)簡析楊森2016年1月21日主從復(fù)制副本集分片這種配置只適合簡易開發(fā)時(shí)使用,生產(chǎn)使用不行,因?yàn)閱喂?jié)點(diǎn)掛掉整個(gè)數(shù)據(jù)業(yè)務(wù)全掛雖然不能生產(chǎn)使用,但這個(gè)模式可以快速搭建啟動(dòng),并且能夠用mongodb的命令操作數(shù)據(jù)庫。單實(shí)例使用mysql和oracle數(shù)據(jù)庫時(shí)廣泛用到,采用雙機(jī)備份后主節(jié)點(diǎn)掛掉了后從節(jié)點(diǎn)可以接替主機(jī)繼續(xù)服務(wù)。所以這種模式比單節(jié)點(diǎn)的高可用性要好很多。主從模式主從模式主從模式環(huán)境搭建主服務(wù)器配置從服務(wù)器配置主從模式原理在主從結(jié)構(gòu)中,主節(jié)點(diǎn)的操作記錄成為oplog(operation log)。oplog存儲(chǔ)在一個(gè)系統(tǒng)數(shù)據(jù)庫local的集合oplog.$main中,這個(gè)集
2、合的每個(gè)文檔都代表主節(jié)點(diǎn)上執(zhí)行的一個(gè)操作。db.oplog.$main.find().sort($natural:-1);Ts表示時(shí)間戳,op表示操作類型,ns表示操作的集合名,o表示具體操作的文檔主從復(fù)制原理這里需要要注意的是:存儲(chǔ)在oplog中的操作有時(shí)可能和主節(jié)點(diǎn)操作并不一致,因?yàn)榇鎯?chǔ)操作前要進(jìn)行等冪變換,也就是這些操作必須可以再從服務(wù)器上多次執(zhí)行,只要順序一致,結(jié)果就一致。因此比如更新器$inc的操作,最后會(huì)被變換為$set操作這個(gè)集合中只會(huì)存儲(chǔ)影響數(shù)據(jù)的操作,查詢這類不影響數(shù)據(jù)的操作不會(huì)以oplog的形式進(jìn)行存儲(chǔ)oplog的集合為MongoDB固定集合,隨著操作過多,新的操作會(huì)覆蓋舊
3、的操作在啟動(dòng)服務(wù)時(shí),可以通過選項(xiàng)-oplogSize來指定這個(gè)集合的大小,單位是MB默認(rèn)MongoDB會(huì)使用數(shù)據(jù)庫安裝分區(qū)可用空間的5%作為這個(gè)集合的大小。為了安全起見,這個(gè)值,因設(shè)置的足夠大。主從復(fù)制啟動(dòng)參數(shù)簡析參數(shù)適用范圍作用備注Onlyslave指定需要數(shù)據(jù)同步的數(shù)據(jù)庫slavedelayslave指定從服務(wù)器從主服務(wù)器上同步操作的延時(shí)時(shí)間這對(duì)于一些無意的刪除重要數(shù)據(jù)或插入垃圾數(shù)據(jù)有一定的防護(hù)作用,通過延時(shí),可暫緩這些不良操作在從服務(wù)器上被執(zhí)行!僅僅是延時(shí)處理,在主服務(wù)器上的各種改變數(shù)據(jù)的操作最后都會(huì)在從服務(wù)器上被執(zhí)行fastsyncslave以主服務(wù)器節(jié)點(diǎn)的數(shù)據(jù)快照為基礎(chǔ)啟動(dòng)從服務(wù)器節(jié)
4、點(diǎn)從服務(wù)節(jié)點(diǎn)啟動(dòng)后,要先完整同步主服務(wù)節(jié)點(diǎn)上的數(shù)據(jù),然后再獲取主服務(wù)節(jié)點(diǎn)的oplog來保持后續(xù)的同步。使用這個(gè)啟動(dòng)參數(shù),從服務(wù)器節(jié)點(diǎn)的啟動(dòng)要比完整同步快很多!主從復(fù)制啟動(dòng)參數(shù)簡析參數(shù)適用范圍作用備注autoresync slave如果從節(jié)點(diǎn)與主節(jié)點(diǎn)不同步了,則自動(dòng)重新同步使用這個(gè)選項(xiàng)啟動(dòng)從服務(wù)器,當(dāng)從服務(wù)器停止同步時(shí),會(huì)自動(dòng)啟動(dòng)重新完整同步操作。完整同步代價(jià)比較高,應(yīng)盡量避免,較好的方式就是設(shè)置足夠大的oplog!如需手動(dòng)完整同步,執(zhí)行db.runCommand(resync : 1)oplogSizemaster定放置oplog的集合所占據(jù)的空間大小默認(rèn)的規(guī)則,磁盤分區(qū)剩余空間的5%,這個(gè)選
5、項(xiàng)可以優(yōu)于這個(gè)規(guī)則來顯示指定。主從復(fù)制添加及刪除源指定主節(jié)點(diǎn)的方式:啟動(dòng)從節(jié)點(diǎn)時(shí),直接通過source選項(xiàng)指定主節(jié)點(diǎn),在從節(jié)點(diǎn)中,通過集合操作,動(dòng)態(tài)的添加或者刪除主數(shù)據(jù)源在從節(jié)點(diǎn)中,放置主節(jié)點(diǎn)(這里可以稱為同步數(shù)據(jù)源)信息的集合為local.sources,插入的文檔鍵“host”指明主節(jié)點(diǎn)的ip和端口號(hào),通過這種方式可以很靈活的指定或移除從節(jié)點(diǎn)的主節(jié)點(diǎn)信息。主從復(fù)制復(fù)制狀態(tài)所有從節(jié)點(diǎn)連接到主節(jié)點(diǎn)后都會(huì)執(zhí)行handshake命令進(jìn)行握手,將自己添加到一個(gè)集合中,這個(gè)集合就是local數(shù)據(jù)庫的slaves因此,主節(jié)點(diǎn)的復(fù)制狀態(tài)包括從節(jié)點(diǎn)的集合。uselocalswitchedtodblocald
6、b.slaves.find();_id:ObjectId(56947a92ba4fc99c7c59afb6),host:192.168.86.129:27017,ns:local.oplog.$main,syncedTo:t:1452679903,i:1主節(jié)點(diǎn)復(fù)制狀態(tài)主從復(fù)制復(fù)制狀態(tài)從節(jié)點(diǎn)的復(fù)制狀態(tài)包括:在me集合中存放的從節(jié)點(diǎn)唯一標(biāo)示符;在sources集合中存放的主節(jié)點(diǎn)(或稱數(shù)據(jù)源)列表uselocalswitchedtodblocalshowcollections;mesourcesstartup_logdb.me.find();_id:ObjectId(56947a92ba4fc99c
7、7c59afb6),host:ubuntudb.sources.find();_id:ObjectId(56947a94ba4fc99c7c59afb7),host:192.168.86.128:27017,source:main,syncedTo:Timestamp(1452679903,1)從節(jié)點(diǎn)復(fù)制狀態(tài)主從復(fù)制復(fù)制狀態(tài)我們可以看到,me集合中該文檔的鍵“_id”和主節(jié)點(diǎn)slaves集合對(duì)應(yīng)的該從節(jié)點(diǎn)文檔的“_id”的值是一樣的!主節(jié)點(diǎn)的slaves集合和從節(jié)點(diǎn)的sources集合都有鍵“syncedTo”,主從節(jié)點(diǎn)都是通過這個(gè)鍵的值來跟蹤從節(jié)點(diǎn)的更新狀況!每次從節(jié)點(diǎn)查詢主節(jié)點(diǎn)的oplog
8、時(shí),都會(huì)用“syncedTo”作為查詢條件來確認(rèn)哪些操作需要執(zhí)行,或者查看是否已經(jīng)跟不上同步了!從節(jié)點(diǎn)復(fù)制狀態(tài)主從復(fù)制確保數(shù)據(jù)同步進(jìn)行數(shù)據(jù)庫管理員可以通過在主節(jié)點(diǎn)上執(zhí)行g(shù)etLastError命令的“w”參數(shù)來確保同步正在進(jìn)行!db.runCommand(“getLastError” : 1, “w” : N);運(yùn)行這個(gè)命令會(huì)進(jìn)入阻塞階段,直到“N”(“w”鍵的值)個(gè)服務(wù)器復(fù)制了最新的寫操作后返回!如果該命令的N rs.add(192.168.86.131:27117); /添加節(jié)點(diǎn) repmore:PRIMARY rs.remove(192.168.86.131:27117); /刪除節(jié) 利
9、用利用rs.add和和rs.remove是不用是不用rs.reconfig來使用配置生效的。來使用配置生效的。副本集節(jié)點(diǎn)類型Master主節(jié)點(diǎn)(Master)Secondary副本節(jié)點(diǎn)(Slave或者稱為Secondary)arbiter仲裁節(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù),只是負(fù)責(zé)故障轉(zhuǎn)移的群體投票,一般是用來湊數(shù),在機(jī)器充足的前情況下,無需使用Secondary-Only不能成為primary節(jié)點(diǎn),只能作為secondary副本節(jié)點(diǎn),防止一些性能不高的節(jié)點(diǎn)成為主節(jié)點(diǎn)。Hidden這類節(jié)點(diǎn)是不能夠被客戶端制定IP引用,也不能被設(shè)置為主節(jié)點(diǎn),但是可以投票,一般用于備份數(shù)據(jù)。Delayed可以指定一個(gè)時(shí)間延遲從p
10、rimary節(jié)點(diǎn)同步數(shù)據(jù)。主要用于備份數(shù)據(jù),如果實(shí)時(shí)同步,誤刪除數(shù)據(jù)馬上同步到從節(jié)點(diǎn)。所以延遲復(fù)制主要用于避免用戶錯(cuò)誤。Non-Voting沒有選舉權(quán)的secondary節(jié)點(diǎn),純粹的備份數(shù)據(jù)節(jié)點(diǎn)副本集節(jié)點(diǎn)類型隱藏節(jié)點(diǎn)隱藏節(jié)點(diǎn)(Hidden):隱藏節(jié)點(diǎn)可以在選舉中投票,但是不能被客戶端引用,也不能成為主節(jié)點(diǎn)。也就是說這個(gè)節(jié)點(diǎn)不能用于讀寫分離的場景。除了投票功能外,還用于數(shù)據(jù)備份。只有優(yōu)先級(jí)為0的成員才能設(shè)置為隱藏節(jié)點(diǎn),否則會(huì)報(bào)錯(cuò)將192.168.86.130:20002設(shè)置為hidden節(jié)點(diǎn)后:cfg.members3.priority=0cfg.members3.hidden=1rs.reco
11、nfig(cfg);副本集節(jié)點(diǎn)類型設(shè)置仲裁節(jié)點(diǎn)設(shè)置仲裁節(jié)點(diǎn):仲裁節(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù),只是用于投票。所以仲裁節(jié)點(diǎn)對(duì)于服務(wù)器負(fù)載很低。節(jié)點(diǎn)一旦以仲裁者的身份加入集群,他就只能是仲裁者,無法將仲裁者配置為非仲裁者,反之也是一樣。另外一個(gè)集群最多只能使用一個(gè)仲裁者,額外的仲裁者拖累選舉新Master節(jié)點(diǎn)的速度,同時(shí)也不能提供更好的數(shù)據(jù)安全性。config=_id:wechatRepset,members:_id:0,host:192.168.86.128:27117,_id:1,host:192.168.86.129:27117,_id:2,host:”192.168.86.130:27117”,arbi
12、terOnly:true使用仲裁者主要是因?yàn)镸ongoDB副本集需要奇數(shù)成員,而又沒有足夠服務(wù)器的情況。在服務(wù)器充足的情況下,不應(yīng)該使用仲裁者節(jié)點(diǎn)。副本集節(jié)點(diǎn)類型設(shè)置設(shè)置延遲復(fù)制節(jié)點(diǎn)延遲復(fù)制節(jié)點(diǎn):延遲節(jié)點(diǎn)的優(yōu)先級(jí)必須為0,這個(gè)和hidden節(jié)點(diǎn)是一樣的。設(shè)置192.168.86.129為延遲節(jié)點(diǎn)cfg=rs.conf();cfg.members1.priority=0cfg.members1.slaveDelay=3600rs.reconfig(cfg);slaveDelay的單位是秒延遲復(fù)制,可用于故障恢復(fù)時(shí)使用副本集節(jié)點(diǎn)類型延遲節(jié)點(diǎn)延遲節(jié)點(diǎn)故障恢復(fù)模擬故障恢復(fù)模擬:副本集節(jié)點(diǎn)類型設(shè)置Sec
13、ondary-Only節(jié)點(diǎn):Priority為0的節(jié)點(diǎn)永遠(yuǎn)不能成為主節(jié)點(diǎn),所以設(shè)置Secondary-only節(jié)點(diǎn)只需要將其priority設(shè)置為0.設(shè)置Non-Voting節(jié)點(diǎn):不能投票,只能備份則cfg=rs.conf();cfg.members0.votes=0;rs.reconfig(cfg)副本集master選擇方式Bully選舉算法Bully算法是一種協(xié)調(diào)者(主節(jié)點(diǎn))競選算法,主要思想是集群的每個(gè)成員都可以聲明它是主節(jié)點(diǎn)并通知其他節(jié)點(diǎn)。別的節(jié)點(diǎn)可以選擇接受這個(gè)聲稱或是拒絕并進(jìn)入主節(jié)點(diǎn)競爭。被其他所有節(jié)點(diǎn)接受的節(jié)點(diǎn)才能成為主節(jié)點(diǎn)。節(jié)點(diǎn)按照一些屬性來判斷誰應(yīng)該勝出。這個(gè)屬性可以是一個(gè)靜
14、態(tài)ID,也可以是更新的度量像最近一次事務(wù)ID(最新的節(jié)點(diǎn)會(huì)勝出) 副本集master選擇方式選舉過程大致如下:得到每個(gè)服務(wù)器節(jié)點(diǎn)的最后操作時(shí)間戳。每個(gè)mongodb都有oplog機(jī)制會(huì)記錄本機(jī)的操作,方便和主服務(wù)器進(jìn)行對(duì)比數(shù)據(jù)是否同步還可以用于錯(cuò)誤恢復(fù)。如果集群中大部分服務(wù)器down機(jī)了,保留活著的節(jié)點(diǎn)都為 secondary狀態(tài)并停止,不選舉了。如果集群中選舉出來的主節(jié)點(diǎn)或者所有從節(jié)點(diǎn)最后一次同步時(shí)間看起來很舊了,停止選舉等待人來操作。如果上面都沒有問題就選擇最后操作時(shí)間戳最新(保證數(shù)據(jù)是最新的)的服務(wù)器節(jié)點(diǎn)作為主節(jié)點(diǎn)。副本集master選擇方式選舉的觸發(fā)條件:初始化一個(gè)副本集時(shí)。副本集和主
15、節(jié)點(diǎn)斷開連接,可能是網(wǎng)絡(luò)問題。主節(jié)點(diǎn)掛掉。人為介入,比如修改節(jié)點(diǎn)優(yōu)先級(jí)等選舉還有個(gè)前提條件:參與選舉的節(jié)點(diǎn)數(shù)量必須大于副本集總節(jié)點(diǎn)數(shù)量的一半,如果已經(jīng)小于一半了所有節(jié)點(diǎn)保持只讀狀態(tài)。副本集主節(jié)點(diǎn)的讀寫壓力過大如何解決讀寫分離1、設(shè)置讀寫分離需要先在副本節(jié)點(diǎn)SECONDARY 設(shè)置 setSlaveOk。2、在程序中設(shè)置副本節(jié)點(diǎn)負(fù)責(zé)讀操副本集主節(jié)點(diǎn)的讀寫壓力過大如何解決primary:默認(rèn)參數(shù),只從主節(jié)點(diǎn)上進(jìn)行讀取操作;primaryPreferred:大部分從主節(jié)點(diǎn)上讀取數(shù)據(jù),只有主節(jié)點(diǎn)不可用時(shí)從secondary節(jié)點(diǎn)讀取數(shù)據(jù)。secondary:只從secondary節(jié)點(diǎn)上進(jìn)行讀取操作,存在
16、的問題是secondary節(jié)點(diǎn)的數(shù)據(jù)會(huì)比primary節(jié)點(diǎn)數(shù)據(jù)“舊”。secondaryPreferred:優(yōu)先從secondary節(jié)點(diǎn)進(jìn)行讀取操作,secondary節(jié)點(diǎn)不可用時(shí)從主節(jié)點(diǎn)讀取數(shù)據(jù);nearest:不管是主節(jié)點(diǎn)、secondary節(jié)點(diǎn),從網(wǎng)絡(luò)延遲最低的節(jié)點(diǎn)上讀取數(shù)據(jù)。節(jié)點(diǎn)的讀寫壓力過大問題解決從節(jié)點(diǎn)每個(gè)上面的數(shù)據(jù)都是對(duì)數(shù)據(jù)庫全量拷貝,從節(jié)點(diǎn)壓力會(huì)不會(huì)過大?主從復(fù)制副本集分片分片在系統(tǒng)早期,數(shù)據(jù)量還小的時(shí)候不會(huì)引起太大的問題,但是隨著數(shù)據(jù)量持續(xù)增多,后續(xù)遲早會(huì)出現(xiàn)一臺(tái)機(jī)器硬件瓶頸問題的。在傳統(tǒng)數(shù)據(jù)庫中,如oracle、mysql等怎么做海量數(shù)據(jù)讀寫?分庫、分表分而治之mongod
17、b主打的就是海量數(shù)據(jù)架構(gòu),如何解決海量數(shù)據(jù)?分片分片mysql要做到自動(dòng)擴(kuò)展需要加一個(gè)數(shù)據(jù)訪問層用程序去擴(kuò)展,數(shù)據(jù)庫的增加、刪除、備份還需要程序去控制。一但數(shù)據(jù)庫的節(jié)點(diǎn)一多,要維護(hù)起來也是非常頭疼的。分片架構(gòu)面對(duì)mysql等數(shù)據(jù)庫給你帶來的煩惱,mongodb所有的這一切通過他自己的內(nèi)部機(jī)制就可以搞定。分片組成部分MongoDB分片系統(tǒng)通常由以下3部分組成:1 片: 片就是一個(gè)存放集合數(shù)據(jù)的容器。其可以是一個(gè)單獨(dú)的mongod服務(wù),也可以是一個(gè)副本集(多個(gè)mongod服務(wù),一個(gè)是主活躍節(jié)點(diǎn)),這個(gè)視使用環(huán)境來確定片的形態(tài)!2 mongos: MongoDB自帶的路由服務(wù)進(jìn)程,它路由所有的客戶端
18、請(qǐng)求,并將各個(gè)片的結(jié)果進(jìn)行匯聚返回。這個(gè)服務(wù)進(jìn)程本身不會(huì)存儲(chǔ)任何數(shù)據(jù)或配置信息(有時(shí)會(huì)緩存配置服務(wù)器的相關(guān)配置信息)。3 配置服務(wù)器: 這個(gè)也是一個(gè)mongod服務(wù)進(jìn)行,但這個(gè)數(shù)據(jù)庫服務(wù)僅僅是為mongos路由服務(wù)提供配置信息存儲(chǔ)的位置!啟動(dòng)mongos服務(wù)時(shí),需要提供一個(gè)mongod服務(wù),以便路由服務(wù)訪問或存儲(chǔ)相關(guān)的配置信息。配置信息主要包括:分片與數(shù)據(jù)的對(duì)應(yīng)關(guān)系!,配置服務(wù)器不需要很大的空間,估算每200M數(shù)據(jù)需要1KB的配置空分片環(huán)境搭建分片集群設(shè)計(jì)分片環(huán)境搭建Shard:這里采用副本集實(shí)現(xiàn)config=_id:mongoReplset00,members:_id:0,host:192.
19、168.86.128:20002,priority:5,_id:1,host:192.168.86.129:20002,_id:2,host:192.168.86.130:20002,_id:3,host:192.168.86.131:20002,priority:0,hidden:truers.initiate(config);以一個(gè)shard為例:分片環(huán)境搭建配置服務(wù)器:以一個(gè)configServer為例:分片環(huán)境搭建mongs:以一個(gè)mongs為例:分片環(huán)境搭建串聯(lián)路由服務(wù)器與分配副本集登錄任意一個(gè)mongs開啟的mongo服務(wù),在admin庫中執(zhí)行:db.runCommand(adds
20、hard:mongoReplset00/192.168.86.128:20002,192.168.86.129:20002,192.168.86.130:20002);db.runCommand(addshard:mongoReplset01/192.168.86.128:20003,192.168.86.129:20003,192.168.86.131:20003);db.runCommand(addshard:mongoReplset02/192.168.86.128:20004,192.168.86.130:20004,192.168.86.131:20004);db.runComman
21、d(addshard:mongoReplset03/192.168.86.129:20005,192.168.86.130:20005,192.168.86.131:20005);分片環(huán)境搭建指定分片的數(shù)據(jù)庫和分片的集合:同樣登錄mongs的mongo服務(wù),在admin庫中執(zhí)行:#指定wechatdb分片生效db.runCommand(enablesharding:wechatdb);mongosdb.runCommand(enablesharding:wechatdb);ok:1#指定數(shù)據(jù)庫里需要分片的集合和片鍵db.runCommand(shardcollection:wechatdb.person,key:id:1)mongosdb.runCommand(shardcollection:wechatdb.person,key:id:1)collectionsharded:wechatdb.person,ok:1從節(jié)點(diǎn)每個(gè)上面的數(shù)據(jù)都是對(duì)數(shù)據(jù)庫全量拷貝,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人入股合同范本
- 2025年度知識(shí)產(chǎn)權(quán)轉(zhuǎn)讓居間合同示范文本
- 2025年度刮膩?zhàn)邮┕づc室內(nèi)環(huán)境優(yōu)化合同
- 2025年對(duì)氯苯丁酮項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度智能穿戴設(shè)備代理銷售與市場拓展合同范本
- 入黨生申請(qǐng)書
- 2025年燃油泵項(xiàng)目申請(qǐng)報(bào)告范稿
- 入武漢申請(qǐng)書
- 志愿者社團(tuán)申請(qǐng)書
- 2025年度新型城鎮(zhèn)化項(xiàng)目工程咨詢服務(wù)合同范本
- 《農(nóng)機(jī)化促進(jìn)法解讀》課件
- 最高法院示范文本發(fā)布版3.4民事起訴狀答辯狀示范文本
- 2023-2024學(xué)年度上期七年級(jí)英語期末試題
- 2024年燃?xì)廨啓C(jī)值班員技能鑒定理論知識(shí)考試題庫-下(多選、判斷題)
- 交通法規(guī)課件
- (優(yōu)化版)高中地理新課程標(biāo)準(zhǔn)【2024年修訂版】
- 《Python程序設(shè)計(jì)》課件-1:Python簡介與應(yīng)用領(lǐng)域
- 各類心理量表大全
- DB12T990-2020建筑類建設(shè)工程規(guī)劃許可證設(shè)計(jì)方案規(guī)范
- DB11T 1481-2024生產(chǎn)經(jīng)營單位生產(chǎn)安全事故應(yīng)急預(yù)案評(píng)審規(guī)范
- 《氓》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修下冊(cè)
評(píng)論
0/150
提交評(píng)論