Heim > Schlagzeilen > Hauptteil

Erfahrungsaustausch: Zusammenfassung von drei Jahren DBA bei Ganji.com

PHPz
Freigeben: 2017-02-15 15:25:37
Original
2711 Leute haben es durchsucht

Ich bin Anfang 2013 zu Gongji gekommen. Zu dieser Zeit befand ich mich in der Phase des schnellen Wachstums im Datenverkehr. Ich habe in meiner dreijährigen DBA-Karriere viel gewonnen, aber tatsächlich gab es noch mehr Fallstricke (Tränen... Später). Als ich mich mit der Entwicklung befasste, wurde mir nach und nach klar, dass es in der „Entwicklung“ tatsächlich ein Kommunikationsproblem gibt: Wie lässt sich das Problem der letzten drei Jahre lösen? , und Sie können sofort Gemeinsamkeiten finden

Planung, Design, Verwaltung, Migration von DatenbanksystemenTägliche Wartung, Sicherung, Optimierung und Wiederherstellung der Datenbank

Aufbau der Master-Slave-Architektur und Wartung

Online-Support für Geschäftssysteme, Überprüfung des Datenbankdesigns, Bereitstellung von Architekturlösungen

Die Datenbank ist nicht auf MySQL, Oracle beschränkt. Wenn sie nicht in Details unterteilt wird, gibt es auch Redis, MongoDB usw Eine Reihe von NoSQL. Der erste ist die gleiche hohe Verfügbarkeit und Stabilität. Der zweite ist eine Menge Arbeit, wie z. B. Sicherung und Wiederherstellung. Jahresmarktaudit und aktive Benutzer auf dem mobilen Endgerät Die Daten werden aus dem Backup wiederhergestellt. Es ist ersichtlich, dass die Wirksamkeit des Backups natürlich oberste Priorität hat . Sie können nicht streiken, nur weil Ihr Privatleben unterbrochen wurde. Als ich zurückkam, um den DB-Alarm zu bearbeiten, wäre es tragisch Fälle

Lassen Sie mich einige tragische Fälle nennen, um die Richter glücklich zu machen~ Da es das Unternehmen schon lange nicht mehr gibt

1 .

Es ist die Schuld des Gebrauchtwagen-Klassenkameraden, und beim Schreiben des Offline-Skripts ist ein Fehler aufgetreten in der Zeile binlog. Mindestens 2 Mal:(

Reflexion: rd Es gibt einen Neuling nach dem anderen, und es ist nutzlos, egal wie viele Spezifikationen Sie sprechen. Es gibt nur eine vollständigste Lösung, verbinden Sie sich mit Proxy. Außerdem ist die rd-Online-Überprüfung nicht vorhanden und es muss etwas in der Codeüberprüfung fehlen

Das Problem der großen Verkäufer

Die Immobilienbranche eröffnete 2014 einen Freihafen. In nur wenigen Monaten explodierte die Immobiliengeschäftstabelle auf 100 G, und einige Zwischenkonten verzeichneten mehr als 10 W, was zu einem abnormalen Datenbank-Jitter führte, der vorübergehend den Überschuss bereinigte Veröffentlichungsdatensätze und schließlich drei Monate damit verbracht, die Tabelle zu verkleinern, das Textfeld aufzuteilen

Reflexion: DBAs unzureichende Überwachung großer Tabellen

3 Hauptdatenbank

Der Hauptstandortbesitzer Die Bibliothek wurde einmal durch eine Unterabfrage blockiert. Nach einer Untersuchung wurde festgestellt, dass diese Art von Problem durch eine große Anzahl von Unterabfragen in RD verursacht wurde Wer hat Anfragen an den Master geschrieben, die den Slave hätten lesen sollen, aber es hat keinen Unfall verursacht?

Reflexion: Ganji DB typisch 1 Master N Slave, ohne Proxy-Schutz treten oft solche Probleme auf, die nicht gelöst werden können allein durch das Standardsystem

4. Problem mit der Olap-Bibliothek melden

RP Kuwo und Wenwu nahmen die Schuld auf sich und ihre Leistung am Ende des Jahres war am Boden. Der RD entwickelte vor seiner Übernahme das zwischengeschaltete Händler-Meldesystem selbst. Als der freie Port geöffnet wurde, wurde eine große Anzahl von Anfragen blockiert Ich habe gehört, dass das Unternehmen den Händlern aufgrund ständiger Meldeprobleme 300 W entschädigt hat.

Reflexion: Dieser Unfall muss von einer hohen Stelle aus gesehen werden. Der Freihafen wurde zu plötzlich geöffnet und der technische Leiter des Projekts hat den Test nicht abgeschlossen. Das Berichtssystem wurde nicht entwickelt und wird vollständig von einem neuen RD verwaltet, der nur ein Hochschulabsolvent ist. Rückblickend kann Hadoop Spark vollständig damit umgehen. Letztendlich gelang es dem DBA nicht, die große Tabelle rechtzeitig zu verfolgen und sie nicht im Voraus zu entdecken.

5. 50G Redis

Das Immobiliengeschäft Redis ist von 20G auf 50G explodiert und wurde seit meinem Weggang nicht optimiert. Später kam es zu einem Fehler und die Daten wurden gelöscht?

Meine Arbeit

Ich verbringe die meiste Zeit damit, mit Entwicklern zu kommunizieren und über das Leben zu plaudern. Nachdem Automan online ging, kamen nur wenige Leute zu mir~ Es gibt überall Wachstum Es gibt Menschen und Dinge, für die ich dankbar bin. Auf den Markt zu gehen gibt mir eine Plattform, um die Dinge zu tun, die mich interessieren.

Als ich zum ersten Mal auf den Markt kam, war SQL noch online auf Jira. Die Halbautomatisierung wurde von Studenten der Betriebs- und Wartungsentwicklung oft erwähnt Ein manuelles Eingreifen durch den DBA ist sehr lästig. Darüber hinaus waren viele Anweisungen zur Tabellenerstellung nicht standardisiert und wurden zur Änderung an RD zurückgeschickt. Sie waren damit sehr unzufrieden und dachten, dass Änderungen keine Rolle spielten. Als Shizhan hier war, würde dies zu Kosten führen Machen Sie auch regelmäßig Schulungen zur Datenbankentwicklung und dann nichts weiter.

Begann Mitte 2014 mit der Entwicklung der Automan-Plattform, von der Front-End-Seite über die Back-End-Nachrichtenwarteschlange bis hin zur SQL-Parser-Analyse, von Grund auf und vervollständigte sie schließlich online mit Hilfe von Klassenkameraden Liu Jun Xianhe. Die Plattform überprüft das entwickelte SQL, durchläuft die Simulationsumgebung und führt dann automatisch online ein Backup durch, was wesentlich effizienter ist als manuelle Arbeit.

Das Prinzip dieses Systems ähnelt anderen Tools auf dem Markt, mit einigen wesentlichen Verbesserungen. Später habe ich es einmal auf einer Datenbankkonferenz geteilt und war wirklich besorgt, dass ich nicht kritisiert wurde.

DBA-Erfahrung

Konsolidieren Sie das Fundament: Das Fundament von DB ist von Natur aus stabil, stabil und dann stabil. Wenn es zu viele Instanzen gibt, treten im Grunde jeden Tag verschiedene Fehler auf. Wenn der Master ausfällt, verwenden Sie MHA-Switching (der neueste hat die GTID). Wenn der Slave ausfällt, entfernt lvs automatisch den Leseverkehr. Eine andere Möglichkeit ist die Sicherung, vollständige inkrementelle, regelmäßige Gültigkeitsprüfung der Sicherung, wobei jeder Teil menschliche Investitionen erfordert.

Hardware-Priorität: Es gibt zwei Möglichkeiten, die DB-Kapazität zu erweitern: Hochskalieren und Skalieren. Im Allgemeinen wird der Hardware Priorität eingeräumt. Wenn der Puffer nicht ausreicht, fügen Sie mehr Speicher hinzu. Wenn die Leistung der Festplatten-Array-Karte nicht ausreicht, verwenden Sie eine SSD. Kurz gesagt, geben Sie dem Testen der Filterhardware Vorrang und gewinnen Sie Zeit für die Architekturoptimierung.

Seien Sie auf einen regnerischen Tag vorbereitet: Optimieren Sie langsames SQL und geben Sie regelmäßig Berichte zur Optimierung von RD aus. Normalerweise besteht das Problem darin, dass der Index nicht hinzugefügt wird. 99 % der großen SQL-Anweisungen sind so, ein kleiner Teil davon ist auf ein unangemessenes Tabellendesign (keine automatische Inkrementierung) des Primärschlüssels zurückzuführen oder wird häufig geändert. Überwachung großer Tabellen, Verschlankung bei Bedarf, Aufteilung von Feldern bei Bedarf, sowohl horizontal als auch vertikal, regelmäßige Archivierung abgelaufener Daten, das sind im Grunde die Dinge.

Kombiniert mit dem Geschäft: Einige Optimierungen ermüden den DBA zu Tode, daher ist es für den RD besser, eine Codezeile zu ändern. DBAs sollten auch mehr Kontakt zum Unternehmen haben und die Geschäftsumsetzung verstehen. Sie müssen nicht viel zum Unternehmen beitragen und die Schuld nicht auf sich nehmen ... Nur ein Scherz. Wenn Sie das Geschäft verstehen, können Sie aus einer höheren Perspektive denken, was sehr bedeutungsvoll ist.

Lernen Sie, Nein zu sagen: Bei dieser Ablehnung geht es nicht darum, zu streiken und nicht zu arbeiten, sondern darum, die Angemessenheit und Dringlichkeit der Bedürfnisse zu unterscheiden, mit denen man sich direkt befassen kann Dringende, aber unangemessene Probleme können vorübergehend behoben und schnell behoben werden. Olap wird beispielsweise in einer Online-Bibliothek ausgeführt, count(*) counting SQL kann Zähler asynchron ausführen und Redis ist eine gute Sache.

Kommunikation lernen: Ich arbeite seit ein paar Jahren, ich lerne das immer noch und ich habe viele Fehler gemacht. Kommunizieren Sie Rechte und Pflichten und legen Sie einen Zeitplan fest.

Praktisches Lernen: Rückblickend schnitten Datenbankadministratoren damals nicht gut genug ab. Einige der Gründe waren mangelnde Entwicklungskapazitäten, und viele Ideen blieben dort stehen. Um bei Betrieb und Wartung gute Arbeit zu leisten, muss das Betriebs- und Wartungspersonal über Entwicklungskompetenzen verfügen und anspruchsvoller sein als Unternehmens-RDs.

Die Widersprüche und Widersprüche der Betriebs- und Wartungs-RD

KPIs sind unterschiedlich, und der Fokus ist natürlich auch anders. Den Studierenden an vorderster Front fehlt es an Erfahrung, insbesondere denen, die haben erst vor 1–2 Jahren mit der Arbeit begonnen, was zu einer Asymmetrie von Informationen und Wissen führt. Es ist nicht schwer, dieses Problem zu lösen:

Neulinge müssen von Mentoren angeleitet werden, es wäre höchst unverantwortlich, sie in Ruhe zu lassen. Ich habe das Gefühl, dass Nice in dieser Hinsicht gute Arbeit geleistet hat. Sie müssen immer noch loben, wenn Sie es verdienen.

Das Support-Team muss über ausreichende Wiki-Geschäftsdokumentation verfügen.

Automatisierung wird durch Technologie und nicht durch manuelle Arbeit eingeschränkt. Geschäftsschnittstellen sind eingeschränkter als zuvor, und jetzt nutzen alle Dienste Sparsamkeit.

Die Erinnerung an den Marktbesuch ist immer verschwommener geworden, nur...

Nachdem ich einen Teil der Zusammenfassung geschrieben hatte, sagten meine ehemaligen Kollegen, dass ich einige verpasst habe, also werde ich sie alle anhängen bis zum Ende. , das Urheberrecht liegt nicht bei mir :)

20170214 Der folgende Inhalt stammt von einem ehemaligen Kollegen: Li Rui

Erinnerungen an DBA Leben auf dem Markt

Zusammenfassend lässt sich sagen, dass es viele Fehler gibt, die jederzeit behoben werden müssen. Diese werden etwas besser sein, bis Automan herauskommt und rd dazu zwingt, online zu gehen Plattform.

Aufgrund des Raid0-Problems hatte ich mindestens 4-5 Mal Probleme mit der Master-Festplatte und musste dringend behandelt werden.

tg 1 Mal aufgetreten, ms Schnittzeiten, es scheint ein Festplattenproblem zu sein.

Andere Slave-Backup-Maschinen haben mehr Festplattenausfälle und bis zu 4 Festplattenprobleme müssen pro Woche behoben werden. Die MySQL-Datenbank in Ganji ist im Allgemeinen mindestens 100 GB groß und die Datenberichtsdatenbank hat eine Größe von 2,3 GB. Es ist unmöglich, die Slave-Datenbank durch ein Backup wiederherzustellen.

🎜>

im Swap-Problem

Das Swap-Problem ist definitiv ein SQL-Problem. Die Haupt-SQL-Abfrage besteht darin, Daten durch Reihenfolge und Zählung zu erhalten. Dieses Problem war von Anfang an unlösbar Ich ging zu dem Zeitpunkt, als ich herauskam, auf den Markt. Die einzige Möglichkeit, das Swap-Problem zu lösen, besteht darin, den Verkehr manuell auf LVS umzuschalten, den Slave neu zu starten und dann den Verkehr wieder auf LVS umzuschalten. Fast 1-2 Mal pro Woche ist erforderlich. Ich habe IM-Kollegen mehrmals von IM-SQL-Problemen erzählt, in der Hoffnung, einen Zähler für die Zählabfrage zu erstellen, aber am Ende passierte nichts. Deaktivieren Sie den Swap, da Sie befürchten, dass der Server häufig überlastet ist. Nachdem Klassenkamerad Zhao Shenju schließlich kam und den Parameter zum Vorheizen von innodb_buffer_pool aktiviert hatte, kann der Slave direkt neu gestartet werden, ohne einen plötzlichen Lastanstieg aufgrund des Vorheizens befürchten zu müssen. Ein anderer Klassenkamerad, Zhao Shenju, hat den Numa-Limit-Speicher geändert, aber der IM-Tausch wurde am Ende nicht gelöst.

Sicherung

Sicherungsprobleme, 1 ist ein Speicherplatzproblem und 1 ist ein RAID0-Problem. .

Nachdem du gegangen bist, habe ich mich einen Monat lang selbstständig ernährt, bis Bi Changqi kam. Es gab 6 oder 7 Backup-Maschinen und die Festplatten gingen nacheinander kaputt. Protokollbibliothek, emp und Wang Ich habe die Sicherung einfach gestoppt und schließlich nur die Sicherung einiger großer Datenbanken wie ms, hp, tg und tc sichergestellt. Dieser 58-jährige Kollege wird von ihnen nach der Übernahme wahrscheinlich verachtet werden.

Nachdem Huaweis 32T-Backup-Maschine auf den Markt kam, sollte der Backup-Mechanismus geändert werden

Es gibt auch Backups außerhalb der Maschine, die alle 2 Monate voll sind ., ersetzen, verschieben Sie die Festplatte, mounten Sie die RAID-Festplatte manuell und zeichnen Sie sie manuell in Excel auf. Letztendlich wurden diese Datenträger tatsächlich zur Suche nach Daten verwendet.

Festplattenproblem

HP verfügt über zwei große Tabellen und die Daten müssen regelmäßig bereinigt werden. Die Ms-Festplatte wächst mit einer Rate von 10 G pro Tag und Ms erfordert eine PCIe-Karte. Schließlich kann sie von 800 auf 1200 erweitert werden. Es kann mehrere Monate dauern. Frau hat mehrere Maschinen, und am Ende sind sie nur etwa 10G knapp, um voll zu sein. Alle Arten von Protokollen löschen, alle Arten von Daten verschieben und die Ostwand ausgleichen (ich weiß, dass die Verwendung einer 400G-SSD mit xfs im Vergleich zu ext4 20G Speicherplatz einsparen kann, was gerade für ms ausreicht). Die Festplatte wächst, die Backup-Maschine verfügt nicht über genügend Speicherplatz und die Sim-Maschine (die schreibgeschützte Dienste für die Entwicklung bereitstellt, ich habe vergessen, wie sie heißt) verfügt über nicht genügend Speicherplatz. Es gibt auch eine Berichtsbibliothek, die ich für Festplatten und Server beantragen möchte, aber im Schrank ist seit langem kein Platz mehr.

Außerdem generiert die von der Wang Indizes müssen regelmäßig überprüft und optimiert werden.

Schmerzhafte HP, Aufteilung der Hauptbibliothek.

Es hat mehr als ein Jahr gedauert und wurde noch nicht vollständig aufgeteilt. Schließlich hörte ich von Bi Changqi, dass Guazi-Gebrauchtwagen aus diesen Lagern getrennt wurden. Von oben nach unten erzwungene Aufteilung. Aufgeteilt in 1-2 Tage.

PHP-Kurzverbindung, die Anzahl der Verbindungen ist voll

Diese letzte, nachdem Sie gegangen sind, habe ich gelegentlich das HP-Vollprotokoll analysiert und festgestellt, dass HP alle 1- 2-malige Verbindung, begleitet von einer leeren Verbindung. Connect beendet nichts. Ich weiß nicht, was dieses Problem verursacht hat. Nach der Behebung wurde das Problem mit der Anzahl der HP-Verbindungen behoben.

Zusammenfassend lässt sich sagen, dass wir in Ganji aufgrund der explodierenden Datenlage einfach blind reagierten und den Knoten nicht schnell durchtrennten und Spin-offs durchführten. Darüber hinaus ist es wirklich notwendig, über eine DBA-Plattform zu verfügen, um die Überwachung zu verwalten und SQL zur Überprüfung einzureichen. Erst später konnte ich es zögernd schreiben, indem ich Automan nachahmte.

Der Artikel wurde von Zerun, einem Internetnutzer der chinesischen PHP-Website, beigesteuert. Bitte geben Sie beim Nachdruck die Adresse dieses Artikels an: http://www.php.cn/toutiao-352102.html

Verwandte Etiketten:
dba
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage