簡體   English   中英

有沒有辦法運行 .NET Core 服務,該服務使用操作系統身份驗證將 RMAN 備份作為 systemd 運行?

[英]Is there a way to run a .NET Core Service that uses OS authentication to run RMAN backups as systemd?

我在 C#/.NET Core 中設置了一個服務,它的部分功能是在每天的指定時間為 Oracle 啟動 RMAN。 這些功能都可以完美地以 Oracle 用戶身份運行,但不能以 root 身份或以 systemd 身份運行(即使我在 init 文件中包含了作為 oracle 運行的參數)。

嘗試以 root 身份運行 RMAN 時出錯Error as Root

ORA-12162: TNS:net 服務名稱指定不正確

C#中的代碼:

string oraHome = Environment.GetEnvironmentVariable("ORACLE_HOME");
            //execute powershell cmdlets or scripts using command arguments as process
            ProcessStartInfo processInfo = new ProcessStartInfo
            {
                FileName = $"{oraHome}/bin/rman",
                Arguments = $"NOCATALOG TARGET  / CMDFILE {RMANObjects.Backup}RMAN_{RMANObjects.sn}.rcv LOG {RMANObjects.Backup}backup_log_{RMANObjects.sn}.txt",
                RedirectStandardError = true,
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };

            //start powershell process using process start info
            Process process = new Process();
            process.StartInfo = processInfo;
            process.Start();

RMANandLogMover 初始化/服務文件

 [Unit] Description=RMANandLogMover DefaultDependencies=no [Service] Type=notify WorkingDirectory=/home/oracle/app/RMANandLogMover/8.25Logmover ExecStart=/home/oracle/app/RMANandLogMover/8.25Logmover/RMANandLogMover Environment=ORACLE_HOME=/home/oracle/app/product/19.0.0/dbhome_1 User=oracle Group=backupdba RemainAfterExit=yes [Install] WantedBy=default.target

這里的問題不是所有的環境變量都被設置了。 我建議您先調用oraenv並確保您使用的是 oracle 的 os 用戶,而不是任何其他用戶

export ORACLE_HOME=<path>
export ORACLE_SID=orcl
export ORAENV_ASK=NO
. oraenv

首先對此進行編碼,然后運行 ​​RMAN :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM