oracle goldengate實現遠程抽取postgresql 到 postgresql的實時同步【絕對無坑版,親測流程驗證】

oracle goldengate實現postgresql 到 postgresql的實時同步

源端:postgresql1 -> postgresql2 流復制主備同步
目標端:postgresql
數據庫版本:postgresql 12.14
ogg版本:21.3

架構圖:
在這里插入圖片描述

數據庫安裝以及流復制主備同步配置忽略。以下直接進入OGG的配置

OGG服務器環境變量配置

export 
export OGG_HOME=/ogg213
export ODBCINI=/etc/odbc.ini
export ODBCSYSINI=/etc
LD_LIBRARY_PATH=/ogg213/lib:/pgdb/psql/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH

odbc配置:


[root@oradb1 ogg213]# yum list |grep postgresql-odbc.x86_64
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
postgresql-odbc.x86_64                  09.03.0100-2.el7               @centos7 
[root@oradb1 ogg213]# 
[root@oradb1 ogg213]# cat /etc/odbcinst.ini 
# Example driver definitions# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description	= ODBC for PostgreSQL
Driver		= /usr/lib64/psqlodbcw.so
Setup		= /usr/lib64/libodbcpsqlS.so
Driver64	= /usr/lib64/psqlodbcw.so
Setup64		= /usr/lib64/libodbcpsqlS.so
FileUsage	= 1# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description	= ODBC for MySQL
Driver		= /usr/lib/libmyodbc5.so
Setup		= /usr/lib/libodbcmyS.so
Driver64	= /usr/lib64/libmyodbc5.so
Setup64		= /usr/lib64/libodbcmyS.so
FileUsage	= 1
[root@oradb1 ogg213]# cat /etc/odbc.ini 
#Sample DSN entries
[ODBC Data Sources]
PG_src=DataDirect 12.14 PostgreSQL Wire Protocol
PG_tgt=DataDirect 12.14 PostgreSQL Wire Protocol[ODBC]
IANAAppCodePage=4
InstallDir=/ogg213[pg_src1]
Driver=/ogg213/lib/GGpsql25.so
Description=DataDirect 12.14 PostgreSQL Wire Protocol
Database=testdb
HostName=192.168.56.11
PortNumber=5432
LogonID=ggadmin
Password=Bai_yun123
TransactionErrorBehavior=2[pg_src]
Driver=/ogg213/lib/GGpsql25.so
Description=DataDirect 12.14 PostgreSQL Wire Protocol
Database=testdb
HostName=192.168.56.12
PortNumber=5432
LogonID=ggadmin
Password=Bai_yun123
TransactionErrorBehavior=2[pg_tgt]
Driver=/ogg213/lib/GGpsql25.so
Description=DataDirect 12.14 PostgreSQL Wire Protocol
Database=testdb
HostName=192.168.56.101
PortNumber=5432
LogonID=ggadmin
Password=Bai_yun123
TransactionErrorBehavior=2
[root@oradb1 ogg213]# 

OGG解壓:

[root@oradb1 soft]# cd oggsoft/
[root@oradb1 oggsoft]# ll
total 467684
-rwxrwxr-x 1 postgres postgres  97040905 May 30 16:04 213000_ggs_Linux_x64_PostgreSQL_64bit.zip
-rw-rw-rw- 1 postgres postgres 381552640 Aug  5  2021 ggs_Linux_x64_PostgreSQL_64bit.tar
-rw-r--r-- 1 postgres postgres      2409 Aug 11  2021 OGG-21.3.0.0-README.txt
-rw-r--r-- 1 postgres postgres    306395 Aug 11  2021 oracle-goldengate-release-notes_21.3.pdf
[root@oradb1 oggsoft]# $ tar -xvf ggs_Linux_x64_PostgreSQL_64bit.tar -C /ogg213$ cd /ogg213
$ ./ggsci
$ create subdirs

MGR進程配置

GGSCI (oggser) 2> view param mgrPORT 7810
DYNAMICPORTLIST 7810-7820
AUTORESTART EXTRACT *, WAITMINUTES 2, RESETMINUTES 5
PURGEOLDEXTRACTS ./DIRDAT/*, USECHECKPOINTS,MINKEEPHOURS 24
AUTORESTART ER *, RETRIES 3, WAITMINUTES 2,RESETMINUTES 10
ACCESSRULE, PROG *, IPADDR 192.168.56.*, ALLOW

測試驗證登錄數據庫成功:


GGSCI (oradb1) 6> dblogin sourcedb pg_src userid ggadmin password Bai_yun1232025-05-30 21:45:31  INFO    OGG-03036  Database character set identified as UTF-8. Locale: en_US.UTF-8.2025-05-30 21:45:31  INFO    OGG-03037  Session character set identified as UTF-8.
Successfully logged into database.GGSCI (oradb1 as ggadmin@pg_src) 7> dblogin sourcedb pg_tgt userid ggadmin password Bai_yun1232025-05-30 21:45:38  INFO    OGG-03036  Database character set identified as UTF-8. Locale: en_US.UTF-8.2025-05-30 21:45:38  INFO    OGG-03037  Session character set identified as UTF-8.
Successfully logged into database.GGSCI (oradb1 as ggadmin@pg_tgt) 8> 

注冊抽取進程

鏈接到備庫注冊抽取進程,失敗。

GGSCI (oradb1 as ggadmin@pg_src) 9> register extract ep12025-05-30 21:47:59  WARNING OGG-00552  Database operation failed: Executing statement to create replication slot. Called from PGUTIL_registerExtract:178. ODBC error: SQLSTATE S1C00 native database error 466560. [Oracle][ODBC PostgreSQL Wire Protocol driver][PostgreSQL]ERROR: VERROR; logical decoding cannot be used while in recovery(File logical.c; Line 113; Routine CheckLogicalDecodingRequirements;.

鏈接到主庫注冊抽取進程,成功。

GGSCI (oradb1 as ggadmin@pg_src) 10> dblogin sourcedb pg_src1 userid ggadmin password Bai_yun1232025-05-30 21:52:04  INFO    OGG-03036  Database character set identified as UTF-8. Locale: en_US.UTF-8.2025-05-30 21:52:04  INFO    OGG-03037  Session character set identified as UTF-8.
Successfully logged into database.GGSCI (oggser as ggadmin@pg_src1) 10> register extract ep12025-05-31 11:34:52  INFO    OGG-25353  The replication slot 'ep1_831e5a3f6113dbb2' for group 'EP1' already exist in the database 'testdb'.GGSCI (oggser as ggadmin@pg_src1) 11> UNREGISTER EXTRACT ep1 with DATABASE testdb   ----->>> 刪除之前增加的2025-05-31 11:36:30  INFO    OGG-25356  Successfully dropped the replication slot 'ep1_831e5a3f6113dbb2' for Extract group 'EP1' in database 'testdb'.GGSCI (oggser as ggadmin@pg_src1) 12> register extract ep12025-05-31 11:36:37  INFO    OGG-25355  Successfully created replication slot 'ep1_831e5a3f6113dbb2' for Extract group 'EP1' in database 'testdb'.

在數據庫查看復制曹信息

testdb=# SELECT * FROM pg_stat_replication;

在這里插入圖片描述

GGSCI (oradb1 as ggadmin@pg_src1) 12> edit param ep1
# 配置抽取進程參數GGSCI (oradb1 as ggadmin@pg_src1) 13> view param ep1extract ep1
setenv(PGCLIENTENCODING = "UTF8")
setenv(ODBCINI="/etc/odbc.ini" )
sourcedb testdb, userid ggadmin, password Bai_yun123
exttrail ./dirdat/e1
discardfile ./dirrpt/ep1.dsc
table public.tab1;

添加trandata

GGSCI (oggser as ggadmin@pg_src1) 2> ADD TRANDATA public.tab1Logging of supplemental log data is already enabled for table public.tab1 with REPLICA IDENTITY set to DEFAULT

啟動抽取進程失敗:

2025-05-30 22:13:22  ERROR   OGG-00551  Database operation failed: Couldn't connect to testdb. ODBC error: SQLSTATE IM002 native database error 0. [DataDirect][ODBC lib] D
ata source name not found and no default driver specified.2025-05-30 22:13:22  ERROR   OGG-01668  PROCESS ABENDING.

修改后再次啟動
sourcedb pg_src1, userid ggadmin, password Bai_yun123


2025-05-30 22:16:24  ERROR   OGG-25516  Oracle GoldenGate capture using LIBPQ client library version as 90,401 which is incompatible with the connected PostgreSQL server v
ersion 121,400 for streaming the log record. The LIBPQ client library version must be the same as or bigger than, that of the connected PostgreSQL server library version.Source Context :SourceModule            : [ggvam.gen]SourceID                : [../gglib/ggvam/cvamgen.cpp]SourceMethod            : [vamInitialize]SourceLine              : [536]ThreadBacktrace         : [14] elements: [/ogg213/libgglog.so(CMessageContext::AddThreadContext())]: [/ogg213/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))]: [/ogg213/libgglog.so(_MSG_String_Int32(CSourceContext*, int, char const*, int, CMessageFactory::MessageDisposition))]: [/ogg213/extract(com_goldengate_vam::CVamGen::vamInitialize())]: [/ogg213/extract()]: [/ogg213/extract(ggs::er::VAMDataSource::finalizeConfiguration())]: [/ogg213/extract(ggs::gglib::ggapp::ReplicationContext::finalizeConfiguration())]: [/ogg213/extract()]: [/ogg213/extract(ggs::gglib::MultiThreading::MainThread::ExecMain())]: [/ogg213/extract(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))]: [/ogg213/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]: [/ogg213/extract(main)]: [/lib64/libc.so.6(__libc_start_main)]: [/ogg213/extract()]2025-05-30 22:16:24  ERROR   OGG-00145  Call to VAMInitialize returned with error status 16002.2025-05-30 22:16:24  ERROR   OGG-01668  PROCESS ABENDING.

根據提示的版本LIBPG的版本號與postgresql的版本號不一致導致。查看postgresql lib的安裝包。

[root@oggser soft]# rpm -ivh postgresql12-libs-12.21-1PGDG.rhel7.x86_64.rpm 
warning: postgresql12-libs-12.21-1PGDG.rhel7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 73e3b907: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...1:postgresql12-libs-12.21-1PGDG.rhe################################# [100%][root@oggser ogg213]# yum list |grep postgres
postgresql-libs.x86_64                 9.2.24-1.el7_5              @local         
postgresql12-libs.x86_64               12.21-1PGDG.rhel7           installed    

重新啟動ep1進程,問題仍然出現。

嘗試卸載

[root@oggser ogg213]# rpm -qa |grep postgresql-libs
postgresql-libs-9.2.24-1.el7_5.x86_64
[root@oggser ogg213]# rpm -e postgresql-libs-9.2.24-1.el7_5.x86_64
[root@oggser ogg213]# rpm -qa |grep postgresql-libs

再次重啟ep1進程,正常。

GGSCI (oggser) 3> start ep1Sending START request to Manager ...
Extract group EP1 starting.GGSCI (oggser) 4> info allProgram     Status      Group       Lag at Chkpt  Time Since ChkptMANAGER     RUNNING                                           
EXTRACT     RUNNING     EP1         00:42:22      00:00:01    GGSCI (oggser) 9> info ep1Extract    EP1       Last Started 2025-05-31 12:19   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
Process ID           4427
VAM Read Checkpoint  2025-05-31 11:37:21.985039Replication Slot     Unavailable(requires DBLOGIN)
Slot Restart LSN     Unavailable(requires DBLOGIN)
Slot Flush LSN       Unavailable(requires DBLOGIN)
Current Log Position Unavailable(requires DBLOGIN)GGSCI (oggser) 10> stop ep1Sending STOP request to Extract group EP1 ...
Request processed.

查看進程狀態的提示需要登錄,嘗試先登錄數據庫再啟動。

GGSCI (oggser) 12> dblogin sourcedb pg_src1 userid ggadmin password Bai_yun1232025-05-31 12:42:07  INFO    OGG-03036  Database character set identified as UTF-8. Locale: en_US.UTF-8.2025-05-31 12:42:07  INFO    OGG-03037  Session character set identified as UTF-8.
Successfully logged into database.GGSCI (oggser as ggadmin@pg_src1) 13> info allProgram     Status      Group       Lag at Chkpt  Time Since ChkptMANAGER     RUNNING                                           
EXTRACT     STOPPED     EP1         00:00:00      00:21:55    GGSCI (oggser as ggadmin@pg_src1) 14> start ep1Sending START request to Manager ...
Extract group EP1 starting.GGSCI (oggser as ggadmin@pg_src1) 15> info allProgram     Status      Group       Lag at Chkpt  Time Since ChkptMANAGER     RUNNING                                           
EXTRACT     RUNNING     EP1         00:00:00      00:00:01    GGSCI (oggser as ggadmin@pg_src1) 16> info ep1Extract    EP1       Last Started 2025-05-31 12:42   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
Process ID           13486
VAM Read Checkpoint  2025-05-31 11:37:21.985039Replication Slot     ep1_831e5a3f6113dbb2 is active with PID 1900 in database testdb
Slot Restart LSN     0/301BE30
Slot Flush LSN       0/301BE68
Current Log Position 0/301BE68GGSCI (oggser as ggadmin@pg_src1) 17> 

至此抽取進去配置完成。

添加應用進程

添加檢查點表

GGSCI (oggser as ggadmin@pg_src1) 19> dblogin sourcedb pg_tgt, userid ggadmin, password Bai_yun1232025-05-31 12:53:51  INFO    OGG-03036  Database character set identified as UTF-8. Locale: en_US.UTF-8.2025-05-31 12:53:51  INFO    OGG-03037  Session character set identified as UTF-8.
Successfully logged into database.GGSCI (oggser as ggadmin@pg_tgt) 20> ADD CHECKPOINTTABLE ggadmin.oggcheck2025-05-31 12:54:06  WARNING OGG-30055  Database error 5738688 ([Oracle][ODBC PostgreSQL Wire Protocol driver][PostgreSQL]ERROR: VERROR; schema "ggadmin" does not exist(Position 14; File namespace.c; Line 3045; Routine get_namespace_oid; )).
Error: Failed creating checkpoint table ggadmin.oggcheck.<NIL>GGSCI (oggser as ggadmin@pg_tgt) 21> ADD CHECKPOINTTABLE public.oggcheckSuccessfully created checkpoint table public.oggcheck.

配置應用進程參數


edit param rp1 replicat rp1
setenv(PGCLIENTENCODING = "UTF8")
setenv(ODBCINI="/etc/odbc.ini" )
targetdb pg_tgt, userid ggadmin, password Bai_yun123
map public.tab1, public.tab1;GGSCI (oggser as ggadmin@pg_tgt) 23> ADD REPLICAT rp1, EXTTRAIL ./dirdat/e1, CHECKPOINTTABLE public.oggcheck
Replicat added.

啟動應用進程失敗


2025-05-31 12:57:24  INFO    OGG-03037  Session character set identified as UTF-8.
map public.tab1, public.tab1;Source Context :SourceModule            : [er.wildcard]SourceID                : [er/wildcard.c]SourceMethod            : [WILDCARD_get_entry]SourceLine              : [2658]ThreadBacktrace         : [12] elements: [/ogg213/libgglog.so(CMessageContext::AddThreadContext())]: [/ogg213/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))]: [/ogg213/libgglog.so(_MSG_String(CSourceContext*, int, char const*, CMessageFactory::MessageDisposition))]: [/ogg213/replicat(WILDCARD_get_entry(ggs::gglib::ggunicode::UString const&, recopts_t*, bool, bool, unsigned int*, void*, int, int, bool&, catalogList&, bool, bool, bool))]: [/ogg213/replicat(get_infile_params(ggs::gglib::ggapp::ReplicationContextParams&, ggs::gglib::ggdatasource::DataSourceParams&, ggs::gglib::ggdatatarget::DataTargetParams&, ggs::ggli
b::ggmetadata::MetadataContext&))]: [/ogg213/replicat()]: [/ogg213/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain())]: [/ogg213/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))]: [/ogg213/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]: [/ogg213/replicat(main)]: [/lib64/libc.so.6(__libc_start_main)]: [/ogg213/replicat()]2025-05-31 12:57:24  ERROR   OGG-00204  Missing TARGET specification.2025-05-31 12:57:24  ERROR   OGG-01668  PROCESS ABENDING.

原因:
參數配置中缺少target 關鍵字。
map public.tab1, target public.tab1;

修復后再次啟動正常。

GGSCI (oggser as ggadmin@pg_tgt) 35> info allProgram     Status      Group       Lag at Chkpt  Time Since ChkptMANAGER     RUNNING                                           
EXTRACT     RUNNING     EP1         00:00:00      00:00:00    
REPLICAT    RUNNING     RP1         00:00:00      00:00:05    

查看抽取進程和應用進程信息

GGSCI (oggser as ggadmin@pg_tgt) 39> info ep1Extract    EP1       Last Started 2025-05-31 12:42   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:11 ago)
Process ID           13486
VAM Read Checkpoint  2025-05-31 11:37:21.985039Replication Slot     Unavailable(requires DBLOGIN)
Slot Restart LSN     Unavailable(requires DBLOGIN)
Slot Flush LSN       Unavailable(requires DBLOGIN)
Current Log Position Unavailable(requires DBLOGIN)GGSCI (oggser as ggadmin@pg_tgt) 40> dblogin sourcedb pg_src1, userid ggadmin, password Bai_yun1232025-05-31 13:04:43  INFO    OGG-03036  Database character set identified as UTF-8. Locale: en_US.UTF-8.2025-05-31 13:04:43  INFO    OGG-03037  Session character set identified as UTF-8.
Successfully logged into database.GGSCI (oggser as ggadmin@pg_src1) 41> info ep1Extract    EP1       Last Started 2025-05-31 12:42   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:03 ago)
Process ID           13486
VAM Read Checkpoint  2025-05-31 11:37:21.985039Replication Slot     ep1_831e5a3f6113dbb2 is active with PID 1900 in database testdb
Slot Restart LSN     0/301BE30
Slot Flush LSN       0/301BE68
Current Log Position 0/301BE68

數據初始化進程配置

初始化抽取進程

dblogin sourcedb pg_src1, userid ggadmin, password Bai_yun123add ext ie1, sourceistable
edit param ie1
--添加如下內容
extract ie1
setenv(PGCLIENTENCODING = "UTF8")
setenv(ODBCINI="/etc/odbc.ini" )
sourcedb pg_src1, userid ggadmin, password Bai_yun123
extfile ./dirdat/i1
table public.tab1;--啟動存量數據抽取
start ie1
info ie1

初始化應用進程

add rep ir1, exttrail ./dirdat/i1, nodbcheckpoint
edit param ir1
--添加如下內容replicat ir1
setenv(PGCLIENTENCODING = "UTF8")
setenv(ODBCINI="/etc/odbc.ini" )
targetdb pg_tgt, userid ggadmin, password Bai_yun123
discardfile ./dirrpt/ir11.dsc
map public.tab1, target public.tab1;--啟動ir1進程
start ir1
info ir1

查看初始化信息

GGSCI (oggser as ggadmin@pg_src1) 50> info ir1Replicat   IR1       Last Started 2025-05-31 13:10   Status RUNNING
Checkpoint Lag       00:01:45 (updated 00:00:03 ago)
Process ID           14884
Log Read Checkpoint  File ./dirdat/i10000002025-05-31 13:08:25.380705  RBA 1781GGSCI (oggser as ggadmin@pg_src1) 51> info allProgram     Status      Group       Lag at Chkpt  Time Since ChkptMANAGER     RUNNING                                           
EXTRACT     RUNNING     EP1         00:00:00      00:00:07    
REPLICAT    RUNNING     IR1         00:01:45      00:00:07    
REPLICAT    RUNNING     RP1         00:00:00      00:00:05    GGSCI (oggser as ggadmin@pg_src1) 52> info allProgram     Status      Group       Lag at Chkpt  Time Since ChkptMANAGER     RUNNING                                           
EXTRACT     RUNNING     EP1         00:00:00      00:00:00    
REPLICAT    RUNNING     IR1         00:00:00      00:00:02    
REPLICAT    RUNNING     RP1         00:00:00      00:00:00    GGSCI (oggser as ggadmin@pg_src1) 53> stats ir1, totalSending STATS request to Replicat group IR1 ...Start of statistics at 2025-05-31 13:10:45.Replicating from public.tab1 to public.tab1:*** Total statistics since 2025-05-31 13:10:11 ***Total inserts                              1.00Total updates                              0.00Total deletes                              0.00Total upserts                              0.00Total discards                             0.00Total operations                           1.00End of statistics.GGSCI (oggser as ggadmin@pg_src1) 54> GGSCI (oggser as ggadmin@pg_src1) 46> info ie1Extract    IE1       Last Started 2025-05-31 13:08   Status STOPPED
Checkpoint Lag       Not Available
Log Read Checkpoint  Table public.tab12025-05-31 13:08:25  Record 1
Task                 SOURCEISTABLE

目標端查看數據已經初始化完成。

DML測試驗證

源端主庫插入變更。

testdb=# insert into tab1 values(2,'pg2');
INSERT 0 1
testdb=# 
testdb=# insert into tab1 values(3,'pg3');
INSERT 0 1
testdb=# insert into tab1 values(4,'pg4');
INSERT 0 1
testdb=# update tab1 set tname='pgbak' where tid=1;
UPDATE 1
testdb=# delete from tab1 where tid=2;
DELETE 1

OGG服務器查看進程統計信息

GGSCI (oggser as ggadmin@pg_src1) 57> stats ep1 ,totalSending STATS request to Extract group EP1 ...Start of statistics at 2025-05-31 13:16:46.Output to ./dirdat/e1:Extracting from public.tab1 to public.tab1:*** Total statistics since 2025-05-31 13:15:08 ***Total inserts                              3.00Total updates                              1.00Total deletes                              1.00Total upserts                              0.00Total discards                             0.00Total operations                           5.00End of statistics.GGSCI (oggser as ggadmin@pg_src1) 58> stats rp1 ,totalSending STATS request to Replicat group RP1 ...Start of statistics at 2025-05-31 13:16:55.Replicating from public.tab1 to public.tab1:*** Total statistics since 2025-05-31 13:15:12 ***Total inserts                              3.00Total updates                              1.00Total deletes                              1.00Total upserts                              0.00Total discards                             0.00Total operations                           5.00End of statistics.GGSCI (oggser as ggadmin@pg_src1) 59> 

在這里插入圖片描述

參考文檔:
https://docs.oracle.com/en/middleware/goldengate/core/19.1/oggmp/oracle-goldengate-classic-postgresql-server.html#GUID-15DF455B-2C8D-48B4-9158-FF4A93ACBCD8
https://docs.oracle.com/en/middleware/goldengate/core/19.1/oggmp/oracle-goldengate-classic-postgresql-server.html#GUID-98D9FC8A-D0C7-4C1B-9D5A-20CF559BC302

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85209.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2.從0開始搭建vue項目(node.js,vue3,Ts,ES6)

從“0到跑起來一個 Vue 項目”&#xff0c;重點是各個工具之間的關聯關系、職責邊界和技術演化脈絡。 從你寫代碼 → 到代碼能跑起來 → 再到代碼可以部署上線&#xff0c;每一步都有不同的工具參與。 &#x1f63a;&#x1f63a;1. 安裝 Node.js —— 萬事的根基 Node.js 是…

MQTT的Thingsboards的使用

訪問云服務 https://thingsboard.cloud/ 新建一個設備 彈出 默認是mosquittor的客戶端。 curl -v -X POST http://thingsboard.cloud/api/v1/tnPrO76AxF3TAyOblf9x/telemetry --header Content-Type:application/json --data "{temperature:25}" 換成MQTTX的客戶…

金磚國家人工智能高級別論壇在巴西召開,華院計算應邀出席并發表主題演講

當地時間5月20日&#xff0c;由中華人民共和國工業和信息化部&#xff0c;巴西發展、工業、貿易與服務部&#xff0c;巴西公共服務管理和創新部以及巴西科技創新部聯合舉辦的金磚國家人工智能高級別論壇&#xff0c;在巴西首都巴西利亞舉行。 中華人民共和國工業和信息化部副部…

BLE協議全景圖:從0開始理解低功耗藍牙

BLE(Bluetooth Low Energy)作為一種針對低功耗場景優化的通信協議,已經廣泛應用于智能穿戴、工業追蹤、智能家居、醫療設備等領域。 本文是《BLE 協議實戰詳解》系列的第一篇,將從 BLE 的發展歷史、協議棧結構、核心機制和應用領域出發,為后續工程實戰打下全面認知基礎。 …

表單校驗代碼和樹形結構值傳遞錯誤解決

表單校驗代碼&#xff0c;兩種方式校驗&#xff0c;自定義的一種校驗&#xff0c;與element-ui組件原始的el-form表單的校驗不一樣&#xff0c;需要傳遞props和rules過去校驗 const nextStep () > {const data taskMsgInstance.value.formDataif(data.upGradeOrg ) {elm…

vscode 配置 QtCreat Cmake項目

1.vscode安裝CmakeTool插件并配置QT中cmake的路徑&#xff0c;不止這一處 2.cmake生成器使用Ninja&#xff08;Ninja在安裝QT時需要勾選&#xff09;&#xff0c;可以解決[build] cc1plus.exe: error: too many filenames given; type ‘cc1plus.exe --help’ for usage 編譯時…

關于數據倉庫、數據湖、數據平臺、數據中臺和湖倉一體的概念和區別

我們談論數據中臺之前&#xff0c; 我們也聽到過數據平臺、數據倉庫、數據湖、湖倉一體的相關概念&#xff0c;它們都與數據有關系&#xff0c;但他們和數據中臺有什么樣的區別&#xff0c; 下面我們將圍繞數據平臺、數據倉庫、數據湖和數據中臺的區別進行介紹。 一、相關概念…

WIN11+eclipse搭建java開發環境

環境搭建&#xff08;WIN11ECLIPSE&#xff09; 安裝JAVA JDK https://www.oracle.com/cn/java/technologies/downloads/#jdk24安裝eclipse https://www.eclipse.org/downloads/ 注意&#xff1a;eclipse下載時指定aliyun的軟件源&#xff0c;后面安裝會快一些。默認是jp漢化e…

通義靈碼深度實戰測評:從零構建智能家居控制中樞,體驗AI編程新范式

一、項目背景&#xff1a;零基礎挑戰全棧智能家居系統 目標&#xff1a;開發具備設備控制、環境感知、用戶習慣學習的智能家居控制中樞&#xff08;PythonFlaskMQTTReact&#xff09; 挑戰點&#xff1a; 需集成硬件通信(MQTT)、Web服務(Flask)、前端交互(React) 調用天氣AP…

【Python進階】CPython

目錄 ?? 前言??? 技術背景與價值?? 當前技術痛點??? 解決方案概述?? 目標讀者說明?? 一、技術原理剖析?? 核心架構圖解?? 核心作用講解?? 關鍵技術模塊說明?? Python實現對比??? 二、實戰演示?? 環境配置要求?? 核心代碼實現案例1:查看字節碼案例…

Hive中資源優化方法的詳細說明

在Hive中&#xff0c;資源優化的核心目標是合理分配集群資源&#xff08;如內存、CPU、任務并行度等&#xff09;&#xff0c;避免資源競爭和浪費&#xff0c;提升查詢效率。以下是資源優化的具體方法&#xff0c;涵蓋 YARN資源配置、任務并行度、內存管理、JVM重用、推測執行 …

流媒體協議分析:流媒體傳輸的基石

在流媒體傳輸過程中&#xff0c;協議的選擇至關重要&#xff0c;它決定了數據如何封裝、傳輸和解析&#xff0c;直接影響著視頻的播放質量和用戶體驗。本文將深入分析幾種常見的流媒體傳輸協議&#xff0c;探討它們的特點、應用場景及優缺點。 協議分類概述 流媒體傳輸協議根據…

GitHub 趨勢日報 (2025年05月29日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖 1864 agenticSeek 753 langflow 749 n8n 736 prompt-eng-interactive-tutorial 42…

Jenkins-Pipeline:學習筆記

Jenkins-Pipeline:學習筆記 在 DevOps 領域中,Pipeline(流水線) 是實現持續集成(CI)和持續部署(CD)的核心機制。學習 Pipeline 通常需要從以下幾個方面入手,涵蓋基礎概念、工具使用、語法規則、實踐優化等 一、Pipeline 基礎概念 什么是 Pipeline? 流水線是將軟件交…

內存管理 : 04段頁結合的實際內存管理

一、課程核心主題引入 這一講&#xff0c;我要給大家講的是真正的內存管理&#xff0c;也就是段和頁結合在一起的內存管理方式。之前提到過&#xff0c;我們先學習了分段管理內存的工作原理&#xff0c;知道操作系統采用分段的方式&#xff0c;讓用戶程序能以分段的結構進行編…

RAID磁盤陣列配置

RAID磁盤陣列配置 文章目錄 RAID磁盤陣列配置一、磁盤管理其他相關命令1.fsck-檢查文件的正確性2.dd-建立和使用交換文件3.mkswap-建立和設置SWAP交換分區 二、RAID配置 一、磁盤管理其他相關命令 1.fsck-檢查文件的正確性 [rootlocalhost ~]# fsck -aC /dev/sda1 //檢查文…

網站服務器出現異常的原因是什么?

網站時企業和個人用戶進行提供信息和服務的重要平臺&#xff0c;隨著時間的推移&#xff0c;網站服務器出現異常情況也是常見的問題之一&#xff0c;這可能會導致網站無法正常訪問或者是運行緩慢&#xff0c;會嚴重影響到用戶的體驗感&#xff0c;本文就來介紹一下網站服務器出…

LINUX528 重定向

2>&1 我的理解&#xff1a; 2>&1&#xff0c;2stderr錯誤輸出&#xff0c;1stdout輸出&#xff0c;stderr一般和stdout是分別輸出&#xff08;管道符只傳遞stdout&#xff0c;據元寶&#xff0c;stderr默認輸出到終端&#xff1b;如果重定向符不進行2顯示重定向&…

【Python高階】面向對象

目錄 ?? 前言??? 技術背景與價值?? 當前技術痛點??? 解決方案概述?? 目標讀者說明?? 一、技術原理剖析?? 核心知識圖譜?? 核心作用講解?? 關鍵技術模塊說明?? 技術選型對比??? 二、實戰演示?? 環境配置要求?? 核心代碼實現案例1:面向對象電商系統…

榕壹云醫療服務系統:基于ThinkPHP+MySQL+UniApp的多門店醫療預約小程序解決方案

在數字化浪潮下,傳統醫療服務行業正面臨效率提升與客戶體驗優化的雙重挑戰。針對口腔、美容、診所、中醫館、專科醫院及康復護理等需要預約或診斷服務的行業,我們開發了一款基于ThinkPHP+MySQL+UniApp的多門店服務預約小程序——榕壹云醫療服務系統。該系統通過模塊化設計與開…