Windows 11安裝時跳過網路連線

 因為幫忙安裝公司的新電腦,新電腦要安裝Windows 11,安裝完後在初始設定時,有一個步驟需要網路連線,而且之後的步驟還需要有用微軟帳號登入的部份,但是這些網路的設定完成後,我們也是用不到。

在我的印象中,之前安裝系統時會有一個跳過的選項,但是現在windows 11上已經看不到了,所以上網查了一下,可以用Shift + F10開啟命令列,再輸入「oobe\bypassnro」之後,系統會重開機,接著在設定的畫面中就會多出一個「我沒有網際網路 」的選項了。

Oracle DB的listener.log清理

 查看日志位置:lsnrctl status

執行指令後,如以找到下列的訊息,就是log file的位置:
Listerer Log File   /erptest/test/11.2.0/log/diag/tnslsnr/13R11/test/alert/log.xml

進入log file的目錄,可以發現有許多的xml檔,它就是log檔,檔名log.xml就是目前使用中的log,其他都是自動備份的log:

除了使用中的log.xml之外,其他的都可以刪掉:rm -f log_*.xml

剛才我們處理的是在alert這個目錄下的log檔,接著我們要處理另一個位於trace目錄下的listerner.log,我們這邊是test.log

關閉listener日誌寫入,這裡只關閉log的寫入,所以listener的監聽服務不會停用:lsnrctl set log_status off

如果資料庫有多個listener,則改以下列方式更改:
1、進入lsnctl command模式,指令:lsnrctl
2、指定要設定的listerer name: set CURRENT_LISTENER

上面兩個指令操作如下:

Oracle利用awrrpt.sql導出DB效能資料

 Oracle Database有一個AWR的工具,它收集了與效能有關的統計數據。

首先進入$ORACLE_HOME/rdbms/admin的目錄下,登入sqlplus並執行一個腳本:@awrrpt.sql,接著按照提示就可以將效能資料導出成txt或html的格式


SQL> @awrrpt.sql


Current Instance

~~~~~~~~~~~~~~~~


   DB Id    DB Name      Inst Num Instance

----------- ------------ -------- ------------

  259210000 TEST                1 TEST



Specify the Report Type

~~~~~~~~~~~~~~~~~~~~~~~

Would you like an HTML report, or a plain text report?

Enter 'html' for an HTML report, or 'text' for plain text

Defaults to 'html'

Enter value for report_type: html


Type Specified:  html  <--輸入html,表示要導出成網頁的格式



Instances in this Workload Repository schema

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


   DB Id     Inst Num DB Name      Instance     Host

------------ -------- ------------ ------------ ------------

* 259210000         1 TEST         TEST         TEST_DB


Using  259210000 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 <return> without

specifying a number lists all completed snapshots.



Enter value for num_days: 14  <--選擇snapshot的天數


Listing the last 14 days of Completed Snapshots


                                                        Snap

Instance     DB Name        Snap Id    Snap Started    Level

------------ ------------ --------- ------------------ -----

TEST         TEST             79405 08 Feb 2024 01:00      1

                              79406 08 Feb 2024 02:00      1

                              79407 08 Feb 2024 03:00      1

(略)

                              79603 16 Feb 2024 07:00      1

                              79604 16 Feb 2024 08:00      1

                              79605 16 Feb 2024 09:00      1




Specify the Begin and End Snapshot Ids

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Enter value for begin_snap: 79405

Begin Snapshot Id specified: 79405 <--輸入開始的Snap Id


Enter value for end_snap: 79605

End   Snapshot Id specified: 79605  <--輸入結束的Snap Id




Specify the Report Name

~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is awrrpt_1_79405_79605.html.  To use this name,

press <return> to continue, otherwise enter an alternative.


Enter value for report_name:  <--輸入指定的檔名,如不輸入,則以預設值


Using the report name awrrpt_1_79405_79605.html


<html lang="en"><head><title>AWR Report for DB: TEST, Inst: TEST, Snaps: 79405-79605</title>

<style type="text/css">

body.awr {font:bold 10pt Arial,Helvetica,Geneva,sans-serif;color:black; background:White;}

pre.awr  {font:8pt Courier;color:black; background:White;}

(略)


最後會產生一個html的檔案,就可以看指定的時段內,DB的效能資料了。



Powershell_批次備份與複製(微軟模擬飛行)

 因為微軟模擬飛行的遊戲需要中文化,網路上的說法是官方中文包放在遊戲目錄內,要自己更名,也就是將中文包的檔名改成英文檔名,但是遊戲的目錄下有一百多個中文包,所以用powershell來批次處理,希望改完後可以成功中文化

這支程式會先將英文檔名更名備份,再將中文檔名改為英文檔名,因為有設定參數,所以其實也可以用來批次處理其他的檔案


# -----程式使用方式-----
  # 語法: test001.ps1 -en [英文語系檔名] -tw [中文語系檔名]
  # 例如: test001.ps1 -en us_en.lang -tw tw_cn.lang
  # -------------------
  
  
  #param是設定參數,如下設定了兩個參數:en、tw
  param($en,$tw)
  
  $US_filename = $en #英文語系檔
  $TW_filename = $tw #中文語系檔
  $US_filename_bk = $US_filename + ".bk" #英文原始檔備份的檔名
  
  if ( $US_filename -and $TW_filename) {
  
      get-childitem -Path "E:\images\test001" -Filter $US_filename -Recurse | foreach {
  
          write-host  "----------------------------------------------------------------"
          write-host  "原始檔名:"  $_.FullName
  
          #更名
          Rename-Item -Path $_.FullName -NewName $US_filename_bk
  
          $US_Fullname_bk = -join($_.DirectoryName,"\$US_filename_bk")
  
          #檢查更名是否成功
          if ((Test-Path -Path $US_Fullname_bk )) {
              write-host  "更名:" $_.Name "-->" $US_filename_bk
  
              #複製中文語系並更名
              $TW_Fullname = -join($_.DirectoryName,"\$TW_filename") #完整的中文語系路徑
              $US_Fullname = -join($_.DirectoryName,"\$US_filename") #完整的英文語系路徑(Copy用)
              Copy-Item -Path $TW_Fullname -Destination $US_Fullname -Force
              write-host  "複製並更名:" $TW_Fullname "-->" $US_filename_bk
          
  
          } else {
              write-host  "更名失敗" 
          }
      }
  
  } else {
      write-host "參數en或tw的值為空白,語法:test001.ps1 -en [英文語系檔名] -tw [中文語系檔名]"
  }

Oracle DB變更archive log的路徑

 有一台Oracle Data guard的Standby DB,想要變更它的archive log路徑。

其實就跟Standalone一樣的做法,至於Primary DB則無需變動。


1、查詢目前archive log的狀態

SQL> archive log list

Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /a/archive
Oldest online log sequence     104171
Next log sequence to archive   0
Current log sequence           104175


2、查詢DB的parametre:log_archive_dest_1

SQL> show parameter log_archive_dest_1

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string      LOCATION=/a/archive  

                                           

3、變更archive log的路徑

SQL> alter system set log_archive_dest_1='LOCATION=/b/archive' scope=both;


4、強制switch log來檢查在新目錄下是否有產生archive log file

SQL> alter system switch logfile;


如果在新的路徑/b/archive下有產生新的archive log就表示成功了。


利用dbms_application_info,讓v$session記錄額外的資訊

 DBMS_APPLICATION_INFO是一个非常有用的package,它提供了在V$SESSION 新增自訂紀錄的功能,以便追蹤SESSION

例如我們有一個第三方的程式連線DB,但是從v$session的資訊看來,只能查詢到程式名稱,但是不知道是誰執行了這個程式,所以每次發現某個session執行時間很久時,就只能強迫刪除,無法進一步與使用者討論。

此時就可以利用DBMS_APPLICATION_INFO來將自訂的紀錄提供到v$session中,簡單的範例如下:

declare
    aa number ;
    v_action varchar2(50);
    v_module varchar2(50);
    v_client_info varchar2(50);
begin
    dbms_application_info.set_action('設定action資料');
    dbms_application_info.set_module('設定Module資料','設定Action資料');
    dbms_application_info.set_client_info('設定Client_info資料');


    select 1+1 into aa from dual;


    dbms_application_info.read_client_info( v_client_info);
    dbms_application_info.read_module(v_module,v_action);  

    dbms_output.put_line('Client_info => ' || v_client_info) ;
    dbms_output.put_line('Action => ' || v_action) ;
    dbms_output.put_line('Module => ' || v_module);    

end;

其中dbms_application_info.set_module有兩個參數,第一個是設定moduel,第二個是設定action, 換句話說第二個參數與set_action是一樣的效果。

另外也可以用read_client_info與read_module這兩個函數來取出v$session中的client_info、module與action欄位的值



Solaris查詢CPU的Core與Thread的數量

 查physical processors數量
# kstat -m cpu_info | grep chip_id | sort -u | wc -l | tr -d ' '

查virtual processors數量
# kstat -m cpu_info | grep 'module: cpu_info' | sort -u | wc -l | tr -d ' '

查CPU的Core數
# kstat -m cpu_info | grep core_id | sort -u | wc -l | tr -d ' '

 

每顆CPU有多少Core:(Core)/(physical processors)

每個Core有多少的Threads:(virtual processors)/(Core)




Windows 11安裝時跳過網路連線