Monatliche Archive: Juli 2012

mysqldump auf (sehr) großen Installationen

caticonslite_bm_alt

mysqldump wird standardmäßig mit der Option „–opt“ ausgeführt (siehe MySQL: mysqldump). Dies ist eine Kurzform für die Optionen „–add-drop-table –add-locks –create-options –disable-keys –extended-insert –lock-tables –quick –set-charset“. D.h. während des Dumps werden Tabellen gesperrt, um die Konsistenz der Daten zu garantieren. Auf (sehr) großen Installation führt dies allerdings zu einer vorübergehenden Nichterreichbarkeit des Systems. Im schlimmsten Fall kann sogar eine Überlastung des/der Server(s) die Folge davon sein: Nämlich dann, wenn während des Dumps – aufgrund der gesperrten Tabellen – sehr viele Webserver-Prozesse auf wartend gesetzt und danach abgearbeitet werden sollen.

Um diesem Problem zu entgehen, muss mysqldump mit der Option „–skip-lock-tables“ gestartet werden – z.B.:

mysqldump --skip-lock-tables -hHostname -uUsername -pPassword Database > Database.sql

Vermeiden ließe sich das Problem natürlich auch mit einer Master-Slave-Konfiguration.

Vererbung von Bildern aus den Seiteneigenschaften

caticonslite_bm_alt

In TYPO3 lassen sich in den Seiteneigenschaften Bilder im Feld „Dateien“ unter „Ressourcen“ hinterlegen. Auf die angegebenen Dateien kann man mit TypoScript zugreifen und somit z.B. je Seite ein individuelles Headerbild darstellen. Häufig ist es ausreichend auf Unterseiten das Bild der übergeordneten Seite anzuzeigen, oder man möchte nicht auf jeder Seite ein Bild hinterlegen müssen. Hierfür bietet sich in TYPO3 die Verwendung von „slide“ an – damit lässt sich eine Vererbung von Bildern realisieren. D.h. es wird ausgehend von der aufgerufenen Seite der Seitenbaum bis zur Rootseite nach einem Bild durchsucht, bis entweder ein Bild gefunden, oder die Rootseite erreicht worden ist.

Bei einer TYPO3 Standard-Installation mit FAL (File Abstraction Layer) (ab TYPO3 6.0) benötigt man folgendes TypoScript:

lib.image = FILES
lib.image {
	references {
		data = levelmedia:-1,slide
	}
	renderObj = IMAGE
	renderObj {
		file.import.data = file:current:publicUrl
		titleText.data = file:current:title
	}
}

Bei einer TYPO3 Standard-Installation ohne FAL (bis TYPO3 6.0) benötigt man folgendes TypoScript:

lib.image = IMAGE
lib.image.file {
	import = uploads/media/
	import {
		data = levelmedia:-1, slide
		listNum = 0
	}
}

Wird DAM verwendet, ist folgende Konfiguration zu verwenden:

lib.image = IMAGE
lib.image.file {
	import.cObject = USER
	import.cObject {
		userFunc = tx_dam_pages->get_media_file
		listNum = 0
		slide = 1
	}
}
 nach oben