2016-03-31 15 views
1

Ich habe eine SQL-Datenbank auf Microsoft Azure ausgeführt. Um zu verhindern, dass es zu groß wird, muss ich es regelmäßig abschneiden (z. B. ein oder zwei Tage). truncate table xxx ist die SQL, die ich ausführen muss.Wie SQL-Datenbank in Microsoft Azure in regelmäßigen Abständen abgeschnitten

Was ist der einfachste Weg, dies zu erreichen? Ich schreibe lieber keinen C# -Code, außer ich muss es tun. Kann ich einen Web-Job verwenden, der kontinuierlich eine abgeschnittene SQL-Anweisung ausführt? Oder kann ich eine integrierte Funktionalität der SQL-Datenbank auf dem Azure verwenden, um dies zu erreichen? Vielen Dank!

+0

Haben Sie die Verwendung von [Azure automation] (https://azure.microsoft.com/de-de/blog/azure-automation-your-sql-agent-in-the-cloud/) in Betracht gezogen? – stuartd

Antwort

0

SQL Azure verfügt noch nicht über eine SQL-Agent-Funktionalität. Daher müssen Sie einen Web-Job erstellen (oder JavaScript ausführen, das die Ausführung der SQL-Anweisung ausführt) und dann den Job mithilfe von Azure Scheduler planen.

Sie können auch Azure Automation mit Powershell verwenden, um dasselbe zu tun.

+0

Hi Randy, Um einen Web-Job zu erstellen, um diesen Zweck zu erfüllen, muss ich eine .NET-Programmiersprache verwenden? – condor126

0

Sie können eine elastische Datenbank Pool und geben Sie Ihre Datenbank in der pool.once erstellen Sie sind dies getan zu tun, können Sie im Pool oder einzelne Datenbank Satz von Aufgaben oder Abfragen für alle Datenbanken laufen ..

Mehr auf das hier ..

https://azure.microsoft.com/en-in/documentation/articles/sql-database-elastic-jobs-overview/

+1

Sie müssen es auch nicht zu einem Pool hinzufügen, Sie können nur elastische Jobs über Powershell erstellen, ohne die Portalschnittstelle zu verwenden, und es funktioniert ohne einen vorhandenen Pool. – cbattlegear

+0

Toll, danke das wusste ich nicht – TheGameiswar

1

Eigentlich Sie eine Azure-Funktion („TimeTrigger“ Typ) in regelmäßigen Abständen Ihre Tabellen zu löschen, hier verwenden könnten, ist ein Beispiel für Code in einer C# TimeTrigger Azure-Funktion zu nutzen, um eine Verbindung zu Ihrer Azure Sql-Datenbank und führen Sie "Löschen" SQL-Abfragen:

#r "System.Data" 

using System; 
using System.Data.SqlClient; 

public static async Task Run(TimerInfo myTimer, TraceWriter log) 
{ 

    string userName = "*******"; 
    string passWord = "********"; 
    var connectionString = $"Server=tcp:work-on- sqlazure.database.windows.net,1433;Data Source=work-on-sqlazure.database.windows.net;Initial Catalog=VideoStore;Persist Security Info=False;User ID={userName};Password={passWord};Pooling=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"; 

    using(SqlConnection cns = new SqlConnection(connectionString)) 
    { 
     cns.Open(); 
     var truncateUserTable = "DELETE FROM Video"; 

     using(SqlCommand cmd = new SqlCommand(truncateUserTable, cns)) 
     { 
      int rowsDeleted = await cmd.ExecuteNonQueryAsync(); 
     } 
    } 
} 

Dann können Sie die Timer-Logik von der Azure Azure-Funktion konfigurieren „integrieren“ Raum mit einem cron Ausdruck.

Verwandte Themen