TSPITR方式數據庫找回誤操作丟失的數據

一、TSPITR介紹

????????TSPITR全稱是Tablespace Point In Time Recover(表空間基于時間點的不完全恢復)。原理是通過輔助實例基于時間還原出誤操作前的數據通過DataPump將數據導入到目標數據庫。TSPITR的最大好處是不需要生產庫停機。

二、適用場景

表空間時點恢復適用用以下場景:
????①錯誤的批處理作業或數據操作語言DML
????②恢復數據定義語言(DDL)后丟失的數據操作,改變表的結構。不能使用閃回表將表倒回結構更改點之前,例如截斷表(truncate)操作。
????③恢復drop時使用了purge選項的表
????④恢復存在邏輯錯誤的表
????⑤恢復被刪除的表空間,RMAN可以在被drop的表空間上面執行TSPITR
????⑥與全庫級別閃回相比,表空間時點恢復停留在表空間級別,影響較全庫閃回較小。其次,數據庫閃回功能需要承擔維護閃回日志開啟的相關性能開銷。

三、TSPITR前提

1、有一套有效全庫備份,因為TSPITR這個過程除了復制需要恢復的表空間外,也必須復制system,sysaux和undo表空間
2、需要回復的表空間需要自包含,可以通過TS_PITR_CHECK視圖查看自包含信息。表空間上存在約束關系(依賴)表的情形,依賴關系所在的表空間也需要一同做時點恢復(如外鍵參照,不在同一時點,則違反參照約束)
3、對于索引與數據分離的表空間在時點恢復時,應先刪除索引
4、不能恢復數據庫當前的缺省表空間
5、不能恢復以下對象:
????①存在依賴關系的物化視圖,分區表等(如果要恢復,先解決依賴)
????②undo表空間,undo段
????③sys模式下的對象(如PL/SQL,views, synonyms, users…)

四、測試過程

1、對全庫做一個全備(之前做過全庫備份并且有效這步可以忽略)

RMAN> backup database format '/u01/rman_bak/all_db_%U.bak';啟動 backup 于 2018-07-29 19:19:31
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集內的數據文件
輸入數據文件: 文件號=00001 名稱=/u01/app/oracle/oradata/vbox66db/system01.dbf
輸入數據文件: 文件號=00002 名稱=/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
輸入數據文件: 文件號=00003 名稱=/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
輸入數據文件: 文件號=00004 名稱=/u01/app/oracle/oradata/vbox66db/users01.dbf
輸入數據文件: 文件號=00005 名稱=/u01/app/oracle/oradata/vbox66db/test01.dbf
通道 ORA_DISK_1: 正在啟動段 1 于 2018-07-29 19:19:31
通道 ORA_DISK_1: 已完成段 1 于 2018-07-29 19:21:37
段句柄=/u01/rman_bak/all_db_0kt98563_1_1.bak 標記=TAG20180729T191931 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:02:06
通道 ORA_DISK_1: 正在啟動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集內的數據文件
備份集內包括當前控制文件
備份集內包括當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 于 2018-07-29 19:21:44
通道 ORA_DISK_1: 已完成段 1 于 2018-07-29 19:21:45
段句柄=/u01/rman_bak/all_db_0lt985a1_1_1.bak 標記=TAG20180729T191931 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01
完成 backup 于 2018-07-29 19:21:45RMAN> 

2、創建一個測試表空間

①創建testdb表空間

SYS@vbox66in>create tablespace testdb datafile '/u01/app/oracle/oradata/vbox66db/testdb01.dbf' size 100M autoextend on;表空間已創建。SYS@vbox66in>select name from v$datafile;NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/vbox66db/system01.dbf
/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
/u01/app/oracle/oradata/vbox66db/users01.dbf
/u01/app/oracle/oradata/vbox66db/test01.dbf
/u01/app/oracle/oradata/vbox66db/testdb01.dbf已選擇6行。SYS@vbox66in>SYS@vbox66in>alter user scott default tablespace testdb;用戶已更改。

②創建測試表

SCOTT@vbox66in>create table test01 tablespace testdb as select * from emp;表已創建。SCOTT@vbox66in>create table test02 tablespace testdb as select * from dept;表已創建。
SCOTT@vbox66in>alter table test01 add primary key(empno);表已更改。SCOTT@vbox66in>alter table test02 add primary key(deptno);表已更改。SCOTT@vbox66in>alter table test01 add constraints test01_fk foreign key(deptno) references test02(deptno);表已更改。SCOTT@vbox66in>SCOTT@vbox66in>commit;提交完成。SCOTT@vbox66in>

③RMAN備份testdb表空間

RMAN> backup tablespace testdb format '/u01/rman_bak/testdb_%U.bak';啟動 backup 于 2018-07-29 21:01:53
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集內的數據文件
輸入數據文件: 文件號=00006 名稱=/u01/app/oracle/oradata/vbox66db/testdb01.dbf
通道 ORA_DISK_1: 正在啟動段 1 于 2018-07-29 21:01:53
通道 ORA_DISK_1: 已完成段 1 于 2018-07-29 21:01:54
段句柄=/u01/rman_bak/testdb_0mt98b61_1_1.bak 標記=TAG20180729T210153 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01
完成 backup 于 2018-07-29 21:01:54RMAN> 

④取當前時間,以便之后還原時用

SCOTT@vbox66in>select sysdate from dual;SYSDATE
-------------------
2018-07-29 21:03:31SCOTT@vbox66in>

⑤誤操作刪除表test01、test02數據(這里是測試,)

SCOTT@vbox66in>truncate table test02;表被截斷。SCOTT@vbox66in>truncate table test01;表被截斷。SCOTT@vbox66in>select * from test01;未選定行SCOTT@vbox66in>select * from test02;未選定行SCOTT@vbox66in>

⑥建立目錄指定輔助庫目標,

[oracle@vbox66 ~]$ mkdir -p /tmp/auxdata
[oracle@vbox66 ~]$ ll /tmp/auxdata/
總計 0
[oracle@vbox66 ~]$ ll -d /tmp/auxdata/
drwxr-xr-x 2 oracle oinstall 4096 07-29 21:16 /tmp/auxdata/

⑦做RMAN TSPITR 并指定輔助庫目的地

RMAN> recover tablespace testdb until time '2018-07-29 22:11:35' auxiliary destination '/tmp/auxdata';    //這個時間和上面記錄的有點出入,因為期間修改過一次,道理上一致
啟動 recover 于 2018-07-29 22:15:28
使用通道 ORA_DISK_1
RMAN-05026: 警告: 假定以下表空間集適用于指定的時間點表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1使用 SID='Fcny' 創建自動實例供自動實例使用的初始化參數:
db_name=VBOX66DB
db_unique_name=Fcny_tspitr_VBOX66DB
compatible=11.2.0.4.0
db_block_size=8192
db_files=200
sga_target=1G
processes=80
db_create_file_dest=/tmp/auxdata
log_archive_dest_1='location=/tmp/auxdata'
#No auxiliary parameter file used啟動自動實例 VBOX66DBOracle 實例已啟動系統全局區域總計    1068937216 字節Fixed Size                     2260088 字節
Variable Size                281019272 字節
Database Buffers             780140544 字節
Redo Buffers                   5517312 字節
自動實例已創建
對恢復集表空間運行 TRANSPORT_SET_CHECK
TRANSPORT_SET_CHECK 已成功完成內存腳本的內容:
{
# set requested point in time
set until  time "2018-07-29 22:11:35";
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log 
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在執行內存腳本正在執行命令: SET until clause啟動 restore 于 2018-07-29 22:15:43
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=19 設備類型=DISK通道 ORA_AUX_DISK_1: 正在開始還原數據文件備份集
通道 ORA_AUX_DISK_1: 正在還原控制文件
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/rman_bak/full_db_0pt98f62_1_1.bak
通道 ORA_AUX_DISK_1: 段句柄 = /u01/rman_bak/full_db_0pt98f62_1_1.bak 標記 = TAG20180729T220804
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:00:01
輸出文件名=/tmp/auxdata/VBOX66DB/controlfile/o1_mf_fovm0jqt_.ctl
完成 restore 于 2018-07-29 22:15:45sql 語句: alter database mount clone databasesql 語句: alter system archive log currentsql 語句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;內存腳本的內容:
{
# set requested point in time
set until  time "2018-07-29 22:11:35";
plsql <<<-- tspitr_2
declaresqlstatement       varchar2(512);offline_not_needed exception;pragma exception_init(offline_not_needed, -01539);
beginsqlstatement := 'alter tablespace '||  'TESTDB' ||' offline immediate';krmicd.writeMsg(6162, sqlstatement);krmicd.execSql(sqlstatement);
exceptionwhen offline_not_needed thennull;
end; >>>;
# set destinations for recovery set and auxiliary set datafiles
set newname for clone datafile  1 to new;
set newname for clone datafile  3 to new;
set newname for clone datafile  2 to new;
set newname for clone tempfile  1 to new;
set newname for datafile  6 to "/u01/app/oracle/oradata/vbox66db/testdb01.dbf";
# switch all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set and the auxiliary set
restore clone datafile  1, 3, 2, 6;
switch clone datafile all;
}
正在執行內存腳本正在執行命令: SET until clausesql 語句: alter tablespace TESTDB offline immediate正在執行命令: SET NEWNAME正在執行命令: SET NEWNAME正在執行命令: SET NEWNAME正在執行命令: SET NEWNAME正在執行命令: SET NEWNAME臨時文件 1 在控制文件中已重命名為 /tmp/auxdata/VBOX66DB/datafile/o1_mf_temp_%u_.tmp啟動 restore 于 2018-07-29 22:15:56
使用通道 ORA_AUX_DISK_1通道 ORA_AUX_DISK_1: 正在開始還原數據文件備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集還原的數據文件
通道 ORA_AUX_DISK_1: 將數據文件 00001 還原到 /tmp/auxdata/VBOX66DB/datafile/o1_mf_system_%u_.dbf
通道 ORA_AUX_DISK_1: 將數據文件 00003 還原到 /tmp/auxdata/VBOX66DB/datafile/o1_mf_undotbs1_%u_.dbf
通道 ORA_AUX_DISK_1: 將數據文件 00002 還原到 /tmp/auxdata/VBOX66DB/datafile/o1_mf_sysaux_%u_.dbf
通道 ORA_AUX_DISK_1: 將數據文件 00006 還原到 /u01/app/oracle/oradata/vbox66db/testdb01.dbf
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/rman_bak/full_db_0ot98f25_1_1.bak
通道 ORA_AUX_DISK_1: 段句柄 = /u01/rman_bak/full_db_0ot98f25_1_1.bak 標記 = TAG20180729T220804
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:02:25
完成 restore 于 2018-07-29 22:18:21數據文件 1 已轉換成數據文件副本
輸入數據文件副本 RECID=4 STAMP=982793902 文件名=/tmp/auxdata/VBOX66DB/datafile/o1_mf_system_fovm0ws4_.dbf
數據文件 3 已轉換成數據文件副本
輸入數據文件副本 RECID=5 STAMP=982793902 文件名=/tmp/auxdata/VBOX66DB/datafile/o1_mf_undotbs1_fovm0wsx_.dbf
數據文件 2 已轉換成數據文件副本
輸入數據文件副本 RECID=6 STAMP=982793902 文件名=/tmp/auxdata/VBOX66DB/datafile/o1_mf_sysaux_fovm0wsb_.dbf內存腳本的內容:
{
# set requested point in time
set until  time "2018-07-29 22:11:35";
# online the datafiles restored or switched
sql clone "alter database datafile  1 online";
sql clone "alter database datafile  3 online";
sql clone "alter database datafile  2 online";
sql clone "alter database datafile  6 online";
# recover and open resetlogs
recover clone database tablespace  "TESTDB", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;
alter clone database open resetlogs;
}
正在執行內存腳本正在執行命令: SET until clausesql 語句: alter database datafile  1 onlinesql 語句: alter database datafile  3 onlinesql 語句: alter database datafile  2 onlinesql 語句: alter database datafile  6 online啟動 recover 于 2018-07-29 22:18:22
使用通道 ORA_AUX_DISK_1正在開始介質的恢復線程 1 序列 22 的歸檔日志已作為文件 /u01/app/oracle/oradata/arch/1_22_974146828.dbf 存在于磁盤上
歸檔日志文件名=/u01/app/oracle/oradata/arch/1_22_974146828.dbf 線程=1 序列=22
介質恢復完成, 用時: 00:00:02
完成 recover 于 2018-07-29 22:18:25數據庫已打開內存腳本的內容:
{
# make read only the tablespace that will be exported
sql clone 'alter tablespace  TESTDB read only';
# create directory for datapump import
sql "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/tmp/auxdata''";
# create directory for datapump export
sql clone "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/tmp/auxdata''";
}
正在執行內存腳本sql 語句: alter tablespace  TESTDB read onlysql 語句: create or replace directory TSPITR_DIROBJ_DPDIR as ''/tmp/auxdata''sql 語句: create or replace directory TSPITR_DIROBJ_DPDIR as ''/tmp/auxdata''正在執行元數據導出...EXPDP> 啟動 "SYS"."TSPITR_EXP_Fcny":  EXPDP> 處理對象類型 TRANSPORTABLE_EXPORT/PLUGTS_BLKEXPDP> 處理對象類型 TRANSPORTABLE_EXPORT/TABLEEXPDP> 處理對象類型 TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINTEXPDP> 處理對象類型 TRANSPORTABLE_EXPORT/INDEX_STATISTICSEXPDP> 處理對象類型 TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINTEXPDP> 處理對象類型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKEXPDP> 已成功加載/卸載了主表 "SYS"."TSPITR_EXP_Fcny" EXPDP> ******************************************************************************EXPDP> SYS.TSPITR_EXP_Fcny 的轉儲文件集為:EXPDP>   /tmp/auxdata/tspitr_Fcny_42764.dmpEXPDP> ******************************************************************************EXPDP> 可傳輸表空間 TESTDB 所需的數據文件:EXPDP>   /u01/app/oracle/oradata/vbox66db/testdb01.dbfEXPDP> 作業 "SYS"."TSPITR_EXP_Fcny" 已于 星期日 7月 29 22:20:31 2018 elapsed 0 00:01:15 成功完成
導出完畢內存腳本的內容:
{
# shutdown clone before import
shutdown clone immediate
# drop target tablespaces before importing them back
sql 'drop tablespace  TESTDB including contents keep datafiles cascade constraints';
}
正在執行內存腳本數據庫已關閉
數據庫已卸裝
Oracle 實例已關閉sql 語句: drop tablespace  TESTDB including contents keep datafiles cascade constraints正在執行元數據導入...IMPDP> 已成功加載/卸載了主表 "SYS"."TSPITR_IMP_Fcny" IMPDP> 啟動 "SYS"."TSPITR_IMP_Fcny":  IMPDP> 處理對象類型 TRANSPORTABLE_EXPORT/PLUGTS_BLKIMPDP> 處理對象類型 TRANSPORTABLE_EXPORT/TABLEIMPDP> 處理對象類型 TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINTIMPDP> 處理對象類型 TRANSPORTABLE_EXPORT/INDEX_STATISTICSIMPDP> 處理對象類型 TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINTIMPDP> 處理對象類型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKIMPDP> 作業 "SYS"."TSPITR_IMP_Fcny" 已于 星期日 7月 29 22:21:27 2018 elapsed 0 00:00:10 成功完成
導入完畢內存腳本的內容:
{
# make read write and offline the imported tablespaces
sql 'alter tablespace  TESTDB read write';
sql 'alter tablespace  TESTDB offline';
# enable autobackups after TSPITR is finished
sql 'begin dbms_backup_restore.AutoBackupFlag(TRUE); end;';
}
正在執行內存腳本sql 語句: alter tablespace  TESTDB read writesql 語句: alter tablespace  TESTDB offlinesql 語句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;刪除自動實例
自動實例已刪除
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_temp_fovm638r_.tmp
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/onlinelog/o1_mf_3_fovm5vqb_.log
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/onlinelog/o1_mf_2_fovm5p7q_.log
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/onlinelog/o1_mf_1_fovm5krt_.log
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_sysaux_fovm0wsb_.dbf
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_undotbs1_fovm0wsx_.dbf
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_system_fovm0ws4_.dbf
已刪除輔助實例文件 /tmp/auxdata/VBOX66DB/controlfile/o1_mf_fovm0jqt_.ctl
完成 recover 于 2018-07-29 22:21:32RMAN> 

⑧查看表的數據

SYS@vbox66in>alter tablespace testdb online;表空間已更改。SYS@vbox66in>conn scott/tiger;
已連接。
SCOTT@vbox66in>select * from test01;EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    207499 ALLEN      SALESMAN        7698 1981-02-20 00:00:00       1600        300         307521 WARD       SALESMAN        7698 1981-02-22 00:00:00       1250        500         307566 JONES      MANAGER         7839 1981-04-02 00:00:00       2975                    207654 MARTIN     SALESMAN        7698 1981-09-28 00:00:00       1250       1400         307698 BLAKE      MANAGER         7839 1981-05-01 00:00:00       2850                    307782 CLARK      MANAGER         7839 1981-06-09 00:00:00       2450                    107788 SCOTT      ANALYST         7566 1987-04-19 00:00:00       3000                    207839 KING       PRESIDENT            1981-11-17 00:00:00       5000                    107844 TURNER     SALESMAN        7698 1981-09-08 00:00:00       1500          0         307876 ADAMS      CLERK           7788 1987-05-23 00:00:00       1100                    20EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------7900 JAMES      CLERK           7698 1981-12-03 00:00:00        950                    307902 FORD       ANALYST         7566 1981-12-03 00:00:00       3000                    207934 MILLER     CLERK           7782 1982-01-23 00:00:00       1300                    10已選擇14行。SCOTT@vbox66in>select * from test02;DEPTNO DNAME          LOC
---------- -------------- -------------10 ACCOUNTING     NEW YORK20 RESEARCH       DALLAS30 SALES          CHICAGO40 OPERATIONS     BOSTONSCOTT@vbox66in>

此時發現數據已經全部恢復。

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

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

相關文章

烏班圖系統的MySQL_烏班圖系統mysql主從備份

一&#xff0e;準備系統&#xff1a;ubuntu 14.04.2 LTSMysql: server version 5.5.43兩臺主機可以互相通信&#xff1a;192.168.1.11 master192.168.1.12 slave二&#xff0e;步驟Master部分&#xff1a;1.創建備份帳號&#xff1a;slave密碼&#xff1a;slaveGrant repl…

mysql table alter_MySQL-ALTER TABLE命令學習[20180503]

學習ALTER TABLE刪除、添加和修改字段和類型CREATE TABLE alter_tab01(id int,col01 char(20))enginInnoDB default charsetutf8;刪除字段ALTER TABLE DROP ;mysql> alter table alter_tab01 dropcol01;Query OK, 0 rows affected (0.01sec)Records: 0 Duplicates: 0 Warnin…

時間戳轉換

13 位時間戳轉換 1 通過java&#xff0c;如下&#xff1a; public static String timeStamp2Date(String time) {Long timeLong Long.parseLong(time);SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要轉換的時間格式Date date;try {date …

React.Component(V16.8.6)

組件的生命周期 掛載 當組件實例被創建并插入 DOM 中時&#xff0c;其生命周期調用順序如下&#xff1a; constructor()static getDerivedStateFromProps()render()componentDidMount()componentWillMount() 之后將廢棄 更新 當組件的 props 或 state 發生變化時會觸發更新。組…

mysql date類型加一個月jdbc_JDBC操作數據庫Date類型數據

JDBC操作數據庫Date類型數據由于java原生的工具類java.util提供的Date對象與JDBC提供的Date對象并不相同分別是java.util.Date和java.sql.Datejava.sql.Date是java.util.Date的子類所以在進行增刪改查部分操作中&#xff0c;不能直接將原生工具類的Date對象直接運用到JDBC中可以…

使用深度學習TensorFlow框架進行圖片識別

Apsara Clouder大數據專項技能認證&#xff1a;使用深度學習TensorFlow框架進行圖片識別本認證系統的介紹了深度學習的一些基礎知識&#xff0c;以及Tensorflow的工作原理。通過阿里云機器學習PAI基于經典的CIFAR-10數據集實現圖片識別。學員可以通過本實驗&#xff0c;對深度學…

刪除開發分支 新建另一個開發分支

//查看狀態 git status //查看分支 會有一個分支git branch -d wlh-dev git branch //刪除wlh-dev 分支 git branch -d wlh-dev //再次查看分支 git branch //拉代碼 git pull //查看狀態 git status //新分支創建的同時切換分支 git checkout -b wlh-dev1222 //…

ES語法及-IK分詞器

{"query": {"query_string": {"default_field": "title",//全文搜索"query": "器大"}} } "id":1, "title":"Elasticsearch是一個基于Lucene的搜索服務器", "content":&q…

Git倉庫配置

安裝git依賴包 yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 源碼安裝 wget https://github.com/git/git/archive/v2.7.4.zip unzip v2.7.4.zip cd git-2.7.4 make prefix/usr/local/git all make prefix/usr/l…

python3 tkinter電子書_Python3 Tkinter-Text

1.創建from tkinter import *rootTk()tText(root)t.pack()root.mainloop()2.添加文本from tkinter import *rootTk()tText(root)t.insert(1.0,0123456789)t.insert(1.0,ABDCEFGHIJ)t.pack()root.mainloop()3.設置添加位置from tkinter import *rootTk()tText(root)for i in ran…

問題 1: 區間交集

問題 1: 區間交集 題目描述 輸入 5 個正整數 a1、b1、a2、b2 和 c&#xff0c;如果 c 在區間[a1, b1]內 并且 c 也在區間[a2, b2]內&#xff0c;輸出”in”&#xff0c;否則輸出”out”。 注意&#xff1a;方括號表示的是閉區間&#xff0c;[a, b]是包括 a 和 b 的。 輸入 一行…

python倒三角形粉色填充筆的形狀海龜_Python001-Turtle(海龜繪圖)詳解

一、簡介Turtle庫是Python語言中的一個繪制圖像的函數庫。詳細文檔&#xff1a; https://docs.python.org/zh-cn/3/library/turtle.html二、使用1.畫布設置(canvas)(1)設置畫布大小turtle.screensize(canvwidthNone, canvheightNone, bgNone)參數分別為畫布的寬(單位像素), 高,…

Python 提取數據庫(Postgresql)并郵件發送

剛入門python&#xff0c;發現確實是一個不錯的語言。業務部門要求將將某一個數據庫中的表&#xff0c;定期發送到相關部門人員郵箱。其實整個業務需求很簡單&#xff0c;實現起來也不難。但是由于剛入門python&#xff0c;所以還是借鑒了不上網上的內容&#xff0c;也得到了許…

4.Python的不堪一擊到初學乍練(列表,元組)

Python(列表,元組) 一.列表 列表初識 列表是python的基礎數據類型之一,其他編程語言也有類似的數據類型. 比如JS中的數組, java中的數組等等,它是以[ ]括起來, 每個元素用","隔開并且可以存放各種數據類型.列表相比于字符串,不僅可以存放不同的數據類型,并且可以存放…

【前端工程師手冊】說清楚JavaScript中的相等性判斷

有哪些判斷相等性的方法 JavaScript現在提供了三種方法來判斷相等性&#xff1a; &#xff0c;三個等號即嚴格相等&#xff0c;兩個等號即寬松相等Object.is()&#xff0c;ES6中用來判斷相等的方法判斷相等性的細節 &#xff08;嚴格相等&#xff09; 被比較的兩個數不會進行類…

python多任務編程_python線程的多任務編程

多任務多任務介紹對于人來說&#xff0c;一邊聽歌&#xff0c;一邊跳舞就是多任務。對于電腦&#xff0c;簡單的說&#xff0c;同一時間執行多個程序處理數據叫做多任務多任務理解單核CPU單核cpu在處理多任務的時候是根據時間片輪轉的方式進行的&#xff0c;比如執行QQ1us&…

列舉python的5個數據類型_python公開課|新公布的5個python核心數據類型,這些細節你難道還不不知道嗎...

【摘要】在這個科學技術高速發展的時代&#xff0c;越來越多的人都開始選擇學習編程軟件&#xff0c;那么首先被大家選擇的編程軟件就是python&#xff0c;也用在各行各業之中&#xff0c;并被大家所熟知&#xff0c;所以也有越來越多的python學習者關注python就業方向問題&…

selenium3 + python - page_source頁面源碼

前言&#xff1a; 有時候通過元素的屬性的查找頁面上的某個元素&#xff0c;可能不太好找&#xff0c;這時候可以從源碼中爬出想要的信息。selenium的page_source方法可以獲取到頁面源碼。 本次以博客園為例&#xff0c;先爬取頁面源碼&#xff0c;通過re正則表達式爬取出url&a…

簡單分析Guava中RateLimiter中的令牌桶算法的實現

為什么80%的碼農都做不了架構師&#xff1f;>>> 令牌桶算法是網絡流量整形&#xff08;Traffic Shaping&#xff09;和速率限制&#xff08;Rate Limiting&#xff09;中最常使用的一種算法。典型情況下&#xff0c;令牌桶算法用來控制發送到網絡上的數據的數目&am…

gcc oracle mysql_Linux下C語言訪問Oracle數據庫Demo

前提條件1. Linux環境已經存在&#xff0c;安裝好了Oracle本demo 運行環境本地環境 RedHat LINUX AS 4 ,ORACLE 10G本地數據庫sid orcl,ip:127.0.0.1,用戶名:kingbi&#xff0c;密碼&#xff1a;kingbi,表dsd_test. 顯示表dsd_test 的所有記錄.步驟&#xff1a;(1) 創建表 …